RMAN复制物理备库时需要注意的几点
用RMAN复制物理备库时,容易出错,并且出错很诡异
笔者在下边总结了所遇到的几点。
1.RMAN-04006 ORA-12528
将备库启动到nomount状态下
SQL> startup nomount
Oracle 例程已经启动。
Total System Global Area 751595520 bytes
Fixed Size 2292912 bytes
Variable Size 557843280 bytes
Database Buffers 188743680 bytes
Redo Buffers 2715648 bytes
在主库连接
oracle@Sol_ORA:/oracle/12.1/network/admin$ rman target sys/test@TESTM auxiliary sys/test@TESTS
恢复管理器: Release 12.1.0.1.0 - Production on 星期四 11月 7 09:53:18 2013
Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.
已连接到目标数据库: TESTM (DBID=1234105814)
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-00554: 内部恢复管理器程序包初始化失败
RMAN-04006: 来自辅助数据库的错误: ORA-12528: TNS: 监听程序: 所有适用例程都无法建立新连接
如上情况原因分析:由于备库的实例在nomount状态下,如果是动态注册监听器,那么在nomount状态下是不会注册监听的,所以需要配置静态注册
解决方法:配置静态监听,主库的tnsnames.ora如下:
#指向备库的连接字符串
TESTS =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 188.188.3.20)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = TESTM)
)
)
备库的listener.ora中添加:
#备库添加静态注册
SID_LIST_LISTENER =(SID_LIST=(SID_DESC=(SID_NAME=TESTM)(ORACLE_HOME=/oracle/product/12.1.0)))
$ lsnrctl reload //重新加载listener.ora
$ lsnrctl status //查看状态
oracle@Sol_ORA:/oracle/12.1/network/admin$ rman target sys/test@TESTM auxiliary sys/test@TESTS //主库连接 故障排除
恢复管理器: Release 12.1.0.1.0 - Production on 星期四 11月 7 10:00:02 2013
Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.
已连接到目标数据库: TESTM (DBID=1234105814)
已连接到辅助数据库: TESTM (未装载)
2.RMAN-06136: 来自辅助数据库的 ORACLE 错误: ORA-19847: 无法从远程站点读取控制文件的标头
原因:不详
解决方法:断开除主库的RMAN之外的所有备库的连接
3. RMAN-06136: 来自辅助数据库的 ORACLE 错误: ORA-01013: 用户请求取消当前的操作,原因是做duplicate时备库上还有用户登入,退出登入后错误解决
原因:不详
解决方法:断开除主库的RMAN之外的所有备库的连接
推荐阅读: