控制檔案不一致引發的“血案”
| 故障發生
近日,某客戶透過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;
設定該引數後,每次控制檔案更新時,資料庫都會去檢查控制檔案狀態。保證資料庫的健壯性。
在未來如果解決了IO低效的問題,可以再次將該引數設定為預設值。
點選(此處)摺疊或開啟
- SQL> alter system set "_controlfile_update_check"='OFF' scope=spfile;
| 作者簡介
陳康,沃趣科技資料庫技術專家
主要參與公司產品實施、測試、維護以及最佳化。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28218939/viewspace-2153381/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 研發效能度量引發的血案
- 由Ghost漏洞引發的“血案”
- RestTemplate超時引發的血案REST
- JDBC亂碼引發的"血案"JDBC
- 一個 List.of 引發的“血案”
- Flutter 中由 BuildContext 引發的血案FlutterUIContext
- vue watch陣列引發的血案Vue陣列
- async,await與forEach引發的血案AI
- io.Reader遊標引發的血案
- Maven依賴版本號引發的血案Maven
- 一個map函式引發的血案函式
- 一個UPDATE語句引發的血案
- 一場 Kafka CRC 異常引發的血案Kafka
- 一個ES設定操作引發的“血案”
- 實戰|一個表白牆引發的“血案”
- js正則全域性匹配引發的血案JS
- 一個系統BUG引發的血案 -- FKDownloader
- 一個 Handler 面試題引發的血案!!!面試題
- 一道面試題引發的“血案”面試題
- 一場由postcss-bem引發的血案CSS
- MySQL 中一個雙引號的錯位引發的血案MySql
- 斷點除錯之壓縮引發的血案斷點除錯
- 記一次Content-Length引發的血案
- 一行程式碼引發的”血案“!!!(軟體開發、專案管理、skycto JEEditor)行程專案管理
- oracle 控制檔案及引數檔案何時自動備份Oracle
- 一個由line-height引發的血案與思考
- 事故現場:MySQL 中一個雙引號的錯位引發的血案MySql
- git merge使用不當引發的程式碼丟失血案Git
- 一場版本升級引發的效能血案的追凶過程
- 為什麼redux要返回一個新的state引發的血案Redux
- 一場由AI引發的GPU血案,AMD還有機會嗎?AIGPU
- 為什麼 redux 要返回一個新的 state 引發的血案(二)Redux
- Oracle 控制檔案Oracle
- 【原創】經驗分享:一個Content-Length引發的血案(almost....)
- 第三方賬號登陸的過程及由此引發的血案
- 程式設計師過關斬將--小小的分頁引發的加班血案程式設計師
- 做面試的不倒翁:一道事件迴圈題引發的血案面試事件
- 2.6.4 指定控制檔案