几天前被问到关于rman catalog兼容性的问题,catalog所在数据库版本与目标数据库版本不同会有影响吗?在我概念当中catalog所在数据库的版本并不会影响rman catalog的使用,但catalog schema的版本却有着明确要求,至于具体的兼容关系就不清楚了。
查了下MOS找到文档
<RMAN Compatibility Matrix>,这个文档解释地比较清楚,存在3个基本的原则:
- RMAN可执行文件的版本需要和target database目标数据库的版本一致(弱一致要求),具体的合法组合如下面列出的表格
- RMAN catalog schema版本必须大于等于RMAN可执行文件(强一致要求)
- RMAN catalog对target database目标数据库向后兼容,即支持早期版本的目标数据库
具体的可用版本组合:
Target/Auxiliary
Database |
RMAN Executable |
Catalog Database |
Catalog Schema |
8.1.7.4 |
8.1.7.4 |
>=8.1.7 |
8.1.7.4 |
8.1.7.4 |
8.1.7.4 |
>=8.1.7 |
>=9.0.1.4 |
9.0.1 |
9.0.1 |
>=8.1.7 |
>= RMAN executable |
9.2.0 |
>=9.0.1.3 and <= Target database |
>=8.1.7 |
>= RMAN executable |
10.1.0 |
>=9.0.1.3 and <= Target database |
>=9.0.1 |
>= RMAN executable |
10.2.0 |
>=9.0.1.3 and <= target database |
>=9.0.1 |
>= RMAN executable |
11.1.0 |
>=9.0.1.3 and <= target database |
>=10.2.0.3 (note 1) |
>= RMAN executable |
11.2.0 |
>=9.0.1.3 and <= target database |
>=9.0.1 |
>= RMAN executable |
从上表中可以看到除去target database为11.1.0时因为
Bug 6756872 - RMAN REGISTER OF 11G TARGET INTO 10G CATALOG FAILS WITH ORA-04028,要求catalog所在数据库大于10.2.0.3外,对catalog所在数据库的版本没有一个强要求,一般10gR2都可以满足兼容性。而对于catalog schema的版本则有着明确的高版本要求,究其原因是RMAN使用的DBMS_RCVMAN内置包要求与之版本一致的恢复目录表结构recovery catalog tables,如果达不到这种要求,那么可能出现rman 20299错误:
[maclean@rh2 ~]$ oerr rman 20299
20299, 1, "DBMS_RCVMAN package not compatible with the recovery catalog"
// *Cause: The version of the recovery catalog tables does not work with this
// version of the DBMS_RCVMAN package.
// *Action: Check that the recovery catalog packages and schema are installed
// correctly. The UPGRADE CATALOG command can be used to upgrade
// the recovery catalog tables and packages to the most current
// version.
//