【恩墨學院】深入解析:一主多備DG環境,failover的實現過程詳解
【恩墨學院】深入解析:一主多備DG環境,failover的實現過程詳解
作者介紹
現任雲和恩墨資料庫技術顧問,擅長的安裝配置、故障診斷、效能診斷、效能最佳化、備份容災解決方案的設計與實施。
個人技術部落格:https://www.cnblogs.com/jyzhao
在DG中,switchover和failover是兩個重要的概念,也是DG實現的核心。根據不同的DG配置,switchover和failover也是有差異的。當主庫被crash之後,如何進行DG foilover的操作?
本文是針對在DG災備環境進行failover操作以及後續恢復的報告。
資料庫版本:Oracle 11.2.0.4
Site A:主庫 db_unique_name=jyzhao
Site B:備庫(實時應用)db_unique_name=mynas
Site C:備庫(延遲1小時應用)db_unique_name=jyzhao_s
A庫 => Site A:主庫
B庫 => Site B:備庫(實時應用)
C庫 => Site C:備庫(延遲1小時應用)
當A庫crash後,在B庫進行failover將B切換為新的主庫,確認failover之後,A庫和C庫應該如何處理才可以成為新的備庫繼續使用?是否需要重建?重建的話,是否需要重新備份來恢復,以前的備份是否可以用來建立備庫?
問題
驗證過程
1、A庫異常關閉
A庫:
SQL>shutdown abort
2、B庫進行failover切換為新主庫
failover 標準步驟如下:
#取消DG應用
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
#重啟下資料庫(建議)
shutdown immediate;
startup
#操作不可逆,確定實際情況需要failover
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH force;
SELECT OPEN_MODE, DATABASE_ROLE, SWITCHOVER_STATUS, FORCE_LOGGING, DATAGUARD_BROKER, GUARD_STATUS FROM V$DATABASE;
#嘗試常規切換為主庫
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
如果這一步的常規切換失敗,提示需要介質恢復,那麼:
1)恢復備庫 recover standby database until cancel;
2)啟用備庫 alterdatabaseactivatestandbydatabase;
#最後重新啟動資料庫
shutdownimmediate;
startup
檢視此時B庫的資訊:
SQL>selectname, database_role, open_mode fromgv$database;
可以看到,目前B庫已成為新的主庫,redo日誌的sequence重新開始。
3、要求C庫成為新主庫的備庫
現在要求C庫成為新主庫的備庫。是否需要重建C庫呢?答案是不需要。下面具體來看下驗證過程。
C庫的alert日誌:
可以看到,在A庫crash之後,C庫收到網路無法連線到A庫的告警,說明C庫目前沒有新的操作。
接下來想要C庫成為B庫(新主庫)的備庫,就需要嘗試在B庫上配置DG引數,使得B庫的歸檔可以傳輸到C庫。
同時在B庫的tnsnames.ora檔案中增加到C庫的連線:
#StandbySingle Instance
JYZHAO_S=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.111)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = jyzhao_s)) )
在B庫設定完成後,觀察B庫的告警:
然後返回C庫操作,將C庫開啟實時日誌應用:
SQL>alter database recover managed standby database cancel;
Databasealtered.
SQL>alter database recover managed standby database using current logfile disconnect from session;
Databasealtered.
此時再觀察C庫的告警日誌:
實際看到,C庫已經可以正常應用日誌。說明C庫不需要重建即可透過簡單配置成為新主庫B庫的新備庫。
4、要求A庫成為新主庫的備庫
此時A庫啟動的話,是一個獨立執行的資料庫,如果想將A庫也設定為主庫的話,那麼,透過新主庫的最新備份肯定是可行的,但是如果資料量很大,之前A庫自己本身有歷史的備份,能否不再耗時備份新主庫,直接透過歷史的備份恢復呢?其實這個從上面的C庫不再需要重建直接成為新主庫的備庫,也可以推斷出,是可以的。只需要確認這個備份是在failover之前完成的。下面我們來具體實驗驗證下可行性。
在B庫建立新的備庫控制檔案,並傳輸到A庫相同路徑下:
backupcurrentcontrolfileforstandbyformat'/tmp/std_control02.ctl';
在A庫啟動到nomount,恢復新的備庫控制檔案
restorestandbycontrolfilefrom'/tmp/std_control02.ctl';
在A庫檢視資料檔案頭的檢查點,確認是在failover之前:
上面這個資料檔案頭的檢查點是0,說明資料檔案沒有正確獲取到,實際上是由於OMF的名字有變化,直接將資料檔案路徑catalog到備份集中,再switch即可。
catalogstartwith'+DATA1/jyzhao/datafile/';
switchdatabase to copy;
再次查詢:
此時在mount狀態下開啟日誌應用:
alter database recover managed standby database disconnect from session;
從告警日誌觀察,確認應用到最新時,取消日誌應用:
alter database recover managed standby database cancel;
開啟資料庫,開啟實時應用:
alter database recover managed standby database USING CURRENT LOGFILE disconnect from session;
最終查詢可以正常實時應用。
結論
一般來說,在A庫crash之後,B庫failover成為新的主庫,那麼原來設定為延遲1小時應用的C 庫是可以直接配置成為新主庫的備庫。A庫修復後,也可以透過failover之前的現有備份集來恢復到failover之前的狀態,而不需要在新主庫重新去備份。
恩墨學院隸屬於雲和恩墨(北京)資訊科技有限公司,致力於提供專業高水準的與大資料培訓服務,挖掘培養大資料與資料庫人才。恩墨學院提供包括個人實戰技能培訓、個人認證培訓、企業內訓在內的全方位大資料和資料庫技術培訓。ACE級別超強師資,配備專業實驗室,沉浸式學習與訓練,專業實驗室、配備專業助教指導訓練。能迅速融入專家圈子,業內資源豐富,迅速積累職場人脈。課程包括:班、Oracle 、Oracle OCP考試等。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28530558/viewspace-2152410/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【恩墨學院】Oracle DG測試failover和後續恢復報告OracleAI
- 【恩墨學院】深入剖析 - Oracle SCN機制詳細解讀Oracle
- 【恩墨學院】恩墨學院獲得Oracle WDP全國授權Oracle
- 【恩墨學院】深入剖析 Group Replication核心的引擎特性
- 【恩墨學院】深入剖析:關於cache buffers chains的經典案例處理詳解?AI
- 深入理解Fabric環境搭建的詳細過程
- 邏輯DG主備庫轉換的failoverAI
- 【恩墨學院】深入解讀Oracle 18c對於DBA的影響及應對措施Oracle
- 【恩墨學院】5 分鐘帶你看懂 DockerDocker
- 【DG】利用閃回資料庫(flashback)修復Failover後的DG環境資料庫AI
- fabric網路環境啟動過程詳解
- 【恩墨學院】如何理解並正確使用MySql索引MySql索引
- PHP 協程實現過程詳解PHP
- 【恩墨學院】走在專家的路上,每天一條SQL最佳化SQL
- 【Node】詳解模組的實現過程
- 【恩墨學院】資料架構:從AT&T到青海移動的多租戶資料整合實踐架構
- 【恩墨學院】Oracle Redo的產生場景及最佳化Oracle Redo
- 【恩墨學院】一次由查詢轉換引起的效能問題的分析
- Oracle DataGuard環境failover後通過舊備份建立物理StandbyOracleAI
- 【恩墨學院】從資料庫建立深入學習Oracle技術:那些年 mkplug 偷偷執行的Plugin操作資料庫OraclePlugin
- 轉:DNS解析過程詳解DNS
- 使用Flashback讓Failover資料庫重新加入DG環境AI資料庫
- 【恩墨學院】從商用到開源:DB2遷移至MySQL的最佳實踐DB2MySql
- 【恩墨學院】5分鐘速成Oracle 12.2 RAC 專家Oracle
- 【恩墨學院】空與非空 EMPTY_LOB和NULL的區別Null
- DM8 實時主備環境搭建
- JVM 深入學習:Java 解析 Class 檔案過程解析JVMJava
- 【恩墨學院】原來銀行都在用這些資料庫資料庫
- 【恩墨學院】運維經驗:回滾段異常的特殊救急方法運維
- ora11_node_dg(3)ADG做failover切換(主庫當機,從庫升為主庫過程)AI
- MySQL Xtrabackup真實生產環境搭建主從複製全過程MySql
- 【DG】Oracle之級聯DG--(cascade dg) --(一主一備一級聯)Oracle
- 主備切換(failover)AI
- 【恩墨學院】警示:一個專為AIX上12.1版本定製的Bug正在發生AI
- 【恩墨學院】深度學習在美團點評推薦平臺排序中的運用深度學習排序
- 真實環境的OracleGoldenGate配置引數詳解 -- 災備端OracleGo
- jQuery實現的簡單焦點圖特效實現過程詳解jQuery特效
- 圖片放大鏡效果實現過程詳解