点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!


从oracle 12.1开始引入了新的SQL语法,用于物理备库的switchover切换。
在使用过程严禁混合使用新旧两种用法。除非在切换过程中有明确的提示。
switchover前准备工作
LOG_ARCHIVE_DEST_1
LOG_ARCHIVE_DEST_2
LOG_ARCHIVE_CONFIG
FAL_SERVER
STANDBY_FILE_MANAGEMENT
db_file_name_convert
log_file_name_convert
enabled_PDBs_on_standby
SQL>select group#,thread#,bytes/1024/1024 MM from v$log;
SQL>select member from v$logfile;
SQL>select group#,thread#,bytes/1024/1024 MM,status from v$standby_log;
select inst_id,dbid,name,db_unique_name,open_mode,PROTECTION_MODE,database_role,SWITCHOVER_STATUS,DATAGUARD_BROKER from gv$database;
select * from v$dataguard_stats;
SELECT PROCESS, STATUS, THREAD#, SEQUENCE#,BLOCK#, BLOCKS FROM V$MANAGED_STANDBY;
SELECT STATUS, GAP_STATUS FROM V$ARCHIVE_DEST_STATUS WHERE DEST_ID = 2;
9. 检查主备库的归档空间使用率,切换期间不要删除归档日志。
使用旧语法执行switchover到Physical Standby Database
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
-----------------
TO STANDBY
1 row selected
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;
SQL> STARTUP MOUNT;
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS
-----------------
TO PRIMARY
1 row selected
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
SQL> ALTER DATABASE OPEN;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
使用新语法执行switchover到Physical Standby Database
SQL> ALTER DATABASE SWITCHOVER TO 目标备库 VERIFY;
SQL> ALTER DATABASE SWITCHOVER TO 目标备库;
Database altered.
SQL> ALTER DATABASE OPEN;
SQL> STARTUP MOUNT;
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
SQL> ALTER DATABASE OPEN;
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
使用data guard broker执行switchover到Physical Standby Database
show database verbose 目标主库;
show database verbose 目标备库;
show configuration verbose;
switchover to 备库名称。
switchover过程中的常见问题
解决方法:
检查alert日志中的报错提示,采取必要的措施修复该错误,如有必要,则重新打开主库的一个节点,从switchover第一步重新开始。
解决方法:
在原主库上执行如下SQL alter database switchover to 目标备库 force; 在原备库上执行如下SQL alter database switchover to 目标主库 force; 如果上面SQL执行失败并伴随着ORA-16473,则先执行如下SQL SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT; 再次执行强制切换命令 alter database switchover to 目标主库 force。

本文作者:聂文峰(上海新炬王翦团队)
本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




