背景环境:
1、有个oracle10g的数据库与catalog在win7操作系统上,同时在catalog库中注册了本机的数据库(db_name=orcl) 与 另一台服务器的数据库(linux+oracle11g db_name=orcl11)
2、现在又新建了个数据库(linux+oracle11g db_name=timran11),在此库上创建了catalog库
3、现在需要把10g上的catalog库导入到11g上的catalog库上。
在timran11库执行导入catalog库
[oracle@timran admin]$ rman catalog rman/rman@timran11g
恢复管理器: Release 11.1.0.6.0 - Production on 星期一 12月 15 21:16:18 2014
Copyright (c) 1982, 2007, Oracle. All rights reserved.
连接到恢复目录数据库
RMAN> import catalog rman/rman@orcl10;
启动 import catalog 于 2014-12-15 21:49:03
连接到源恢复目录数据库
PL/SQL 程序包RMAN.DBMS_RCVCAT版本10.02.00.03 (IMPCAT数据库中) 太低
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: import catalog 命令 (在 12/15/2014 21:49:03 上) 失败
RMAN-06429: IMPCAT数据库与该版本的 RMAN 不兼容
说明需要导入的catalog库的版本太低,catalog目录的版本要高于或等于任何的目标数据库,所以需要升级catalog目录。
升级需要注意的是一定要在target库上(高版本的库)同时连接到需要升级的catalog目录上,再做catalog目录的升级。
(开始在10g的catalog库上做了好几次升级都没能升级到11g的版本)
RMAN> exit
恢复管理器完成。
[oracle@timran admin]$ rman target / catalog rman/rman@orcl10
恢复管理器: Release 11.1.0.6.0 - Production on 星期一 12月 15 22:02:09 2014
Copyright (c) 1982, 2007, Oracle. All rights reserved.
连接到目标数据库: TIMRAN11 (DBID=3416564781)
连接到恢复目录数据库
PL/SQL 程序包RMAN.DBMS_RCVCAT版本10.02.00.03 (RCVCAT数据库中) 太低
RMAN> upgrade catalog
恢复目录所有者是RMAN
再输入一次 UPGRADE CATALOG 命令来确认目录升级
RMAN> upgrade catalog
恢复目录已升级到版本11.01.00.06
DBMS_RCVMAN 程序包升级为 11.01.00.06 版
DBMS_RCVCAT 程序包升级为 11.01.00.06 版
如果rman catalog删除了再重新创建catalog目录,再去import catalog的话,还是需要再重新升级旧版本的catalog的。
catalog目录已升级成功,接下来接着做导入catalog database
[oracle@timran admin]$ rman catalog rman/rman@timran11g
恢复管理器: Release 11.1.0.6.0 - Production on 星期一 12月 15 22:40:52 2014
Copyright (c) 1982, 2007, Oracle. All rights reserved.
连接到恢复目录数据库
RMAN> import catalog rman/rman@orcl10;
启动 import catalog 于 2014-12-15 22:41:14
连接到源恢复目录数据库
导入验证完成
已从源恢复目录中注销数据库
完成 import catalog 于 2014-12-15 22:41:33
说明:导入catalog以后,原catalog库上注册的数据库信息就没有了,状态为未注册。
查看orcl库上的备份元数据
[oracle@timran admin]$ rman target sys/centadmin@orcl10 catalog rman/rman
恢复管理器: Release 11.1.0.6.0 - Production on 星期一 12月 15 22:44:18 2014
Copyright (c) 1982, 2007, Oracle. All rights reserved.
恢复管理器与 TARGET 数据库不兼容: 要求 RMAN 8.0.4.0 到 10.2.0.3
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00554: 内部恢复管理器程序包初始化失败
RMAN-06429: TARGET数据库与该版本的 RMAN 不兼容
[oracle@timran admin]$ rman target sys/sys@redhat11g catalog rman/rman
恢复管理器: Release 11.1.0.6.0 - Production on 星期一 12月 15 23:02:02 2014
Copyright (c) 1982, 2007, Oracle. All rights reserved.
连接到目标数据库: ORCL11 (DBID=4113020634)
连接到恢复目录数据库
RMAN> list backup;
正在启动全部恢复目录的 resync
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: list 命令 (在 12/15/2014 23:02:20 上) 失败
RMAN-03014: 恢复目录的隐式重新同步失败
RMAN-03009: full resync 命令 (default 通道上, 在 12/15/2014 23:02:20 上) 失败
RMAN-20052: 创建 SCN 的数据文件无效
为什么会出现上面的这个问题呢?
之后我又重新做了以上一系列的步骤,再查看11g的元数据时候就没有出现上面的这个问题了,不知道当时为什么会出现这个问题。
有个问题一直弄不明白:
既然导入catalog databse的目的就是把这些目录合并为一个目录(一些catalog针对来自不同Oracle版本的target),那高低重版本之间应该兼容啊,导入时版本不兼容还得升级版本。
现在导入成功了,确因为版本低而不能查看导入进来的元数据,这导入catalog database的目的到底是什么,这又有什么意义呢?还请知道的朋友请予解答,谢谢!
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27661381/viewspace-1368925/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/27661381/viewspace-1368925/