DG的切换操作
1. 切换前状态检测
【总】主库查询备库是否已经同步
SELECT DB_UNIQUE_NAME, PROTECTION_MODE, SYNCHRONIZATION_STATUS, SYNCHRONIZED FROM V$ARCHIVE_DEST_STATUS;【分】检查数据已经传输到位
SELECT CLIENT_PROCESS, PROCESS, SEQUENCE#, STATUS FROM V$MANAGED_STANDBY;
查看LGWR那行的SEQUENCE#,然后在主库上,运行
SELECT THREAD#, SEQUENCE#, STATUS FROM V$LOG;
查看相应的SEQUENCE#, 是否与备库一致。【分】检查数据是否已经应用到备库
SELECT CLIENT_PROCESS, PROCESS, SEQUENCE#, STATUS FROM V$MANAGED_STANDBY;
查看MPR0行,如果非APPLYING_LOG,则表示存在问题,不宜切换。
- 总,分,分表示,先查看总,如果总查出来的状态不行,那就查看分
- 查看有没有运行的作业,RMAN备份等,如果有,则停止。
2. 切换操作
打开alert log进行监控,
RAC等均减少为一个实例
- 查看数据库切换状态
SELECT SWITCHOVER_STATUS FROM V$DATABASE;
如果是TO STANDBY状态,则说明可以进行切换 查看数据库当前的会话
SELECT PROGRAM, TYPE FROM V$SESSION WHERE TYPE='USER';执行切换
ALTER DATABASE COMMIT TO SWTICHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;打开主库
ALTER DATABASE OPEN;备库上重新启动,并进行同步
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;