圖 3. DB2 UDB 數據庫結構
驅動器/目錄 —— 在 CREATE DATABASE 命令中指定的驅動器或目錄。
DB2 實例名稱 —— DB2 實例所有者的名稱。
NODE0000 —— 數據庫的分區數。0 表示非分區的數據庫。
SQL00001 —— 從 1 開始的數據庫 ID。
SQLOGDIR —— 數據庫的默認日誌目錄。
SQLT0000.0 —— 目錄表空間 SYSCATSPACE。
SQLT0001.0 —— 臨時表空間 TEMPSPACE1。
SQLT0002.0 —— 用戶表空間 USERSPACE1
12.1 冷備(脫機)
清單 1. 命令行 backup 語法
|
BACKUP DATABASE database-alias [USER username [USING password]] [TABLESPACE (tblspace-name [ {,tblspace-name} … ])] [ONLINE] [INCREMENTAL [DELTA]] [USE {TSM | XBSA} [OPEN num-sess SESSIONS]] | TO dir/dev [ {,dir/dev} … ] | LOAD lib-name [OPEN num-sess SESSIONS]] [WITH num-buff BUFFERS] [BUFFER buffer-size] [PARALLELISM n] [WITHOUT PROMPTING]
|
單 1. 命令行 backup 語法
|
|
要在脫機模式下執行備份,只需發出以下 DB2 命令即可:
|
|
或者您可以有更多的選項,比如:
|
|
當發出 backup 命令時,將創建備份映像。注意,對於 UNIX 和 Windows,備份文件名稱有點不同。對於 Windows,路徑和文件名將具有以下格式:
UNIX 備份文件看起來將像這樣:
恢復命令:
RESTORE DATABASE source-database-alias
{ restore-options | CONTINUE | ABORT }
restore-options:
[USER username [USING password]] [{TABLESPACE [ONLINE] |
TABLESPACE (tblspace-name [ {,tblspace-name} … ]) [ONLINE] |
HISTORY FILE [ONLINE]}] [INCREMENTAL [AUTOMATIC | ABORT]]
[{USE {TSM | XBSA} [OPEN num-sess SESSIONS] |
FROM dir/dev [ {,dir/dev} … ] | LOAD shared-lib
[OPEN num-sess SESSIONS]}] [TAKEN AT date-time] [TO target-directory]
[INTO target-database-alias] [NEWLOGPATH directory]
[WITH num-buff BUFFERS] [BUFFER buffer-size]
[DLREPORT file-name] [REPLACE EXISTING] [REDIRECT] [PARALLELISM n]
[WITHOUT ROLLING FORWARD] [WITHOUT DATALINK] [WITHOUT PROMPTING]
如:
db2 restore database sample from e:\tmp taken at 2004061710 replace existing
db2 set tablespace containers for 0 using (path ‘E:\tmp\0’)
(note if it’s a DMS tablespace, you will need a set tablespace containers for 0
using (file ‘e:\tmp\0.dms’ <SIZE>)
db2 restore database sample continue
12.2 熱備 (聯機)
DB2 UDB 執行時間點恢復的機制類似於 Oracle。要了解 DB2 UDB 聯機備份和恢復,就需要了解歸檔日誌記錄。有三種我們需要熟悉的日誌定義:
活動日誌 —— 該日誌包含沒有提交或回滾的事務,或者已提交但尚未刷新到磁盤的事務。
聯機歸檔日誌 —— 該日誌包含已提交並且被記錄到硬盤的事務的信息,和活動日誌位於同一目錄。
脫機歸檔日誌 —— 如果將聯機歸檔日誌從活動日誌所在目錄移動到其他目錄或磁帶中,就成為了脫機歸檔日誌。
有許多與日誌記錄有關的配置參數:
LOGFILSIZ —— 每個日誌文件的大小,默認值是 250,單位為 4KB。
LOGPRIMARY —— 主日誌文件的個數(默認值是 3)。
LOGSECOND —— 主日誌文件佔用滿時,可以分配的二級日誌文件的個數。當把這個參數設為 -1 時(版本 8),可以使用無限數量的活動日誌。
NEWLOGPATH —— 用來更改日誌文件的存儲位置。要想使該參數生效,需要重新激活數據庫。
MIRRORLOGPATH —— 日誌文件的鏡像路徑,以避免單點故障。
OVERFLOWLOGPATH —— 指定前滾期間可以在哪些目錄搜索需要的日誌,以允許前滾操作能訪問多個目錄中的日誌。
USEREXIT——用於啟動用戶出口功能,進行日誌的自動歸檔。
BLK_LOG_DSK_FUL——當 DB2 無法在活動日誌路徑中創建新日誌文件時,防止生成磁盤已滿錯誤。
為了使用聯機備份,必須打開歸檔日誌記錄。通過將 LOGRETAIN 設為 ON,可以打開歸檔日誌記錄。
歸檔日誌記錄是一種不同於循環日誌記錄的日誌記錄機制,因為循環日誌記錄重寫了提交的日誌,而歸檔日誌記錄歸檔了提交的日誌。
在歸檔日誌記錄中,不能重用已經變成歸檔日誌的日誌。要移動那些聯機歸檔日誌,您需要手動移動它們或者使用用戶出口程序(user exit)來移動它們。
圖 27舉例說明了歸檔日誌記錄機制:
圖中的 LOG (n+1)是活動日誌,log (n) 和 log (n-i)(其中 i<=n)都是聯機歸檔日誌。這些歸檔日誌既可以位於存儲活動日誌的路徑中,也可以使用用戶出口程序來指定將保存它們的目錄或媒介。
默認情況下,活動和聯機歸檔日誌保存在 SQLOGDIR 目錄中。NEWLOGPATH 數據庫配置參數確定了將在哪裡存儲未來的活動歸檔日誌。要想使 NEWLOGPATH 參數生效,需要停用數據庫(目的是關閉所有活動日誌文件)。然後,重新激活數據庫將導致在新路徑中創建新日誌文件,原來的歸檔日誌將留在原來的路徑中。
當進行聯機備份時,將記錄所有的數據庫事務。在完成聯機備份之後,DB2 將強行關閉當前活動日誌,並對其進行歸檔,如
圖 28 所示:
以下文章點擊率最高
Loading…


