最近給一套庫做不完全恢復,其中映象較為深刻的對RMAN-20207(如下圖)的報錯處理方式,下面在測試環境中來復現。
1、前提條件,全庫備份在,后續歸檔文件在。
==》我這套測試環境中只有1,2,3,4,5。這個5個數據文件。system,sysaux,undo(rac環境中各個節點都要還原)這個三類表空間是必須要恢復的。5號表空間是模擬業務表空間,是我們這次要恢復的目標。
==》通過如上命令還原表空間對應的數據文件。
==》這里通過skip方式跳過不需要恢復的表空間,恢復完成后,使用resetlogs方式打開數據庫。紅框中2號文件被offlinedrop,這里的2號文件對應的是test2這個表空間。換個思路就是說,我們不使用skip命令,而是提前將不需要的表空間對應的數據文件給offlinedrop掉,就可以直接使用recoverdatabase ;進行恢復。(當然這是另外一種思路了)。
2、發現只恢復test1表空間,數據有丟失,需要二次恢復把test2表空間給加上如下圖:
==》這里還原時新加了test2表空間對應的數據文件,2號文件。
==》隨后進行recover報RMAN-20209.這里就復現了之前生產的報錯。
關于報錯原因:
我這里模擬使用了resetlogs后的控制文件進行二次恢復的(如上圖紅框),因為incarnation發生了改變,導致恢復報錯。實際上生產上進行了恢復就是犯了這個錯誤,從而引發后續一系列的問題。
1、通過resetdatabase toincarnation,調整到resetlog之前的incarnation號。此外,根據二次恢復需要,檢查v$datafile中status狀態,將新添加的文件修改為online(首次恢復,通過skip命令調整成了offline。實際生產中,我們雖然reset了incarnation,但是未將新增的文件給online就進行了recover,雖然recover沒有報錯,但在啟庫階段數據庫一直拉不起來,最終導致第三次重新恢復。
2、重新恢復一份resetlog前的控制文件,根據需要對文件進行重新rename,隨后執行recover操作。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/129982.html
摘要:在過程中,發現的報錯是在中兩個頁面的無刷切換中出現的??聪蚓W址等等網址的前綴是,這個是谷歌瀏覽器插件的前綴。難不成,這個文件是谷歌瀏覽器插件的于是看向了中間的那一串神秘字符串。 場景重現 項目是一個SPA,使用了Vue+Vue-Router+Webpack+jQuery。報錯的場景如下:showImg(http://7xk109.com1.z0.glb.clouddn.com/blog...
摘要:里的并不是萬能的,因為他只能夠捕獲異常,而不能夠捕獲級別的報錯。如果想捕獲級的報錯,并且像異常處理一樣,做法如下報錯嘗試獲得結果參考本站的一個問答 php里的 try{}catch(Exception $e){} 并不是萬能的,因為他只能夠捕獲異常,而不能夠捕獲PHP級別的報錯。 如果想捕獲PHP級的報錯,并且像異常處理一樣,做法如下: set_error_handler(func...
摘要:于是檢查時發現,拼寫錯誤,應為。第個問題,是真真切切錯誤卸載重要軟件包,導致系統崩潰,修復系統的方法自然也就是利用原鏡像在下把該裝的都裝回去,前提是日志存在,萬幸沒有執行過。 首先問題產生的緣由很簡單,是我一同事在安裝oracle一套軟件時,按照要求需要binutils軟件包的32位版本,然而在Oracle Linux已經裝有64位,按理說是可以安裝i686的,我猜應該是32位的版本低...
閱讀 1353·2023-01-11 13:20
閱讀 1699·2023-01-11 13:20
閱讀 1211·2023-01-11 13:20
閱讀 1902·2023-01-11 13:20
閱讀 4161·2023-01-11 13:20
閱讀 2751·2023-01-11 13:20
閱讀 1397·2023-01-11 13:20
閱讀 3664·2023-01-11 13:20