新聞中心
一、 切換前檢查
1. 備庫(kù)檢查manager recovery 處于運(yùn)行狀態(tài)
SQL> SELECT PROCESS FROM V$MANAGED_STANDBY WHERE PROCESS LIKE 'MRP%';
創(chuàng)新互聯(lián)建站自2013年創(chuàng)立以來(lái),是專業(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. 主庫(kù)檢查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
如果備庫(kù)沒(méi)有處于實(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. 確保主庫(kù)和備庫(kù)臨時(shí)文件匹配
對(duì)于臨時(shí)文件,確保主庫(kù)存在的臨時(shí)文件備庫(kù)也應(yīng)存在。在初始備庫(kù)創(chuàng)建后,主庫(kù)新創(chuàng)建的臨時(shí)文件不會(huì)傳到備庫(kù)。主備庫(kù)執(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. 確保備庫(kù)不存在GAP
備庫(kù)執(zhí)行
SQL> SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;
THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#
---------- ------------- --------------
1 8 0 82
如果沒(méi)有返回結(jié)果,則說(shuō)明不存在GAP (斷檔);如果存在結(jié)果,則說(shuō)明存在 GAP 。上述結(jié)果說(shuō)明, GAP 內(nèi)容包含歸檔日志 sequence80,81,82 。需要主庫(kù)復(fù)制上述歸檔日志,傳輸?shù)絺鋷?kù),并且注冊(cè)在備庫(kù),如下
SQl> ALTER DATABASE REGISTER PHYSICAL LOGFILE 'filespec1';
二、 思路清晰
step1: 清理參數(shù)和 jobs
step2: 確保主庫(kù)切換狀態(tài)正常
step3: 主庫(kù)執(zhí)行 switchover
step4: 檢查備庫(kù)切換狀態(tài)正常
step5: 備庫(kù)執(zhí)行 switchover
step6: 打開新主庫(kù)和備庫(kù)
step7: 新備庫(kù)實(shí)時(shí)應(yīng)用日志
step8: 檢查主備庫(kù)狀態(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. 確保主庫(kù)switchover_status 正常
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
SESSIONS ACTIVE
注:主庫(kù)的狀態(tài)應(yīng)為to primary 或 session active 。如果主庫(kù)狀態(tài)為 session active ,那么在切換時(shí)需要追加 with session shutdown 選項(xiàng)。如果主庫(kù)是 RAC ,那么在切換前停止第二個(gè)節(jié)點(diǎn)。
3. 主庫(kù)執(zhí)行switchover 到備庫(kù)
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO STANDBY WITH SESSION SHUTDOWN;
4. 檢查備庫(kù)switchover_status 正常
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
to primary
5. 備庫(kù)switchover 為主庫(kù)
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
此時(shí),新主庫(kù)處于Mount 狀態(tài),新備庫(kù)處于 shutdown 狀態(tài)
6. 打開新主庫(kù)
SQL> alter database open;
7. 打開新備庫(kù)
SQL> startup;
此時(shí)新備庫(kù)模式為read only ;
8. 新備庫(kù)實(shí)時(shí)應(yīng)用日志
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
9. 檢查主備庫(kù)狀態(tài)
SQL> select db_unique_name,open_mode,database_role,switchover_status from v$database;
---- end ----
當(dāng)前名稱:【DG】DataGuard主備庫(kù)Switchover切換
網(wǎng)址分享:http://www.ef60e0e.cn/article/jhiesd.html