數據庫故障的幾種類型:
對於用戶來說,數據庫中保存的數據通常至關重要,所以要采取各種手段來防止各種可能的數據損失和數據故障,
而DBA主要任務就是維持數據庫的高可靠性運行,
盡量提高數據庫的連續可用時間,
降低數據庫的平均恢復時間,
最小化故障時的數據損失及業務影響。
在數據庫環境中,常見故障類型:
語句失敗,用戶進程失敗,用戶錯誤,實例失敗,介質故障,網絡故障,
其中最為嚴重的故障主要是用戶錯誤和介質故障,
為了防止種種故障可能造成的數據損失,oracle提供了不同手段來進行數據備份,通過制定完善的備份策略,可以最小化數據損失。部分工作內容
數據庫管理員 (DBA) 的目標是確保數據庫處於打開狀態,從而當用戶需要時可提供使用。
要實現這個目標,DBA 需要(通常與系統管理員合作):
1.預計導致出現故障的常見原因並努力避免出現這些原因5.最大程度地減少丟失數據。
DBA 可按照接受的最佳方案配置數據庫,以便永遠不丟失提交的事務處理。用於幫助保證實現此目標的具體項包括:
歸檔日志文件備用數據庫和 Oracle Data Guard
故障類別 -----可分為以下幾類:
語句錯誤:單個數據庫操作(選擇、插入、更新或刪除)失敗。
用戶進程錯誤:單個數據庫會話失敗。
網絡故障:與數據庫的連接斷開。
用戶錯誤:用戶成功完成了操作,但是操作不正確(刪除了表,或輸入了錯誤 數據)。
實例錯誤:數據庫實例意外關閉。
介質故障:丟失了一個或多個數據庫文件(也就是說,文件已刪除或磁盤出現了 故障)。
1. 語句錯誤: ----- 可能需要DBA干預,才能更改用戶權限
嘗試在表中輸入無效的數據 --------- 通過用戶驗證更正數據
嘗試在權限不足時執行操作 --------- 提供適當的對象或系統權限
嘗試分配未成功分配的空間 --------- 啟用可恢復的空間分配 、 增加所有者限額quota 、 添加表空間的空間
應用程序中的邏輯錯誤 ---------- 與開發人員合作更正程序錯誤
2. 用戶進程錯誤: ---通常不需要DBA操作,觀察變化趨勢
與實例異常斷開的用戶進程中可能包含正在進行的、需要回退的未提交任務。
為了確保服務器進程會話仍保持連接,進程監視程序(PMON)後台進程會查詢服務器進程。
如果PMON發現某個服務器進程的用戶不再處於連接狀態,PMON會從任何實時事務處理中進行恢復;
還會回退未提交的更改並解除失敗會話持有的任何鎖定。
DBA工作:
從用戶進程失敗中進行恢復時不需要DBA的干預,但是管理員必須觀察變化趨勢。
有一個或兩個用戶異常斷開時不必擔心。用戶進程失敗比例不高時也屬正常。
一致性故障和系統性故障表示還存在其他的問題。
異常斷開連接比例較高時可能表示用戶需要了解如何注銷程序,此外,還可能存在網絡和應用程序問題。
用戶執行了異常斷開連接操作
用戶會話已異常終止
用戶遇到了終止會話的程序錯誤
3. 網絡故障
最佳解決方法: 為網絡連接提供冗余路徑。通過備份監聽程序、網絡連接和網絡接口卡可降低出現網絡故障時影響系統可用性的可能性。
監聽程序失敗 ------ 配置備份監聽程序和連接時故障轉移
網絡接口卡(NIC)故障 ------ 配置多個網卡
網絡連接失敗 ----- 配置備份網絡連接
4. 用戶錯誤
用戶可能會無意刪除或修改數據。如果發生這種情況,DBA 可能需要幫助用戶從錯誤中恢復。
如果用戶尚未提交或退出程序,則只可以回退操作。
如果用戶提交了更改,則可以使用閃回查詢來確定以前的值是什麼(然後,為還原原始信息而更新數據):
SQL> SELECT salary FROM employees WHERE employee_id=100;
SALARY
------
25
SQL> SELECT salary FROM employees
2 AS OF TIMESTAMP(SYSTIMESTAMP-INTERVAL’10’ minute)
3 WHERE employee_id=100;
SALARY
------
24000
在因超出了還原保留期而無法使用閃回查詢的情況下,DBA 仍可通過使用 Oracle LogMiner 來恢復原始信息。
用戶無意中刪除或修改了數據 ---------- 回退或使用閃回查詢進行恢復
用戶刪除了表 --------- 從回收站恢復表
5. 實例錯誤 startup 啟動通過alert日志調查出錯原因。
如果在同步所有數據庫文件之前關閉了數據庫實例,就會發生實例錯誤。出現軟硬件故障,或者使用SHUTDOWN ABORT 和 STARTUP FORCE緊急關閉命令時,也會發生實例錯誤。
管理員在實例錯誤恢復中參與的工作,通常僅限於重新啟動實例和努力避免將來發生這種情況。
斷電 使用“startup”命令重新啟動實例。從實例錯誤中
硬件故障恢復時是自動執行的,其中包括前滾重做日志中的
有一個後台進程出現錯誤的更改和回退任何未提交的事務處理。
緊急關閉命令
6. 介質故障
oracle corporation 將介質故障定義為導致一個或多個數據庫文件(數據文件、控制文件或重做日志文件)丟失或損壞的任何故障。
要從介質故障中恢復,需要還原並恢復缺失的文件。
· 磁盤驅動器故障 1. 從備份中還原受影響的文件。
· 磁盤控制器故障 2. 如果需要,通知數據庫關於新文件的位置。
· 刪除或損壞了數據庫文件3. 如果需要,通知應用重做信息來恢復文件。