Oracle 常見故障及日常規劃

beatony發表於2011-07-29
Oracle 常見故障及日常規劃
分類: Oracle 其它特性 323人閱讀 評論(0) 舉報

--=============================

-- Oracle 常見故障及日常規劃

--=============================

 

    對任何資料庫系統而言,對顯而易見的故障,應當避免發生本文列出了Oracle常見的故障並給出瞭解決方案,同時列出了一些日常規劃。

   

一、資料庫高可用性的幾個目標

        MTBF(Mean-Time-Between-Failures)

            平均失敗時間,即資料庫出現失敗的頻繁度,應儘可能增大該值

            應對措施

                RAC叢集技術:位於多臺計算機上的多個例項開啟一個物理資料庫,降低因一個或多例項失敗導致的風險

                Streams利用高階佇列技術,透過解析歸檔日誌,將歸檔日誌解析成DDLDML語句,從而實現資料庫之間的同步。相當於

                         SQL server中的複製技術,可以在對主系統沒有任何壓力的情況下,實現對資料庫物件級甚至整個資料庫的同步。

                Data Guard:一個主資料庫,多個備用資料庫,備用資料庫是主資料庫在事務上一致的副本,可是在主資料當機的情況下由

                         備用伺服器來繼續提供服務。相當於SQL server中的資料庫映象功能。

        MTTR(Mean-Time-To-Recover)

            平均恢復時間,資料失敗後出現的停機時間,應儘可能減小該值

           

        資料損失最小化 

            在減少MTTR的同時,應儘可能的減少資料的損失

 

二、常見的故障類別

    1.語句級故障,通常為DML ,DQL,DCL,DDL等等

        無效資料              --&gt使用資料符合相關約束,滿足值域的資料

        缺少許可權              --&gt給予使用者所需的許可權

        空間分配問題          --&gt使用alter session enable resumable,增加使用者配額,增加表空間大小

        應用程式邏輯錯誤      --&gt修正邏輯錯誤

   

    2.使用者程式故障

        使用者非登出的異常退出

        使用者會話異常終止

        程式錯誤導致會話結束

       

        對於上述錯誤,例項後臺程式PMON會自動回滾未提交的事務,並釋放相關鎖資源

           

    3.網路故障

        偵聽器故障          --&gt配置一個備份的偵聽器,connect-time故障轉移

        網路介面卡故障      --&gt使用多個網路介面卡

        網路連線故障(路由)   --&gt配置一個備份的網路連線

       

    4.使用者錯誤

        使用者意外刪除或修改資料 --&gt回滾或使用閃回查詢來恢復

        使用者刪除表             --&gt從回收站閃回刪除

       

    5.介質故障

        磁碟故障

        磁碟控制器故障

        刪除或損壞資料檔案

       

        可能的解決方案,使用聯機事務日誌從備份恢復受影響的檔案或恢復資料檔案到新的物理位置

           

    6.例項故障

        電源負載故障

        硬體故障

        後臺程式失敗

        異常關閉資料庫

           

        解決方案,使用startup 重新啟動例項。例項實現自動恢復,根據聯機日誌檔案前滾提交的事務,回滾未提交的事務

            檢視告警日誌、跟蹤日誌等找出出現故障的原因

           

三、例項恢復相關的後臺程式

    1.檢查點程式(CKPT)

        檢查點將當前日誌檔案的資訊更新到資料檔案頭部,控制檔案等

        檢查點的目的是同步日誌檔案與資料檔案的不同步,從而可以確定例項恢復從最近的檢查點開始

        檢查點的觸發條件

            在日誌切換的時候

            資料庫用immediate transaction normal選項shutdown資料庫的時候

            根據初始話檔案LOG_CHECKPOINT_INTERVALLOG_CHECKPOINT_TIMEOUTFAST_START_IO_TARGET 的設定的數值來確定

            使用者受手動觸發

        檢查點存在的理由

            確保在記憶體中已修改的資料定期寫入到資料檔案,防止系統或資料庫故障引起資料的丟失

            減少例項恢復所需的時間,從最近的檢查點到故障時即為所需要進行的恢復

            在資料庫關閉時,確保所有提交的資料寫入到資料檔案

        檢查點資訊包括

            檢查點位置(位於聯機日誌檔案)

            系統改變號(SCN)

            聯機日誌檔案中的位置

            日誌資訊等

           

        注:檢查點程式不會寫入資料塊磁碟,也不會寫任何日誌到聯機日誌檔案

           

    2.聯機日誌檔案及日誌寫入程式(LGWR

        聯機日誌檔案記錄資料庫的變化情況

        應當被多功複用以避免丟失

       

        日誌寫入程式

            commit時觸發

            當日志緩衝/3滿時

            每秒觸發

            DBWn之前完成

           

    3.歸檔程式(ARCn)

        歸檔程式是一個可選的後臺程式

        當資料庫處於歸檔模式下,將自動歸檔聯機日誌檔案

        資料庫所有做出的變化將被完整記錄

       

        歸檔程式在每次發生日誌切換時被初始化,在聯機日誌檔案被重新使用前自動對聯機日誌檔案實現歸檔

        建議開啟歸檔模式

       

    4.關於詳細的後臺程式描述等,請參考:Oracle例項和Oracle資料庫(Oracle體系結構)   

 

四、三大檔案的規劃

    1.多路複用控制檔案

        至少使用個以上的控制檔案

        分散放開到不同的磁碟

        控制檔案副本應當位於不同的磁碟控制器

        建議使用RMAN定期自動備份

       

    2.多路複用重做日誌檔案

        每一個日誌組至少兩個成員

        每一個日誌成員應當位於不同的磁碟

        每一個日誌成員應當位於不同的磁碟控制器

        組內成員被同時寫,帶來較大的I/O,應置於高速磁碟

       

    3.歸檔日誌

        應將生產資料庫切換到歸檔模式

        按合理的歸檔日誌命名

        多於一個歸檔路徑

       

五、例項恢復

    請參照:Oracle 例項恢復

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22578826/viewspace-703483/,如需轉載,請註明出處,否則將追究法律責任。

相關文章