控制文件不一致引發的「血案」
作者 陳康·沃趣科技資料庫技術專家
出品 沃趣科技
| 故障發生
近日,某客戶通過QMonitor監控軟體發現一個備庫報警,需要遠程支持。通過客戶發出的告警截圖可以判斷該備庫已經掛掉。由於該客戶不擅長技術方面,所以無法提供過多的信息。
| 故障恢復
登上備庫主機,檢查環境為11g單實例ASM,操作系統為RedHat6.5。資料庫實例確認為關閉狀態,ASM實例狀態正常。所以直接進行備庫實例開啟,啟動備庫後開啟實施日誌恢復進程,操作一切順利,沒有異常。
| 問題深究
通過和現場值守人員交流,該備庫在VMware虛擬機上運行,存儲會定時進行備份,該備庫近期一直無人操作,可以排除人為關庫。只好通過查看資料庫alert日誌確定備庫關閉原因。可以發現alert日誌記載的非常明顯。
The controlfile header block returned by the OS has a sequence number that is too old.The controlfile might be corrupted.
當多副本控制文件內部sequence不一致就會產生該錯誤。據MOS上文檔 1589355.1 的描述,這種情況大多是因為存儲錯誤或者IO錯誤的情況引起的。
| 改進措施
由於暫時無法解決存儲端的問題,而且該備庫因為此原因發生關閉的情況已經出現了兩次,所以為了預防此問題的發生,根據文檔1589355.1 的建議,修改隱藏參數_controlfile_update_check
SQL> alter system set "_controlfile_update_check"=OFF scope=spfile; -- then bounce the database.
設置該參數後,每次控制文件更新時,資料庫都會去檢查控制文件狀態。保證資料庫的健壯性。
在未來如果解決了IO低效的問題,可以再次將該參數設置為默認值。
SQL> alter system set "_controlfile_update_check"=OFF scope=spfile; -- then bounce the database.
| 作者簡介
陳康,沃趣科技資料庫技術專家
主要參與公司產品實施、測試、維護以及優化。
推薦閱讀:
※如何構建你的文章框架和邏輯,讓你的文章更出彩
※坤鵬論:小米阿里網紅papi醬為什麼火 真正原因是經濟下行!
※未來人口四倍於中國的非洲,我們該如何面對
※王棠雲有什麼背景嗎?
※企鵝號怎麼樣,如何註冊企鵝號?