使用TSM對DB2數據庫應用程序實現存儲備份
本文適用于 DB2、TSM管理員以及任何想了解使用TSM來存儲保護DB2數據庫的讀者。
Tivoli Storage Manager 是一個企業級的存儲管理軟件。他提供了對文件系統、應用程序等的存儲備份和恢復功能。本文主要介紹了 TSM 是如何對 DB2 數據庫應用程序實現存儲備份的。并重點介紹了 TSM 和DB2 在 WINDOWS 平臺下的安裝、配置、備份和還原。
TSM (Tivoli storage management) 提供了強大的存儲備份功能,可以與 DB2 V9 版本進行無縫的集成,從而實現 DB2 數據庫的備份。本文主要介紹如何安裝、配置這兩大產品,并以 WINDOWS 平臺的集成為例,對其步驟作一個簡要說明。
簡介
TSM(Tivoli storage management) 是一個全面、智能的存儲管理解決方案,專門被設計用來滿足您不斷增長的企業存儲需求,使全面的存儲管理功能自動化。通過 Tivoli TSM 靈活的策略管理功能,您可以定制數據備份和存檔,規定哪些數據需要備份或存檔、存儲在哪里以及保存多長時間。強大的 Tivoli TSM 調度特性消除了人工備份和跟蹤的需求,促進了存儲操作向非高峰時間的調度,從而優化了網絡資源和性能。
TSM 提供了強大的存儲備份功能。可以與 DB2 V9 版本進行無縫的集成,從而實現通過 TSM 備份 DB2 的數據庫。本文主要介紹如何安裝、配置這兩大產品,并以 WINDOWS 平臺的集成為例,對其步驟作一個簡要說明。
安裝
1.1 操作系統:
Windows 2003 enterprise server edition
1.2 軟件:
在此系統上安裝的軟件及其版本分別為:
TSM V5.5.0 for windows
安裝 TSM 5.5 backup archive client for window
安裝 TSM 5.5 license for windows
安裝 TSM 5.5 server for windows: 這是可選的,TSM server 可以安裝在其他的機器上 http://www.mypchelp.cn/
DB2 V9.1.3 for windows
對TSM server 進行配置
安裝好軟件后,需要分別對 TSM server 進行配置。
使用 TSM 對 DB2 進行備份,必須對 DB2 備份數據的保存策略以及保存位置進行定義。因此,需要在 TSM server 上,對以下幾項進行配置和定義。
定義設備類 (device class)
需要根據備份數據庫的大小和備份、還原頻率來選擇某一種類型的設備類來存儲 DB2 的備份數據庫。TSM server 使用 define devclass 來完成此功能。
這里使用 FILE 類型的設備類來模擬磁帶存儲 DB2 備份數據。具體的命令如下:
Define devclass filedevclass devtype=file directory=d:tsmfiledatadb2backup
如果運行成功,則返回如下結果:
ANR2203I Device class FILEDEVCLASS defined.
該命令定義了一個新的設備類:filedevclass,它的目錄指向 d:tsmfiledatadb2backup。
定義存儲池 (storage pool) 和存儲卷 (volume)
存儲池是一個邏輯概念,它表示了備份 / 歸檔數據的實際存儲設備,每一個存儲池都對應了一個特定的設備類。TSM server 使用 define stgpool 來完成此功能。
下面定義一個存儲池用來表示 DB2 備份數據的實際存儲位置。具體的命令如下:
Define stgpool db2filepool filedevclass maxscratch=100
如果運行成功,則返回如下結果:
ANR2200I Storage pool DB2FILEPOOL defined(device class FILEDEVCLASS)
他定義了一個新的存儲池 db2filepool,并關聯了之前定義的設備類 filedevclass.
對于存儲池,如果 maxscratch>0, 則表示可以使用 scratch 類型的存儲卷,不需要特別定義。當然也可以使用自己定義的存儲卷,使用的命令是 define volume。具體示例如下:
Define volume db2filepool d:tsmfiledatadb2backupvolm1 format=100
如果運行成功,則返回如下結果:
ANR2491I Volume Creation Process starting for D:TSMFILEDATADB2BACKUPVOLM1
上述命令在 db2filepool 中定義了一個大小為 100M 的存儲卷 , 位置是:D:tsmfiledatadb2backupvolm1。
定義節點
為了讓 DB2 通過 TSM client API 備份數據,必須在 TSM server 上為其注冊一個節點,設置它的節點名及密碼。相關的命令為 register node。具體示例如下:
register node db2 password
在這里,db2 為新注冊的節點,默認注冊到 STANDARD 的策略域上。
定義策略
在 TSM server 中,需要為 DB2 使用的節點定義其存儲策略。
定義策略域 (policy domain):
TSM server 使用 define domain 命令來定義策略域,具體示例如下:
Define domain db2domain description=policy domain for db2 backup
如果運行成功,則返回如下結果:
ANR1500I Policy domain DB2DOMAIN defined
該命令定義了一個名為 db2domain 的策略域。
定義策略集 (policy set):
TSM server 使用 define policyset 命令來定義策略域,具體示例如下:
Define policyset db2domain db2policyset description=policy set for db2
如果運行成功,則返回如下結果:
ANR1510I Policy set DB2POLICYSET defined in policy domain DB2DOMAIN
該命令定義了一個名為 db2policyset 的策略集,它是屬于 db2domain 這個策略域中的。
定義管理類 (management class):
TSM server 使用 define mgmtclass 命令來定義策略域,具體示例如下:
Define mgmtclass db2domain db2policyset db2mgmtclass
description=management class for db2
如果運行成功,則返回如下結果:
ANR1510I Management class DB2MGMTCLASS defined in
policy domain DB2DOMAIN, set DB2POLICYSET.
上述命令定義了管理類 db2mgmtclass, 它屬于策略集 db2policyset, 策略域 db2domain。
把定義的管理類作為該策略集中的默認管理類。
TSM server 使用 assign defmgmtclass 命令把設置某個策略集中的默認管理類。具體示例如下:
Assign defmgmtclass db2domain db2policyset db2mgmtclass
如果運行成功,則返回如下結果:
ANR1538I Default management class set to DB2MGMTCLASS
for policy domain DB2DOMAIN, set DB2POLICYSET.
該命令把之前定義的管理類 db2mgmtclass 設置成策略集 db2policyset 的默認管理類。
定義拷貝組 (copy group)
分別為備份數據和歸檔數據定義 copy group
定義拷貝組的命令是 define copygroup,根據參數 type 的設置,可以分別定義 backup copy group 和 archive copy group。具體的命令如下:
定義備份拷貝組:
Define copygroup db2domain db2policyset db2mgmtclass dest=db2filepool
如果運行成功,則返回如下結果:
ANR1530I Backup copy group STANDARD defined in policy domain DB2DOMAIN,
set DB2POLICYSET, management class DB2MGMTCLASS.
定義歸檔拷貝組:
Define copygroup db2domain db2policyset db2mgmtclass
type=archive dest=db2archivepool
如果運行成功,則返回如下結果:
ANR1535I Archive copy group STANDARD defined in policyset
domain DB2DOMAIN,set DB2POILCYSET, management class DB2MGMTCLASS.
這兩個命令在 db2mgmtclass 中分別定義了 backup copy group 和 archive copy group, 并指明 backup 和 archive 的數據分別存儲在 db2filepool 和 db2archivepool 兩個存儲池中。其中 db2archivepool 存儲池的定義與 db2filepool 的定義是類似的,這里就不再介紹。
驗證并激活策略集
TSM server 使用 validate policyset 以及 active policyset 命令來驗證并激活策略集。只有激活以后的策略集,才會在后面的備份中使用到。具體的命令示例如下:
驗證策略集:
Validate policyset db2domain db2policyset
如果運行成功,則返回如下結果:
ANR1515I Policy set DB2POLICYSET validated in domain DB2DOMAIN(ready for activation)
激活策略集:
Activate policyset db2domain db2policyset
該命令會詢問客戶是否確認執行,確認后,如果運行成功,則返回如下結果:
ANR1514I Policy set DB2POLICYSET activated in policy domain DB2DOMAIN
上述倆命令驗證并激活了策略域 db2domain 中的策略集 db2policyset.
更新TSM節點信息
需要更新節點信息,把 TSM 節點指定到為其定義的策略域中。TSM server 使用 update node 來實現該功能。具體命令如下:
Update node db2 domain=db2domain archdelete=yes backdelete=yes
如果運行成功,則返回如下結果:
ANR2063I Node DB2 updated.
該命令把節點 db2 關聯到了策略域 db2domain 上,并修改了節點參數 archdelete 和 backdelete 的設置。
到這里,TSM server 端的配置就完成了。關于這些 tsm server 命令的詳細介紹,可參考《IBM Tivoli Storage Manager for AIX Administrator's Reference》。
設置環境變量
在安裝完 TSM backup-archive 客戶端后,它會自動安裝相應的 TSM client API,之后需要在系統環境變量中定義三個環境變量。分別是:DSMI_CONFIG, DSMI_DIR 和 DSMI_LOG。之后的 DB2 備份中,將會使用這三個變量。
DSMI_CONFIG
這個環境變量設置了 TSM client API option file 的位置。如果安裝了 TSM backup-archive 客戶端,則它在 WINDOWS 平臺下的默認值為‘C:Program FilesTivoliTSMbaclientdsm.opt’。如果把它安裝到了其他位置,則將該環境變量設置成相應的值。如果該目錄下沒有 dsm.opt 文件,可以自己生成一個。關于如何配置該文件可參考《IBM Tivoli Storage Manager for Windows Backup-Archive Clients Installation and User's Guide》。
DSMI_DIR
這個環境變量設置了 TSM client API 的安裝路徑。在 WINDOWS 平臺下,默認的安裝路徑為:‘C:Program FilesCommon FilesTivoliTSMapi’。
需要注意的是,TSM V5.5 之前的默認位置是‘C:Program FilesTivoliTSMapi’。新版本發生了一些變化。
DSMI_LOG
該環境變量設置了 TSM client API 的錯誤日志 dsierror.log 所在的目錄位置。如果安裝了 TSM backup-archive 客戶端,則它在 WINDOWS 平臺下的默認值為:‘C:Program FilesTivoliTSMbaclient’。如果沒有,生成一個即可。
對 TSM client 進行配置
配置完 TSM server 后,需要對 TSM client API 進行配置。Windows 主要配置的是 dsm.opt 文件。也就是 DSMI_CONFIG 中所指向的文件。在這個文件中,需要指明 TSM client 與 TSM server 的通訊方式,TSM client 所使用的 TSM 節點名,以及密碼的訪問模式。下面,如圖 1 所示給出一個 dsm.opt 的文件示例??梢杂梦谋揪庉嬈鲗ζ溥M行編輯:
圖 1. dsm.opt 的文件示例

生成 TSM 節點的加密密碼
在前面的配置都完成后,需要調用 dsmapipw.exe 可執行文件,默認安裝 DB2 的安裝目錄“c:program filesibmsqllibadsm下,對之前設置的 TSM 節點密碼進行加密。這個加密的密碼將會被保存在 windows 的注冊表中。
運行 dsmapipw.exe 的時候,將會要求輸入當前的節點密碼,新密碼,并且對新密碼進行確認,如圖 2 所示。
圖 2. 設置的 TSM 節點密碼
除了可以通過密碼來進行安全保護外,TSM V5.5 版本還提供了一種叫做 Secure Socket Layer(SSL) 的數據保護機制。通過配置使用 SSL, 可以在 client 和 server 之間提供一條安全的通信通道,提高用戶備份數據的安全性。具體的 SSL 配置說明,可參考《IBM Tivoli Storage Manager for Windows Administrator's Guide》。
對DB2進行設置
對于每一個需要備份的 DB2 數據庫,它都有四個與 TSM 有關的參數需要設置,分別是:TSM_MGMTCLASS, TSM_NODENAME, TSM_PASSWORD, TSM_OWNER。
TSM_MGMTCLASS
這個參數值表示的是該數據庫將會綁定到哪一個管理類中。如果該參數設置了,那它的優先級將高于默認的管理類和 include-exclude list 中的設置。相應的 DB2 命令為 update db cfg。具體的命令示例如下:
Update db cfg for sample using tsm_mgmtclass db2mgmtclass
如果運行成功,則返回如下結果:
DB20000I The UPDATE DATABASE CONFIGURATION command completed succesfully
該命令把 sample 數據庫的配置參數 TSM_MGMTCLASS 的值設置成了之前定義的管理類 db2mgmtclass。
當然,該功能也可以通過 DB2 GUI 來實現。
TSM_NODENAME
該參數值表示了 DB2 數據庫備份時使用的節點名。
如果在 dsm.opt 中設定 PasswordAccess=generate,則該參數需要設為空值
如果在 dsm.opt 中設定 PasswordAccess=prompt,則該參數需要設置為前面定義的節點名
TSM_PASSWORD
該參數值表示了 DB2 數據庫備份時使用的節點的密碼。
如果在 dsm.opt 中設定 PasswordAccess=generate,則該參數需要設為空值
如果在 dsm.opt 中設定 PasswordAccess=prompt,則該參數需要設置為前面定義的節點密碼
TSM_OWNER
該參數表示了備份對象的 owner. 這個參數是針對 UNIX 操作系統的,對于 WINDOW 平臺,不需要設置。在 UNIX 平臺下,
如果在 dsm.opt 中設定 PasswordAccess=generate,則該參數需要設為空值
如果在 dsm.opt 中設定 PasswordAccess=prompt,則該參數需要設置
進行數據庫備份操作
到這里為止,所有的配置都已經完成?,F在就可以使用 TSM 來備份 DB2 了。
DB2 的備份操作可以通過 DB2 Command line interface(CLI) 以及 Graphical user interface(GUI) 來實現。下面,就以 Command line interface 為例進行說明。在 DB2 中的相關命令為 backup db。具體的命令示例如下:
Backup db sample use tsm.
如果運行成功,則返回如下結果:
Backup successful. The timestamp for the backup image is: 20071127163936
該命令用 TSM 對數據庫 sample 進行了一次全備份。這次備份的時間戳為 20071127163936。
在 TSM server 上,可以使用命令 query volume 以及 query content 對備份數據所在的存儲卷進行查詢,從而可以得到存儲的內容。具體示例如下:
Query volume volm1
該命令可以獲得存儲池 db2filepool 中存儲卷 volm1 的信息。
Query content volm1
該命令可以獲得存儲卷 volm1 中的所有備份文件的信息。
這些命令的運行結果如圖 3 所示:
圖3. 數據庫備份運行結果
從中可以看到,sample 數據庫作為一個文件保存在 TSM 的存儲卷中。
進行數據庫還原操作
和數據庫的備份一樣,數據庫的還原操作也可以通過 DB2 Command line interface(CLI) 以及 Graphical user interface(GUI) 來實現。下面,就以 Command line interface 為例進行說明。它使用的命令是 restore db。具體的命令示例如下:
Restore db sample use tsm taken at 20071127163936
在這里,sample 數據庫使用時間戳為 20071127163936 的數據庫備份來進行數據庫還原。該命令的運行結果如下圖 4 所示:
圖4. 數據庫還原命令的運行結果
進行數據庫表空間的備份操作
TSM 除了支持對 DB2 數據庫級別的備份之外,還支持表空間級別的備份操作。它同樣可以通過 DB2 Command line interface(CLI) 以及 Graphical user interface(GUI) 來實現。下面,就以 Command line interface 為例。它使用到的命令是 backup database DBNAME tablespace(SPACENAME) online use tsm。具體的命令示例如下:
Backup database sample tablespace(userspace2) online use tsm
如果運行成功,返回如下結果:
Backup successful. The timestamp for this backup image is: 20080514003631
在這里,TSM 對 sample 數據庫中的表空間 userspace2 做了一次全備份,時間戳為 20080514003631。
進行數據庫表空間的還原操作
數據庫表空間的還原操作也可以通過 DB2 Command line interface(CLI) 以及 Graphical user interface(GUI) 來實現。下面,就以 Command line interface 為例。它使用到的命令是 restore database DBNAME tablespace(SPACENAME) online use tsm。具體的命令示例如下:
restore database sample tablespace(userspace2) online use tsm taken at 20080514003631.
如果運行成功,返回如下結果:
DB20000I The RESTORE DATABASE command completed successfully.
在這里,sample 數據庫的表空間 userspace2 使用時間戳為 20080514003631 的備份來進行表空間還原。
TSM 軟件把備份的數據保存在各種類型的存儲卷中。對于 V5.5 之前的版本,TSM 只允許對 FILE 類型的存儲卷進行互斥的訪問,而 V5.5 增加了對于 FILE 類型存儲卷的并發讀寫操作。也就是說,在同一時刻,可以允許以下行為的并發:
1.多個 client 對同一個 FILE 類型的存儲卷進行并發的讀操作。
2.一個 client 對 FILE 類型的存儲卷進行寫操作,而其他的用戶可以同時對該卷進行讀操作。
因此,在使用 TSM V5.5 來備份 DB2 數據庫 / 表空間的時候,如果采用的是 FILE 類型的存儲卷保存備份數據(如本文中的示例),則可以進行以下的并發行為:
1.多個 client 同時對保存在同一個存儲卷中的備份數據庫 / 表空間進行還原操作。
2.一個 client 在備份 DB2 數據的同時,可以允許其他 client 對該存儲卷中的其他備份數據進行還原操作。
TSM V5.5 的這項新功能通過對 FILE 類型存儲卷的并發支持,可以比較好的提高客戶在還原數據庫時的性能。
相關文章: