Oracle資料不同步的問題分析和解決思路
其實幫助很多的朋友解決過Oracle資料庫資料不同步的問題,看似簡單的問題分析出來的原因也是五花八門。比如:
Oracle資料庫問題的一點總結 在檢視一些沒有專業DBA維護的資料庫的時候,會發現很多的潛在問題,有些可能無傷大雅,看起來是不規範不標準的問題,倒不會直接造成問題,而有些問題會讓人後背發涼,正如同歌詞裡唱的,一旦錯過就不再,這裡說的就是資料,所以也希望大家能夠在一些案例中得到啟發和參考,避免在自己的系統中重演。
先囉嗦一句,儘管在Oracle命令列下敲過命令了,但是完整的命令和思路還算清晰,所以大家在平時的工作裡面要打好基礎,別被圖形工具和高大上的工具綁架,出問題的時候,能夠拿起手裡的瑞士軍刀才是真道理。
這次幫朋友看的問題,現象還是老三樣,資料不同步,無法登陸,無法啟動中的資料不同步。這類問題的願意確實很多,可能是系統級的空間不足,或者是閃回區的空間不足,表空間不足等等。
當然簡單確認問題,只是說資料同步有問題,面對各種可能性,只能讓日誌告訴方向了。
這是一個一主一備的環境,11gR2的版本,開啟了ADG,快速檢視了主庫,發現業務處理是正常的,而且檢視資料庫日誌也沒有發現什麼和空間相關的錯誤資訊。所以很快主庫的系統級,表空間的可能性排除了。
那麼可能是備庫端的空間或者邏輯空間溢位,所以登入到從庫確認,發現是閃回去溢位了。
Oracle的閃回區其實有些糾結,在很多情況下,備庫的閃回區沒有自動回收,結果就慢慢溢位,導致了很多的嚴重問題,這個庫就是如此,問題拖了一段時間,導致已經超出了控制檔案的保留週期。
而且詭異的是似乎主備庫的網路也有了一點變動,讓這個問題更加雪上加霜。
面對這種情況,該如何處理呢,一種直接的方案就是刪除閃回區中的冗餘歸檔檔案,或者調大閃回區,保險起見,如果空間還足夠,是建議調大閃回區的,如果有些資料還沒有同步過去,我們刪除了之後,就很被動了。
當然我調大了閃回區之後,發現出現了新的問題,原來歸檔斷了,比如歸檔的序列號是從7000-10000,如果歸檔好7213丟失了,那麼7213後續的歸檔檔案都無法直接應用,而如果我們更是雪上加上刪除了沒有應用的歸檔檔案,就麻煩了。
所以我帶著僥倖的心理對比了主庫和備庫的在斷點時間範圍的歸檔日誌情況,發現主庫上竟然有這幾個歸檔檔案,那麼我就可以直接複製到備庫端了,但是這個過程是無法觸發自動應用的,因為主備庫的歸檔日誌命名格式不同。
比如主庫是1_7213_8980808sa.dbf 而備庫是 1_7213_20180308_89131231.dbf這種情況下,我們就需要手工應用日誌了。
alter database register logfile 'xxxxx/xxx.dbf' ;
正讓我竊喜的時候,我發現問題原來比我想的還要糟糕,儘管這個斷點問題修復了,但是後續又發現了一系列問題,有大量的歸檔檔案依舊丟失。
這個時候查明白歸檔為什麼會丟失相比修復問題,修復當前問題的優先順序要高得多,所以我簡單評估了這個問題。
目前遺漏的歸檔檔案有上千個,除非我寫一個自動化指令碼來自動複製,自動化應用歸檔日誌檔案,讓這個指令碼看起來足夠強大,加上除錯少說也有1個小時。
而如果做一個減法,我們直接重新搭建備庫,整個過程就更加平滑了。
我根據資料量做了一個評估,保證頻寬的情況下,在一個小時內應該可以搞定,所以確認好實施步驟,就開始操作了。
首先是停掉備庫。
這個簡單的操作,竟然備庫hang住了,當然我提前看了下保護模式,這裡是最大高可用模式,即可以在最大保護模式和最大效能之間來權衡,如果是最大保護模式,我就溴大了,因為這個操作會直接把主庫也幹掉。
因為不斷的確認角色和狀態,所以這些也算是心中有數,因為要重做資料,所以直接shutdown abort也是可以的。
搭建備庫,用了duplicate的方式簡直就是酸爽。
rman target sys/xxxx@test01auxiliary sys/xxx@test02 nocatalog
duplicate target database for standby from active database nofilenamecheck;
整個過程還算順利,在配置主備關係的時候,我依舊適用了我的老朋友DG Broker,簡單的幾個命令就可以讓Data Guard正常跑起來。
看了下時間,從確認要開始這麼做到完成,還不到一個小時,也算是按照預期完成了任務。
後面做了一些補充的檢查,把一些潛在的問題都修復了下,心裡才算是踏實了一些。
這個案例看起來思路也很簡單,但是實際操作的過程中,面對的是一個交易系統,更多的是考慮如果儘快修復資料,不能對已有的業務流程造成影響,或者倒黴的觸發bug導致資料庫故障,就得不償失了。
而處理問題的時候,也是穩中求穩,比如如果我面對丟失歸檔的資料庫回覆,其實也可以考慮使用增量備份來恢復等方案,但是從簡單清晰的思路來入手,重新搭建是最穩定,思路也是最清晰的,如果增量恢復出現問題,或者增量備份有任何問題,要承受的壓力都是相當大的。
總之,快速解決了問題,你就是專家,否則,任何解釋都沒有用。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-2152375/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 惡意攻擊問題分析和解決(一)Oracle
- MySQL主從不同步問題分析與處理思路MySql
- 【TUNE_ORACLE】Oracle資料庫與HugePages(三)HugePages常見問題和解決辦法Oracle資料庫
- 『分析和解決問題的7種武器』今日資料行業日報(2019.08.16)行業
- 資料庫層面問題解決思路資料庫
- 雲端遷移過程中的技術問題和解決思路
- Oracle 12C TDE問題引發DG不同步案例分析Oracle
- 資料問題排查思路
- 資料庫檔案複製問題和解決辦法資料庫
- Ajax跨越問題原因分析與解決思路
- JVM 問題分析思路JVM
- 容器雲資源資料關聯與資料聯動的難點和解決思路
- oracle資料庫常見故障和解決難度Oracle資料庫
- 一軟一硬:記錄我的工作電腦兩次出現效能問題的分析思路和解決過程
- redis分散式鎖的問題和解決Redis分散式
- 常見的反爬手段和解決思路
- 粘包問題原因和解決方法
- Oracle 11.2.0.4.0 install for Win10(專業版) 常見問題和解決方法OracleWin10
- java多執行緒:執行緒同步synchronized(不同步的問題、佇列與鎖),死鎖的產生和解決Java執行緒synchronized佇列
- redis中大key問題的解決思路Redis
- 解決吞吐效能問題時的思路
- 透徹分析和解決一切javaWeb專案亂碼問題JavaWeb
- Redis常見的效能問題和解決方法UWRedis
- 解決Docker容器時區及時間不同步的問題Docker
- 解決git 不同branch 下node_moudes不同步的問題Git
- Firefox 使用常見問題和解決方法Firefox
- android中The connection to adb is down,問題和解決Android
- 最新 IDEA 和 Maven 整合問題和解決IdeaMaven
- Oracle資料庫出現WARNING: too many parse errors告警的分析思路Oracle資料庫Error
- 幾種主要的oracle資料庫問題發生後資料恢復的成功概率分析Oracle資料庫資料恢復
- Bigkey問題的解決思路與方式探索
- 巢狀ScrollView問題解決思路巢狀View
- Debian 11 關閉 swap 遇到的問題和解決方案
- GT911驅動遇到的問題和解決方案
- Composer 使用過程中遇到的問題和解決方案
- 浮動元素引起的問題和解決辦法?
- composer依賴相關的問題和解決辦法
- 浮動元素引起的問題和解決辦法