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之外的所有备库的连接

推荐阅读:

Oracle基础教程之通过RMAN复制数据库

RMAN备份策略制定参考内容

RMAN备份学习笔记

Oracle数据库备份加密 RMAN加密

相关内容