【DataGuard】物理Data Guard之Failover轉換
如果可能的話(即主庫暫時還能夠訪問,還沒有從這個世界上消失),在執行Failover操作之前,我們應該將主庫中可用並且沒有應用的的日誌檔案傳到備庫。
如果備庫執行在最大保護或者最大可用的資料保護模式下,應該先將資料保護級別調整為最大效能。方法如下
SQL> alter database set standby database to maximize performance;
Failover步驟如下。
1.檢視備庫的歸檔檔案是否連續
查詢待轉換備庫的V$ARCHIVE_GAP檢視,確認歸檔檔案是否連線:
sys@secdg> select thread#, low_sequence#, high_sequence# from v$archive_gap;
no rows selected
這裡如果有記錄返回,如果有可能的話,需要將列出的檔案手工複製到備庫。當主庫所在伺服器出現嚴重問題,比如經歷了人類無法抗拒的力量攻擊,被摧毀。那麼這步只好作罷。我們這裡只能盡力而為。
對複製過來的檔案使用如下方法進行註冊。
sys@secdg> alter database register physical logfile 'filespec1';
2.反覆執行第一步中提到的操作內容,直到返回記錄為空
3.檢視歸檔檔案是否完整
在主備庫中分別執行如下語句。
sys@secdg> select distinct thread#,max(sequence#) over(partition by thread#) a from v$archived_log;
同樣的策略,如果有可能的話,將確實的歸檔日誌複製到備庫。
對複製過來的檔案使用如下方法進行註冊。
sys@secdg> alter database register physical logfile 'filespec1';
4.在需要Failover的備庫上準備轉換
sys@secdg> alter database recover managed standby database finish force;
Database altered.
“FORCE”關鍵字將會停止備庫中活動的RFS程式,從而可以立即執行Failover轉換,不必等待網路連線超時。
5.將物理Data Guard備庫Failover轉換為主庫
sys@secdg> select database_role from v$database;
DATABASE_ROLE
----------------
PHYSICAL STANDBY
sys@secdg> alter database commit to switchover to primary;
Database altered.
sys@secdg> select database_role from v$database;
DATABASE_ROLE
----------------
PRIMARY
6.完成備庫到主庫的轉換工作
1)如果此時資料庫狀態為MOUNTED狀態,直接可以將資料庫open
sys@secdg> select open_mode from v$database;
OPEN_MODE
----------
MOUNTED
sys@secdg> alter database open;
Database altered.
sys@secdg> select open_mode from v$database;
OPEN_MODE
----------
READ WRITE
2)如果資料庫狀態為READ ONLY狀態,需要停啟一下資料庫
sys@secdg> shutdown immediate;
sys@secdg> startup;
7.備份Failover轉換過來的主庫
此時主庫是被Failover過來的,也就是說是一個起死回生過來的新庫,理所當然的需要對其進行備份。
備份手段不限,只要是有效的備份即可。防止出現問題的時候可以進行恢復。
8.恢復失敗的主庫
此時備庫已經透過Failover方式轉換為主庫,原主庫已經徹底脫離了我們Data Guard環境。該如何處置原主庫呢?
這裡給出幾種思路:
1)另作他用;
2)將其作為現在主庫的備庫;
3)將其作為現在主庫的備庫,同時做一次Switchover恢復其主庫的身份。
9.Oracle官方文件參考連結
10.小結
Failover是主庫出現嚴重故障不得以而為之的動作。需要酌情考慮使用。
Good luck.
secooler
11.06.19
-- The End --
如果備庫執行在最大保護或者最大可用的資料保護模式下,應該先將資料保護級別調整為最大效能。方法如下
SQL> alter database set standby database to maximize performance;
Failover步驟如下。
1.檢視備庫的歸檔檔案是否連續
查詢待轉換備庫的V$ARCHIVE_GAP檢視,確認歸檔檔案是否連線:
sys@secdg> select thread#, low_sequence#, high_sequence# from v$archive_gap;
no rows selected
這裡如果有記錄返回,如果有可能的話,需要將列出的檔案手工複製到備庫。當主庫所在伺服器出現嚴重問題,比如經歷了人類無法抗拒的力量攻擊,被摧毀。那麼這步只好作罷。我們這裡只能盡力而為。
對複製過來的檔案使用如下方法進行註冊。
sys@secdg> alter database register physical logfile 'filespec1';
2.反覆執行第一步中提到的操作內容,直到返回記錄為空
3.檢視歸檔檔案是否完整
在主備庫中分別執行如下語句。
sys@secdg> select distinct thread#,max(sequence#) over(partition by thread#) a from v$archived_log;
同樣的策略,如果有可能的話,將確實的歸檔日誌複製到備庫。
對複製過來的檔案使用如下方法進行註冊。
sys@secdg> alter database register physical logfile 'filespec1';
4.在需要Failover的備庫上準備轉換
sys@secdg> alter database recover managed standby database finish force;
Database altered.
“FORCE”關鍵字將會停止備庫中活動的RFS程式,從而可以立即執行Failover轉換,不必等待網路連線超時。
5.將物理Data Guard備庫Failover轉換為主庫
sys@secdg> select database_role from v$database;
DATABASE_ROLE
----------------
PHYSICAL STANDBY
sys@secdg> alter database commit to switchover to primary;
Database altered.
sys@secdg> select database_role from v$database;
DATABASE_ROLE
----------------
PRIMARY
6.完成備庫到主庫的轉換工作
1)如果此時資料庫狀態為MOUNTED狀態,直接可以將資料庫open
sys@secdg> select open_mode from v$database;
OPEN_MODE
----------
MOUNTED
sys@secdg> alter database open;
Database altered.
sys@secdg> select open_mode from v$database;
OPEN_MODE
----------
READ WRITE
2)如果資料庫狀態為READ ONLY狀態,需要停啟一下資料庫
sys@secdg> shutdown immediate;
sys@secdg> startup;
7.備份Failover轉換過來的主庫
此時主庫是被Failover過來的,也就是說是一個起死回生過來的新庫,理所當然的需要對其進行備份。
備份手段不限,只要是有效的備份即可。防止出現問題的時候可以進行恢復。
8.恢復失敗的主庫
此時備庫已經透過Failover方式轉換為主庫,原主庫已經徹底脫離了我們Data Guard環境。該如何處置原主庫呢?
這裡給出幾種思路:
1)另作他用;
2)將其作為現在主庫的備庫;
3)將其作為現在主庫的備庫,同時做一次Switchover恢復其主庫的身份。
9.Oracle官方文件參考連結
10.小結
Failover是主庫出現嚴重故障不得以而為之的動作。需要酌情考慮使用。
Good luck.
secooler
11.06.19
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-700417/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DATA GUARD物理STANDBY的FAILOVER切換AI
- dataguard之物理standby庫failover 切換AI
- Oracle 12c Data guard 物理備庫應急切換(failover)流程OracleAI
- Oracle 11g Data guard 物理備庫應急切換(failover)流程OracleAI
- 盛哥學習 Data Guard 第四篇《物理standby之failover 丟棄切換》AI
- 【DATAGUARD】物理dg的failover切換(六)AI
- 【轉】【DataGuard】Oracle 11g物理Data Guard之Snapshot Standby資料庫功能Oracle資料庫
- data guard物理備份方式中的switchover轉換
- DATA GUARD物理STANDBY的 SWITCHOVER切換
- [轉]物理data guard原理的理解
- 【DataGuard】使用Grid Control對Oracle物理Data Guard進行Switchover切換Oracle
- DATA GUARD物理備庫的SWITCHOVER切換
- DATA GUARD物理STANDBY的 SWITCHOVER切換[zt]
- 物理DG角色轉換: failoverAI
- data gurad物理備份方式中的failover轉換AI
- 【DataGuard】Oracle 11g物理Data Guard之Snapshot Standby資料庫功能Oracle資料庫
- Oracle Data Guard Failover(activate)OracleAI
- In Data Guard,choose switchover or failover?AI
- data guard failover on solaris 10AI
- 【DATAGUARD】物理dg配置客戶端無縫切換 (八.1)--Data Guard Broker 的配置客戶端
- 【DataGuard】使用Grid Control快速部署Oracle物理Data GuardOracle
- Data Guard Switchover and Failover Best PracticesAI
- Data Guard Broker系列之六:Fast-Start FailoverASTAI
- Dataguard物理Standby Switchover 角色轉換
- 【DataGuard】同一臺主機實現物理Data Guard配置安裝
- 【DATAGUARD】Data Guard Wait EventsAI
- Oracle 10g DataGuard物理主備切換-switchover與failoverOracle 10gAI
- Data Guard學習之物理standby建立步驟
- RedHat搭建物理Data GuardRedhat
- dataguard之物理standby 日誌切換
- Data Guard broker系列之五:資料庫角色轉換資料庫
- Data Guard 之RMAN備份線上搭建物理standby
- 10g Data Guard physical standby的主備庫角色轉換測試(switchover & failover)AI
- 物理data guard原理的理解(zt)
- Oracle Data Guard快速啟動故障切換 - fast-start failover(FSFO)OracleASTAI
- Dataguard failover切換實驗AI
- 【DataGuard】使用Grid Control對Oracle物理Data Guard進行健康檢查Oracle
- 【DATAGUARD】Oracle19c Data Guard BrokerOracle