11.2 Data Guard Physical Standby Switchover Best Practices using SQL*Plus (Doc ID 1304939.1)
<プライマリ>SELECT SWITCHOVER_STATUS FROM V$DATABASE;
SWITCHOVER_STATUS------------------------------------------------------------TO STANDBY
<スタンバイ>●同期を停止し、スタンバイ側のオンラインREDOログファイルをクリアSELECT DISTINCT L.GROUP# FROM V$LOG L, V$LOGFILE LFWHERE L.GROUP# = LF.GROUP#AND L.STATUS NOT IN ('UNUSED', 'CLEARING','CLEARING_CURRENT');
GROUP#---------- 1 2 3-- 同期停止SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
データベースが変更されました。
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 1;
データベースが変更されました。
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 2;
データベースが変更されました。
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 3;
データベースが変更されました。
SELECT DISTINCT L.GROUP# FROM V$LOG L, V$LOGFILE LFWHERE L.GROUP# = LF.GROUP#AND L.STATUS NOT IN ('UNUSED', 'CLEARING','CLEARING_CURRENT');
レコードが選択されませんでした。
SQL> SELECT GROUP#,STATUS FROM V$LOG;
GROUP# STATUS---------- ------------------------------------------------ 1 UNUSED 2 UNUSED 3 UNUSED
-- アラートログにエラーが発生していないことtail /u01/app/oracle/diag/rdbms/sorcl/orcl/trace/alert_orcl.logALTER DATABASE CLEAR LOGFILE GROUP 22023-09-19T01:13:45.208306+09:00Clearing online log 2 of thread 1 sequence number 02023-09-19T01:13:46.328379+09:00Completed: ALTER DATABASE CLEAR LOGFILE GROUP 22023-09-19T01:13:50.119942+09:00ALTER DATABASE CLEAR LOGFILE GROUP 32023-09-19T01:13:50.120266+09:00Clearing online log 3 of thread 1 sequence number 0Completed: ALTER DATABASE CLEAR LOGFILE GROUP 3
●大きなギャップがないことを確認<プライマリ>SELECT THREAD#, SEQUENCE# FROM V$THREAD;
THREAD# SEQUENCE#---------- ---------- 1 25<スタンバイ>SELECT THREAD#, SEQUENCE# FROM V$THREAD;
THREAD# SEQUENCE#---------- ---------- 1 25
SELECT THREAD#, MAX(SEQUENCE#) FROM V$ARCHIVED_LOGWHERE APPLIED = 'YES'AND RESETLOGS_CHANGE# = (SELECT RESETLOGS_CHANGE#FROM V$DATABASE_INCARNATION WHERE STATUS = 'CURRENT')GROUP BY THREAD#;
THREAD# MAX(SEQUENCE#)---------- -------------- 1 24
→最新スレッドが25、適用済みのアーカイブログとのギャップが1~2であること
●一時表領域の差異がないこと、オフラインのデータファイルがないことを確認<プライマリ><スタンバイ>set lines 10000col FILENAME for a100SELECT TMP.NAME FILENAME, BYTES, TS.NAME TABLESPACEFROM V$TEMPFILE TMP, V$TABLESPACE TS WHERE TMP.TS#=TS.TS#;
FILENAME BYTES TABLESPACE--------------------------------------------------------------------------- ---------- ----------/u01/app/oracle/oradata/SORCL/temp01.dbf 20971520 TEMP/u01/app/oracle/oradata/SORCL/temp01.dbf 20971520 TEMP/u01/app/oracle/oradata/SORCL/temp01.dbf 20971520 TEMP/u01/app/oracle/oradata/SORCL/pdbseed/temp012023-09-07_23-29-24-557-PM.dbf 37748736 TEMP/u01/app/oracle/oradata/SORCL/pdbseed/temp012023-09-07_23-29-24-557-PM.dbf 37748736 TEMP/u01/app/oracle/oradata/SORCL/pdbseed/temp012023-09-07_23-29-24-557-PM.dbf 37748736 TEMP/u01/app/oracle/oradata/SORCL/orclpdb/temp01.dbf 0 TEMP/u01/app/oracle/oradata/SORCL/orclpdb/temp01.dbf 0 TEMP/u01/app/oracle/oradata/SORCL/orclpdb/temp01.dbf 0 TEMP
<スタンバイ>SELECT NAME FROM V$DATAFILE WHERE STATUS='OFFLINE';
レコードが選択されませんでした。
●スイッチオーバ