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 端执行,需要在生产执行的操作已经在括号“() ”里面标注