|
物理dataguard 正常切換 腳色轉(zhuǎn)換,switchover_status 狀態(tài)改變:
切換前: SQL> select DATABASE_ROLE from v$database;
DATABASE_ROLE SQL> select OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS from v$database;
OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS
SQL> SELECT COUNT(*) FROM V$SESSION WHERE USERNAME IS NOT NULL;
COUNT(*)
備用庫 : SQL> select DATABASE_ROLE from v$database;
DATABASE_ROLE SQL> select OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS from v$database;
OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS
主庫需要注意事項(xiàng)
在備庫中操作,查看備庫
A 如果switchover_status為TO_PRIMARY 說明標(biāo)記恢復(fù)可以直接轉(zhuǎn)換為primary庫
B 如果switchover_status為SESSION ACTIVE 就應(yīng)該斷開活動(dòng)會(huì)話
C 如果switchover_status為NOT ALLOWED 說明切換標(biāo)記還沒收到,此時(shí)不能
切換中 :
備用庫
DATABASE_ROLE SQL> select OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS from v$database;
OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS
切換后備用的狀態(tài),模式:
DATABASE_ROLE SQL> select OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS from v$database;
OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS
確認(rèn)主庫和從庫間網(wǎng)絡(luò)連接通暢; 確認(rèn)沒有活動(dòng)的會(huì)話連接在數(shù)據(jù)庫中; PRIMARY數(shù)據(jù)庫處于打開的狀態(tài),STANDBY數(shù)據(jù)庫處于MOUNT狀態(tài); 確保STANDBY數(shù)據(jù)庫處于ARCHIVELOG模式; 如果設(shè)置了REDO應(yīng)用的延遲,那么將這個(gè)設(shè)置去掉;
確保配置了主庫和從庫的初始化參數(shù),使得切換完成后,DA 如果是最大保護(hù)模式,先變成最大性能模式:
SQL> select DATABASE_ROLE from v$database;
DATABASE_ROLE SQL> select OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS from v$database;
OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS
SQL> Database altered.
SQL> shutdown immediate;
Total System Global Area 3242987696 bytes Database altered. SQL> alter database recover managed standby database disconnect from session; Database altered. SQL> select DATABASE_ROLE from v$database;
DATABASE_ROLE SQL> select OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS from v$database;
OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS
備切主
DATABASE_ROLE SQL> select OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS from v$database;
OPEN_MODE PROTECTION_MODE PROTECTION_LEVEL SWITCHOVER_STATUS SQL> alter database commit to switchover to primary;
Database altered.
SQL> SQL> SQL>
Total System Global Area 3242987696 bytes
DataGuard:Physical Standby Failover
接physical standby switchover
primary db :db2 standby db :db1
一般情況下failover都是表示primary數(shù)據(jù)庫癱瘓,最起碼也是起不來了,因此這種類型的切換基本上不需要primary數(shù)據(jù)庫做什么操作。所以下列步驟中如果有提到primary和standby執(zhí)行的,只是建議你如果primary還可以用,那就執(zhí)行一下,即使不去執(zhí)行,對(duì)failover來說也沒有關(guān)系
1.檢查歸檔文件是否連續(xù),是否有gap 在standby庫執(zhí)行 SQL> select THREAD#,LOW_SEQUENCE#,HIGH_SEQUENCE# from v$archive_gap; 2.如果步驟1查詢出來紀(jì)錄,則在primary庫上執(zhí)行,否則跳過此步驟 在主庫上執(zhí)行語句,按步驟1查詢出來的紀(jì)錄找出歸檔文件 SQL> SELECT NAME FROM V$ARCHIVED_LOG WHERE THREAD#=1 AND DEST_ID=1 AND SEQUENCE# BETWEEN XX AND XX; --如果primary存在,拷貝相應(yīng)的歸檔到STANDBY數(shù)據(jù)庫,并注冊(cè). SQL> ALTER DATABASE REGISTER PHYSICAL LOGFILE 'xxx'; 3.檢查歸檔文件是否完整 分別在primary/standby執(zhí)行下列語句: SQL> select distinct thread#,max(sequence#) over(partition by thread#) a from v$archived_log; 把相差的歸檔復(fù)制到待轉(zhuǎn)換的standby服務(wù)器,并手工register
4.開始做failover 察看standby進(jìn)程狀態(tài) SQL> select process,client_process,sequence#,status from v$managed_standby;
PROCESS CLIENT_P SEQUENCE# STATUS --------- -------- ---------- ------------ ARCH ARCH 30 CLOSING ARCH ARCH 0 CONNECTED RFS LGWR 31 IDLE RFS ARCH 0 IDLE RFS N/A 0 IDLE MRP0 N/A 31 APPLYING_LOG
SQL> alter database recover managed standby database finish force ; FORCE關(guān)鍵字將會(huì)停止當(dāng)前活動(dòng)的RFS進(jìn)程,以便立刻執(zhí)行failover。 或 SQL> alter database recover managed standby database finish skip standby logfile;
SQL> alter database commit to switchover to primary; SQL> shutdown immediate SQL> startup
SQL> select database_role,protection_mode,protection_level,open_mode from v$database;
DATABASE_ROLE PROTECTION_MODE PROTECTION_LEVEL OPEN_MODE ---------------- -------------------- -------------------- ---------- PRIMARY MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE READ WRITE
Failover切換成功 |
|
|