Oracle
Oracle 數據庫中有哪些可恢復的故障點?
我正在針對 Oracle 數據庫測試產品的故障情況。該產品通過會話與 Oracle 對話並維護一些表。我想確保每當 Oracle 從它可以恢復的任何錯誤中恢復時,產品也可以恢復。
為此,我將手動模擬故障並檢查會發生什麼。我應該嘗試哪些失敗場景?
不太確定你在這裡要求什麼。如果你的數據庫備份正確,那麼就沒有不可恢復的故障點。然而,大多數“失敗”將導致您的會話被終止或至少被拋出一個錯誤。在大多數情況下,您不想處理特定錯誤,而是簡單地回滾事務(如果可能)並記錄問題以供檢查。
如果您正在測試第 3 方應用程序,並假設您在獨立數據庫上,我只需對其進行會話終止測試,以查看它是否自動重新連接、正確清理正在執行的工作等。您還可以鎖定我猜它的會話,看看它如何處理超時。
很抱歉回答模糊,但問題很模糊。
你的問題相當模糊,但我會測試:
- 應用程序和 Oracle 之間的網路斷開連接。(通常當 Oracle 和應用程序位於不同的伺服器上時。
- 數據庫關閉並重新啟動。(應用程序會自動重新連接嗎?它可以恢復進行中的事務嗎?)
- 數據庫死鎖。(殺死應用程序的事務?它恢復了嗎?)
- 如果應用程序進行兩階段送出,如果數據庫在送出階段不可用,它會恢復嗎?
我假設您將在啟用事務日誌記錄的情況下執行數據庫。我會考慮將數據庫回滾到以前不可恢復的時間點。