- IMS DB 基礎教程
- IMS DB - 首頁
- IMS DB - 概述
- IMS DB - 結構
- IMS DB - DL/I 術語
- IMS DB - DL/I 處理
- IMS DB - 控制塊
- IMS DB - 程式設計
- IMS DB - Cobol 基礎
- IMS DB - DL/I 函式
- IMS DB - PCB 掩碼
- IMS DB - SSA
- IMS DB - 資料檢索
- IMS DB - 資料操作
- IMS DB - 二級索引
- IMS DB - 邏輯資料庫
- IMS DB - 恢復
- IMS DB 有用資源
- IMS DB - 問答
- IMS DB - 快速指南
- IMS DB - 有用資源
IMS DB - 恢復
資料庫管理員需要計劃資料庫恢復以防系統故障。故障可能有多種型別,例如應用程式崩潰、硬體錯誤、電源故障等。
簡單方法
資料庫恢復的一些簡單方法如下:
定期備份重要資料集,以便保留針對資料集釋出的所有事務。
如果資料集由於系統故障而損壞,則透過恢復備份副本來解決該問題。然後將累積的事務重新發布到備份副本,以使其更新。
簡單方法的缺點
簡單方法的缺點如下:
重新發布累積的事務會消耗大量時間。
在恢復完成之前,所有其他應用程式都需要等待執行。
如果涉及邏輯和二級索引關係,則資料庫恢復比檔案恢復更長。
異常終止例程
DL/I 程式崩潰的方式與標準程式崩潰的方式不同,因為標準程式由作業系統直接執行,而 DL/I 程式則不是。透過使用異常終止例程,系統會進行干預,以便在異常結束 (ABEND) 後可以進行恢復。異常終止例程執行以下操作:
- 關閉所有資料集
- 取消佇列中所有掛起的作業
- 建立儲存轉儲以找出 ABEND 的根本原因
此例程的限制在於它不能確保正在使用的資料是否準確。
DL/I 日誌
當應用程式程式 ABEND 時,需要恢復應用程式程式所做的更改,更正錯誤,然後重新執行應用程式程式。為此,需要有 DL/I 日誌。以下是關於 DL/I 日誌的關鍵點:
DL/I 將應用程式程式在檔案中進行的所有更改記錄到稱為日誌檔案的檔案中。
當應用程式程式更改段時,DL/I 會建立其之前映像和之後映像。
如果應用程式程式崩潰,則可以使用這些段映像來恢復段。
DL/I 使用稱為“預寫日誌”的技術來記錄資料庫更改。使用預寫日誌,資料庫更改會在寫入實際資料集之前寫入日誌資料集。
由於日誌始終領先於資料庫,因此恢復實用程式可以確定任何資料庫更改的狀態。
當程式執行呼叫以更改資料庫段時,DL/I 會處理其日誌記錄部分。
恢復 - 前向和後向
資料庫恢復的兩種方法是:
前向恢復 - DL/I 使用日誌檔案儲存更改資料。使用此日誌檔案重新發布累積的事務。
後向恢復 - 後向恢復也稱為回退恢復。向後讀取程式的日誌記錄,並在資料庫中反轉其效果。回退完成後,資料庫將恢復到故障之前的狀態,假設在此期間沒有其他應用程式程式更改資料庫。
檢查點
檢查點是應用程式程式完成的資料庫更改被認為完整且準確的階段。以下是關於檢查點的注意事項:
在最近檢查點之前進行的資料庫更改不會被後向恢復反轉。
在最近檢查點之後記錄的資料庫更改不會在正向恢復期間應用於資料庫的映像副本。
使用檢查點方法,當恢復過程完成後,資料庫將恢復到最近檢查點時的狀態。
批處理程式的預設值是檢查點是程式的開頭。
可以使用檢查點呼叫 (CHKP) 建立檢查點。
檢查點呼叫會導致在 DL/I 日誌上寫入檢查點記錄。
以下是 CHKP 呼叫的語法:
CALL 'CBLTDLI' USING DLI-CHKP
PCB-NAME
CHECKPOINT-ID
有兩種檢查點方法:
基本檢查點 - 它允許程式設計師發出 DL/I 恢復實用程式在恢復處理期間使用的檢查點呼叫。
符號檢查點 - 它是檢查點的一種高階形式,與擴充套件重新啟動功能結合使用。符號檢查點和擴充套件重新啟動共同允許應用程式程式設計師對程式進行編碼,以便它們可以在檢查點之後的點恢復處理。