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

生成 TSM 節(jié)點(diǎn)的加密密碼
在前面的配置都完成后,需要調(diào)用 dsmapipw.exe 可執(zhí)行文件,默認(rèn)安裝 DB2 的安裝目錄“c:program filesibmsqllibadsm下,對之前設(shè)置的 TSM 節(jié)點(diǎn)密碼進(jìn)行加密。這個加密的密碼將會被保存在 windows 的注冊表中。
運(yùn)行 dsmapipw.exe 的時候,將會要求輸入當(dāng)前的節(jié)點(diǎn)密碼,新密碼,并且對新密碼進(jìn)行確認(rèn),如圖 2 所示。
圖 2. 設(shè)置的 TSM 節(jié)點(diǎn)密碼
除了可以通過密碼來進(jìn)行安全保護(hù)外,TSM V5.5 版本還提供了一種叫做 Secure Socket Layer(SSL) 的數(shù)據(jù)保護(hù)機(jī)制。通過配置使用 SSL, 可以在 client 和 server 之間提供一條安全的通信通道,提高用戶備份數(shù)據(jù)的安全性。具體的 SSL 配置說明,可參考《IBM Tivoli Storage Manager for Windows Administrator's Guide》。
對DB2進(jìn)行設(shè)置
對于每一個需要備份的 DB2 數(shù)據(jù)庫,它都有四個與 TSM 有關(guān)的參數(shù)需要設(shè)置,分別是:TSM_MGMTCLASS, TSM_NODENAME, TSM_PASSWORD, TSM_OWNER。
TSM_MGMTCLASS
這個參數(shù)值表示的是該數(shù)據(jù)庫將會綁定到哪一個管理類中。如果該參數(shù)設(shè)置了,那它的優(yōu)先級將高于默認(rèn)的管理類和 include-exclude list 中的設(shè)置。相應(yīng)的 DB2 命令為 update db cfg。具體的命令示例如下:
Update db cfg for sample using tsm_mgmtclass db2mgmtclass
如果運(yùn)行成功,則返回如下結(jié)果:
DB20000I The UPDATE DATABASE CONFIGURATION command completed succesfully
該命令把 sample 數(shù)據(jù)庫的配置參數(shù) TSM_MGMTCLASS 的值設(shè)置成了之前定義的管理類 db2mgmtclass。
當(dāng)然,該功能也可以通過 DB2 GUI 來實(shí)現(xiàn)。
TSM_NODENAME
該參數(shù)值表示了 DB2 數(shù)據(jù)庫備份時使用的節(jié)點(diǎn)名。
如果在 dsm.opt 中設(shè)定 PasswordAccess=generate,則該參數(shù)需要設(shè)為空值
如果在 dsm.opt 中設(shè)定 PasswordAccess=prompt,則該參數(shù)需要設(shè)置為前面定義的節(jié)點(diǎn)名
TSM_PASSWORD
該參數(shù)值表示了 DB2 數(shù)據(jù)庫備份時使用的節(jié)點(diǎn)的密碼。
如果在 dsm.opt 中設(shè)定 PasswordAccess=generate,則該參數(shù)需要設(shè)為空值
如果在 dsm.opt 中設(shè)定 PasswordAccess=prompt,則該參數(shù)需要設(shè)置為前面定義的節(jié)點(diǎn)密碼
TSM_OWNER
該參數(shù)表示了備份對象的 owner. 這個參數(shù)是針對 UNIX 操作系統(tǒng)的,對于 WINDOW 平臺,不需要設(shè)置。在 UNIX 平臺下,
如果在 dsm.opt 中設(shè)定 PasswordAccess=generate,則該參數(shù)需要設(shè)為空值
如果在 dsm.opt 中設(shè)定 PasswordAccess=prompt,則該參數(shù)需要設(shè)置
進(jìn)行數(shù)據(jù)庫備份操作
到這里為止,所有的配置都已經(jīng)完成。現(xiàn)在就可以使用 TSM 來備份 DB2 了。
DB2 的備份操作可以通過 DB2 Command line interface(CLI) 以及 Graphical user interface(GUI) 來實(shí)現(xiàn)。下面,就以 Command line interface 為例進(jìn)行說明。在 DB2 中的相關(guān)命令為 backup db。具體的命令示例如下:
Backup db sample use tsm.
如果運(yùn)行成功,則返回如下結(jié)果:
Backup successful. The timestamp for the backup image is: 20071127163936
該命令用 TSM 對數(shù)據(jù)庫 sample 進(jìn)行了一次全備份。這次備份的時間戳為 20071127163936。
在 TSM server 上,可以使用命令 query volume 以及 query content 對備份數(shù)據(jù)所在的存儲卷進(jìn)行查詢,從而可以得到存儲的內(nèi)容。具體示例如下:
Query volume volm1
該命令可以獲得存儲池 db2filepool 中存儲卷 volm1 的信息。
Query content volm1
該命令可以獲得存儲卷 volm1 中的所有備份文件的信息。
這些命令的運(yùn)行結(jié)果如圖 3 所示:
圖3. 數(shù)據(jù)庫備份運(yùn)行結(jié)果
從中可以看到,sample 數(shù)據(jù)庫作為一個文件保存在 TSM 的存儲卷中。
進(jìn)行數(shù)據(jù)庫還原操作
和數(shù)據(jù)庫的備份一樣,數(shù)據(jù)庫的還原操作也可以通過 DB2 Command line interface(CLI) 以及 Graphical user interface(GUI) 來實(shí)現(xiàn)。下面,就以 Command line interface 為例進(jìn)行說明。它使用的命令是 restore db。具體的命令示例如下:
Restore db sample use tsm taken at 20071127163936
在這里,sample 數(shù)據(jù)庫使用時間戳為 20071127163936 的數(shù)據(jù)庫備份來進(jìn)行數(shù)據(jù)庫還原。該命令的運(yùn)行結(jié)果如下圖 4 所示:
圖4. 數(shù)據(jù)庫還原命令的運(yùn)行結(jié)果
進(jìn)行數(shù)據(jù)庫表空間的備份操作
TSM 除了支持對 DB2 數(shù)據(jù)庫級別的備份之外,還支持表空間級別的備份操作。它同樣可以通過 DB2 Command line interface(CLI) 以及 Graphical user interface(GUI) 來實(shí)現(xiàn)。下面,就以 Command line interface 為例。它使用到的命令是 backup database DBNAME tablespace(SPACENAME) online use tsm。具體的命令示例如下:
Backup database sample tablespace(userspace2) online use tsm
如果運(yùn)行成功,返回如下結(jié)果:
Backup successful. The timestamp for this backup image is: 20080514003631
在這里,TSM 對 sample 數(shù)據(jù)庫中的表空間 userspace2 做了一次全備份,時間戳為 20080514003631。
進(jìn)行數(shù)據(jù)庫表空間的還原操作
數(shù)據(jù)庫表空間的還原操作也可以通過 DB2 Command line interface(CLI) 以及 Graphical user interface(GUI) 來實(shí)現(xiàn)。下面,就以 Command line interface 為例。它使用到的命令是 restore database DBNAME tablespace(SPACENAME) online use tsm。具體的命令示例如下:
restore database sample tablespace(userspace2) online use tsm taken at 20080514003631.
如果運(yùn)行成功,返回如下結(jié)果:
DB20000I The RESTORE DATABASE command completed successfully.
在這里,sample 數(shù)據(jù)庫的表空間 userspace2 使用時間戳為 20080514003631 的備份來進(jìn)行表空間還原。
TSM 軟件把備份的數(shù)據(jù)保存在各種類型的存儲卷中。對于 V5.5 之前的版本,TSM 只允許對 FILE 類型的存儲卷進(jìn)行互斥的訪問,而 V5.5 增加了對于 FILE 類型存儲卷的并發(fā)讀寫操作。也就是說,在同一時刻,可以允許以下行為的并發(fā):
1.多個 client 對同一個 FILE 類型的存儲卷進(jìn)行并發(fā)的讀操作。
2.一個 client 對 FILE 類型的存儲卷進(jìn)行寫操作,而其他的用戶可以同時對該卷進(jìn)行讀操作。
因此,在使用 TSM V5.5 來備份 DB2 數(shù)據(jù)庫 / 表空間的時候,如果采用的是 FILE 類型的存儲卷保存?zhèn)浞輸?shù)據(jù)(如本文中的示例),則可以進(jìn)行以下的并發(fā)行為:
1.多個 client 同時對保存在同一個存儲卷中的備份數(shù)據(jù)庫 / 表空間進(jìn)行還原操作。
2.一個 client 在備份 DB2 數(shù)據(jù)的同時,可以允許其他 client 對該存儲卷中的其他備份數(shù)據(jù)進(jìn)行還原操作。
TSM V5.5 的這項(xiàng)新功能通過對 FILE 類型存儲卷的并發(fā)支持,可以比較好的提高客戶在還原數(shù)據(jù)庫時的性能。
相關(guān)文章:
1. 整理Oracle數(shù)據(jù)庫碎片2. 導(dǎo)出錯誤編碼的mysql數(shù)據(jù)庫3. 巧用SQL語言在ACCESS數(shù)據(jù)庫中批量替換內(nèi)容4. MYSQL數(shù)據(jù)庫存文本轉(zhuǎn)存數(shù)據(jù)庫問題5. 裝Oracle用PLSQL連接登錄時不顯示數(shù)據(jù)庫的解決6. 使用DB2look 重新創(chuàng)建優(yōu)化器訪問計(jì)劃(2)7. ACCESS數(shù)據(jù)庫修改自動編號的ID值為零的方法分享8. 提高數(shù)據(jù)庫處理速度的利器——MySQL存儲過程詳解10. 八步解決ACCESS自動編號問題(將SQL SERVER 2000數(shù)據(jù)庫,轉(zhuǎn)換為ACCESS數(shù)據(jù)庫)
