DG同步异常恢复文档

1 查看监听状态和数据库状态,若以下命令没有返回信息,则手动开启监听和数据库

[oracle@newhost ~]$ ps -ef|grep smon|grep -v grep

[oracle@newhost ~]$ps -ef|grep tns|grep -v grep

开启监听

[oracle@newhost ~]$lsnrctl start

开启数据库

[oracle@newhost ~]$sqlplus / as sysdba

SQL>startup mount;

SQL>alter database open read only;

查看监听状态和数据库状态,再次确认是否有返回信息

 

2 、查看RFS 进程状态, 若以下命令没有返回信息, 则连到生产库重启log_archive_dest_state_2

SQL> select process,status from v$managed_standby where process='RFS';

连接到生产库(注意该操作在生产执行)

[oracle@oadatabak ~]$sqlplus / as sysdba

SQL> alter system set log_archive_dest_state_2=defer;

SQL> alter system set log_archive_dest_state_2=enable;

SQL> alter system switch logfile;

查看RFS 进程状态, 再次查询,确认是否有返回信息

SQL>select process,status from v$managed_standby where process='RFS';

 

3 、开启归档日志应用

SQL> alter database recover managed standby database using current logfile disconnect from session;

查看MRP 进程状态, 确认是否有返回信息

SQL>select process,status from v$managed_standby where process like 'MRP%';

 

4 、确认生产库与DG 库是否同步,返回记录一致(相差一个没有关系)则表示同步完成

SQL>select max(sequence#) from v$archived_log; (该命令生产和DG 端分别查询、对比)

SQL>select max(sequence#) from v$archived_log where applied='YES';

 

注意:以上操作均在DG 端执行,需要在生产执行的操作已经在括号“() ”里面标注


请使用浏览器的分享功能分享到微信等