本文將為您詳細介紹DB2和Oracle中用於備份和恢復的數據結構,這兩種數據庫都有一組組成備份和恢復機制的組件,下面將對這些備份和恢復的主要組件進行圖解,供您參考。
用於備份和恢復的數據結構
Oracle 和 DB2 UDB 都有一組組成備份和恢復機制的組件。您在 圖 1和 圖 2 中看到的體系結構圖對提供 Oracle 和 DB2 的備份和恢復的主要組件進行了概述。
圖 1. Oracle 體系結構
Oracle 的內存結構
緩沖區緩存 —— 為存儲從物理數據文件讀取的數據塊而分配的內存。
共享池 —— 為存儲解析的 SQL 語句、PL/SQL 過程的數據字典信息而分配的內存。
日志緩沖區 —— 為存儲更改數據的前後映像而分配的內存。裡面記錄的數據項是連續的。
大型池 —— 分配給 RMAN 用於備份和恢復的內存。
Oracle 後台進程
數據庫讀寫器(DBWr)—— 異步地將緩沖區的髒數據寫到物理數據文件中。
日志讀寫器(LGWr)—— 從日志緩沖區寫入項目,以便重做日志文件。
檢查點(CKPt)—— 將數據文件頭和控制文件頭與當前重做日志和檢查點數同步。
歸檔器(ARCH)—— 自動化重做日志的復制。如果沒有打開歸檔器,那麼需要對重做日志進行手動歸檔。
Oracle 數據庫結構
數據文件 —— 存儲數據的物理文件。
控制文件 —— 包含數據庫物理結構和狀態的文件,比如包含絕對路徑的數據文件和日志文件的名稱、文件的大小、塊大小、數據文件的聯機或脫機狀態等。它還包含日志文件的名稱和路徑、文件大小和塊大小。
重做日志 —— 包含更改數據的前後映像的文件。對於恢復,重做日志是必需的。
參數文件 —— 存儲實例啟動的參數的文件。您可以有多種啟動實例的方式。Oracle 首先搜索 spfile_SID.ora 是否存在。如果該文件不存在,Oracle 接著會搜索 Spfile.ora 參數文件。如果 spfile_SID.ora 和 spfile.ora 都不存在,Oracle 將使用 init_SID.ora 參數文件。
歸檔日志 —— 聯機重做日志的物理副本。在聯機恢復中,歸檔日志是必需的。
接下來我們將看到 DB2 UDB 體系結構和結構。
圖 2. DB2 UDB 體系結構
DB2 UDB 內存結構
包緩存 —— 為存儲靜態和動態 SQL 語句而分配的內存。
緩沖池 —— 在將數據刷新到磁盤之前,為存儲數據而分配的內存。
日志緩沖區 —— 在將所有對數據庫的更改刷新到磁盤上的日志之前,用來存儲這些更改的內存。
圖 3. DB2 UDB 數據庫結構
驅動器/目錄 —— 在 CREATE DATABASE 命令中指定的驅動器或目錄。
DB2 實例名稱 —— DB2 實例所有者的名稱。
NODE0000 —— 數據庫的分區數。0 表示非分區的數據庫。
SQL00001 —— 從 1 開始的數據庫 ID。
SQLOGDIR —— 數據庫的默認日志目錄。
SQLT0000.0 —— 目錄表空間 SYSCATSPACE。
SQLT0001.0 —— 臨時表空間 TEMPSPACE1。
SQLT0002.0 —— 用戶表空間 USERSPACE1。
備份和恢復選擇
對於 Oracle 和 DB2 UDB 數據庫,有兩種備份和恢復模式:脫機和聯機。可以用任何一種模式來進行完全和不完全恢復。
脫機備份要求所有應用程序斷開與數據庫的連接,聯機備份允許在備份的過程中繼續執行事務。在選定備份模式的恢復方面,存在隱含關系,因為備份模式決定了恢復模式。
顧名思義,完全恢復能夠完全地恢復所有提交的事務,而不完全恢復在恢復事務時會丟失一些數據。Oracle 和 DB2 UDB 都能讓您恢復到當前時間,而且沒有數據丟失,或者恢復到當前時間以前的時間,但要丟失一些數據。
通常,恢復的目標是用選定的恢復模式在業務需求與操作需求之間達成某種妥協。例如,如果數據庫不是任務關鍵型和 24X7 型的,那麼停機上一段時間和丟失一些數據可能是可以接受的,對於媒介錯誤,重新鍵入數據也可能是一種可以接受的方法。采用什麼樣的恢復取決於可用的備份和 可用的日志,可能有時候除了執行不完全恢復以外別無選擇。
有兩種類型的 DB2 日志記錄,每種日志記錄方法支持特定的恢復選項。這兩種類型的日志記錄是 循環和 歸檔日志記錄。當選擇使用循環日志記錄(默認情況下選擇這種日志記錄)時,惟一的選擇是執行脫機備份和版本恢復。如果您選擇使用歸檔日志記錄,並執行聯機 備份和前滾恢復,那麼您可以恢復到數據丟失最少的那個時間點,或者恢復到結束日志的時候。