oracle常見故障類別及規(guī)劃解析
前言:
上一篇文章中我們了解了oracle分區(qū)索引的失效和重建代碼示例的相關內容,接下來我們要看的內容是:
對任何數(shù)據庫系統(tǒng)而言,對顯而易見的故障,應當避免發(fā)生本文列出了Oracle常見的故障并給出了解決方案,同時列出了一些日常規(guī)劃。
一、數(shù)據庫高可用性的幾個目標
MTBF(Mean-Time-Between-Failures)
平均失敗時間,即數(shù)據庫出現(xiàn)失敗的頻繁度,應盡可能增大該值
應對措施
RAC集群技術:位于多臺計算機上的多個實例打開一個物理數(shù)據庫,降低因一個或多實例失敗導致的風險
Streams:利用高級隊列技術,通過解析歸檔日志,將歸檔日志解析成DDL及DML語句,從而實現(xiàn)數(shù)據庫之間的同步。相當于
SQL server中的復制技術,可以在對主系統(tǒng)沒有任何壓力的情況下,實現(xiàn)對數(shù)據庫對象級甚至整個數(shù)據庫的同步。
Data Guard:一個主數(shù)據庫,多個備用數(shù)據庫,備用數(shù)據庫是主數(shù)據庫在事務上一致的副本,可是在主數(shù)據宕機的情況下由
備用服務器來繼續(xù)提供服務。相當于SQL server中的數(shù)據庫鏡像功能。
MTTR(Mean-Time-To-Recover)
平均恢復時間,數(shù)據失敗后出現(xiàn)的停機時間,應盡可能減小該值
數(shù)據損失最小化
在減少MTTR的同時,應盡可能的減少數(shù)據的損失
二、常見的故障類別
1.語句級故障,通常為DML,DQL,DCL,DDL等等
無效數(shù)據 -->使用數(shù)據符合相關約束,滿足值域的數(shù)據
缺少權限 -->給予用戶所需的權限
空間分配問題 -->使用alter session enable resumable,增加用戶配額,增加表空間大小
應用程序邏輯錯誤 -->修正邏輯錯誤
2.用戶進程故障
用戶非登出的異常退出
用戶會話異常終止
程序錯誤導致會話結束
對于上述錯誤,實例后臺進程PMON會自動回滾未提交的事務,并釋放相關鎖資源
3.網絡故障
偵聽器故障 -->配置一個備份的偵聽器,connect-time故障轉移
網絡接口卡故障 -->使用多個網絡接口卡
網絡連接故障(路由) -->配置一個備份的網絡連接
4.用戶錯誤
用戶意外刪除或修改數(shù)據 -->回滾或使用閃回查詢來恢復
用戶刪除表 -->從回收站閃回刪除
5.介質故障
磁盤故障
磁盤控制器故障
刪除或損壞數(shù)據文件
可能的解決方案,使用聯(lián)機事務日志從備份恢復受影響的文件或恢復數(shù)據文件到新的物理位置
6.實例故障
電源負載故障
硬件故障
后臺進程失敗
異常關閉數(shù)據庫
解決方案,使用startup重新啟動實例。實例實現(xiàn)自動恢復,根據聯(lián)機日志文件前滾提交的事務,回滾未提交的事務
查看告警日志、跟蹤日志等找出出現(xiàn)故障的原因
三、實例恢復相關的后臺進程
1.檢查點進程(CKPT)
檢查點將當前日志文件的信息更新到數(shù)據文件頭部,控制文件等
檢查點的目的是同步日志文件與數(shù)據文件的不同步,從而可以確定實例恢復從最近的檢查點開始
檢查點的觸發(fā)條件
在日志切換的時候
數(shù)據庫用immediate,transaction ,normal選項shutdown數(shù)據庫的時候
根據初始話文件LOG_CHECKPOINT_INTERVAL、LOG_CHECKPOINT_TIMEOUT、FAST_START_IO_TARGET的設置的數(shù)值來確定
用戶受手動觸發(fā)
檢查點存在的理由
確保在內存中已修改的數(shù)據定期寫入到數(shù)據文件,防止系統(tǒng)或數(shù)據庫故障引起數(shù)據的丟失
減少實例恢復所需的時間,從最近的檢查點到故障時即為所需要進行的恢復
在數(shù)據庫關閉時,確保所有提交的數(shù)據寫入到數(shù)據文件
檢查點信息包括
檢查點位置(位于聯(lián)機日志文件)
系統(tǒng)改變號(SCN)
聯(lián)機日志文件中的位置
日志信息等
注:檢查點進程不會寫入數(shù)據塊磁盤,也不會寫任何日志到聯(lián)機日志文件
2.聯(lián)機日志文件及日志寫入進程(LGWR)
聯(lián)機日志文件記錄數(shù)據庫的變化情況
應當被多功復用以避免丟失
日志寫入進程
在commit時觸發(fā)
當日志緩沖/3滿時
每秒觸發(fā)
在DBWn之前完成
3.歸檔進程(ARCn)
歸檔進程是一個可選的后臺進程
當數(shù)據庫處于歸檔模式下,將自動歸檔聯(lián)機日志文件
數(shù)據庫所有做出的變化將被完整記錄
歸檔進程在每次發(fā)生日志切換時被初始化,在聯(lián)機日志文件被重新使用前自動對聯(lián)機日志文件實現(xiàn)歸檔
建議開啟歸檔模式
四、三大文件的規(guī)劃
1.多路復用控制文件
至少使用個以上的控制文件
分散放開到不同的磁盤
控制文件副本應當位于不同的磁盤控制器
建議使用RMAN定期自動備份
2.多路復用重做日志文件
每一個日志組至少兩個成員
每一個日志成員應當位于不同的磁盤
每一個日志成員應當位于不同的磁盤控制器
組內成員被同時寫,帶來較大的I/O,應置于高速磁盤
3.歸檔日志
應將生產數(shù)據庫切換到歸檔模式
按合理的歸檔日志命名
多于一個歸檔路徑
總結
以上就是本文關于oracle常見故障及規(guī)劃解析的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:ORACLE SQL語句優(yōu)化技術要點解析、淺談oracle rac和分布式數(shù)據庫的區(qū)別、oracle 數(shù)據庫啟動階段分析等,有什么問題可以隨時留言,小編會及時回復大家的。這里推薦幾本oracle方面的書籍供大家學習參考。
Oracle精髓(第四版) 中文 PDF版
http://m.fzitv.net/books/62033.html
Oracle 11g 從入門到精通 錢慎一 PDF完整版
http://m.fzitv.net/books/74876.html
希望大家喜歡!
相關文章
Oracle數(shù)據庫的實例/表空間/用戶/表之間關系簡單講解
這篇文章主要介紹了Oracle數(shù)據庫的實例/表空間/用戶/表之間關系簡單講解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08
PLSQL配置遠程Oracle數(shù)據庫連接的示例代碼
這篇文章主要介紹了PLSQL配置遠程Oracle數(shù)據庫連接的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09
Oracle數(shù)據庫中創(chuàng)建自增主鍵的實例教程
Oracle的字段自增功能,可以利用創(chuàng)建觸發(fā)器的方式來實現(xiàn),接下來我們就來看看Oracle數(shù)據庫中創(chuàng)建自增主鍵的實例教程,需要的朋友可以參考下2016-05-05
plsql 登錄 oracle11 12514 錯誤的處理方法
這篇文章主要介紹了plsql 登錄 oracle11 12514 錯誤的處理方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-09-09

