几天前被问到关于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. //