新聞中心
一、 切換前檢查
1. 備庫檢查manager recovery 處于運(yùn)行狀態(tài)
SQL> SELECT PROCESS FROM V$MANAGED_STANDBY WHERE PROCESS LIKE 'MRP%';
創(chuàng)新互聯(lián)建站自2013年創(chuàng)立以來,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元泊頭做網(wǎng)站,已為上家服務(wù),為泊頭各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
2. 主庫檢查database 處于實(shí)時(shí)應(yīng)用狀態(tài)
SQL> SELECT RECOVERY_MODE FROM V$ARCHIVE_DEST_STATUS WHERE DEST_ID=2;
RECOVERY_MODE
-----------------------
MANAGED REAL TIME APPLY
如果備庫沒有處于實(shí)時(shí)應(yīng)用狀態(tài),就需要重啟實(shí)時(shí)應(yīng)用
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
3. 確保主庫和備庫臨時(shí)文件匹配
對(duì)于臨時(shí)文件,確保主庫存在的臨時(shí)文件備庫也應(yīng)存在。在初始備庫創(chuàng)建后,主庫新創(chuàng)建的臨時(shí)文件不會(huì)傳到備庫。主備庫執(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ù)絺鋷欤⑶易?cè)在備庫,如下
SQl> ALTER DATABASE REGISTER PHYSICAL LOGFILE 'filespec1';
二、 思路清晰
step1: 清理參數(shù)和 jobs
step2: 確保主庫切換狀態(tài)正常
step3: 主庫執(zhí)行 switchover
step4: 檢查備庫切換狀態(tài)正常
step5: 備庫執(zhí)行 switchover
step6: 打開新主庫和備庫
step7: 新備庫實(shí)時(shí)應(yīng)用日志
step8: 檢查主備庫狀態(tài)
三、 switchover 切換
1. 清理可能阻塞切換的parameters and jobs
1) 查看當(dāng)前執(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' ;
如果有正在運(yùn)行的job, 如果有必要就終止這些 job 。
2) 終止當(dāng)前的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 ,那么在切換時(shí)需要追加 with session shutdown 選項(xiàng)。如果主庫是 RAC ,那么在切換前停止第二個(gè)節(jié)點(diǎn)。
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;
此時(shí),新主庫處于Mount 狀態(tài),新備庫處于 shutdown 狀態(tài)
6. 打開新主庫
SQL> alter database open;
7. 打開新備庫
SQL> startup;
此時(shí)新備庫模式為read only ;
8. 新備庫實(shí)時(shí)應(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 ----
本文名稱:【DG】DataGuard主備庫Switchover切換
分享鏈接:http://fisionsoft.com.cn/article/jhiesd.html