SELECT PROCESS FROM V$MANAGED_STANDBY WHERE PROCESS LIKE 'MRP%..."/>
溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

【DG】Data Guard主備庫Switchover切換

發(fā)布時間:2020-08-10 11:24:30 來源:ITPUB博客 閱讀:204 作者:恩強Boy 欄目:關(guān)系型數(shù)據(jù)庫

一、  切換前檢查

1.  備庫檢查manager recovery 處于運行狀態(tài)

SQL> SELECT PROCESS FROM V$MANAGED_STANDBY WHERE PROCESS LIKE 'MRP%';

2.  主庫檢查database 處于實時應(yīng)用狀態(tài)

SQL> SELECT RECOVERY_MODE FROM V$ARCHIVE_DEST_STATUS WHERE DEST_ID=2;

RECOVERY_MODE

-----------------------

MANAGED REAL TIME APPLY

如果備庫沒有處于實時應(yīng)用狀態(tài),就需要重啟實時應(yīng)用

SQL>   ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;

3.  確保主庫和備庫臨時文件匹配

對于臨時文件,確保主庫存在的臨時文件備庫也應(yīng)存在。在初始備庫創(chuàng)建后,主庫新創(chuàng)建的臨時文件不會傳到備庫。主備庫執(zhí)行以下SQL

SQL> SELECT TMP.NAME FILENAME, BYTES, TS.NAME TABLESPACE

FROM V$TEMPFILE TMP, V$TABLESPACE TS WHERE TMP.TS#=TS.TS#;

如果查詢不匹配,需要立即修正不匹配內(nèi)容。

4.  確保所有數(shù)據(jù)文件均為online 狀態(tài)

SQL> SELECT NAME FROM V$DATAFILE WHERE STATUS='OFFLINE';

如果有數(shù)據(jù)文件處于offline 狀態(tài),在 switchover 之前需要將數(shù)據(jù)文件 offline 。

5.  確保備庫不存在GAP

備庫執(zhí)行

SQL> SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;

THREAD#      LOW_SEQUENCE# HIGH_SEQUENCE#

---------- ------------- --------------

1            8 0              82  

如果沒有返回結(jié)果,則說明不存在GAP (斷檔);如果存在結(jié)果,則說明存在 GAP 。上述結(jié)果說明, GAP 內(nèi)容包含歸檔日志 sequence80,81,82 。需要主庫復(fù)制上述歸檔日志,傳輸?shù)絺鋷?,并且注冊在備庫,如?/span>

SQl> ALTER DATABASE REGISTER PHYSICAL LOGFILE 'filespec1';

二、  思路清晰

step1: 清理參數(shù)和 jobs

step2: 確保主庫切換狀態(tài)正常

step3: 主庫執(zhí)行 switchover

step4: 檢查備庫切換狀態(tài)正常

step5: 備庫執(zhí)行 switchover

step6: 打開新主庫和備庫

step7: 新備庫實時應(yīng)用日志

step8: 檢查主備庫狀態(tài)

三、  switchover 切換

1.  清理可能阻塞切換的parameters and jobs

1)  查看當前執(zhí)行的JOBS

SQL> SELECT * FROM DBA_JOBS_RUNNING;

SQL> SELECT OWNER, JOB_NAME, START_DATE, END_DATE, ENABLED FROM DBA_SCHEDULER_JOBS WHERE ENABLED='TRUE' AND OWNER <> 'SYS' ;

如果有正在運行的job, 如果有必要就終止這些 job 。

2)  終止當前的job

SQL> EXECUTE DBMS_SCHEDULER.DISABLE(job_name);

2.  確保主庫switchover_status 正常

SQL> select switchover_status from v$database;

SWITCHOVER_STATUS

--------------------

SESSIONS ACTIVE

注:主庫的狀態(tài)應(yīng)為to primary session active 。如果主庫狀態(tài)為 session active ,那么在切換時需要追加 with session shutdown 選項。如果主庫是 RAC ,那么在切換前停止第二個節(jié)點。

3.  主庫執(zhí)行switchover 到備庫

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO STANDBY WITH SESSION SHUTDOWN;

4.  檢查備庫switchover_status 正常

SQL> select switchover_status from v$database;

SWITCHOVER_STATUS

--------------------

to primary

5.  備庫switchover 為主庫

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;

此時,新主庫處于Mount 狀態(tài),新備庫處于 shutdown 狀態(tài)

6.  打開新主庫

SQL> alter database open;

7.  打開新備庫

SQL> startup;

此時新備庫模式為read only

8.  新備庫實時應(yīng)用日志

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;

9.  檢查主備庫狀態(tài)

SQL> select db_unique_name,open_mode,database_role,switchover_status from v$database;

---- end ----

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI