使用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.knowsky.com/

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:\tsmfiledata\db2backup

如果運行成功,則返回如下結果:

ANR2203I Device class FILEDEVCLASS defined.

該命令定義了一個新的設備類:filedevclass,它的目錄指向 d:\tsmfiledata\db2backup。

定義存儲池 (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:\tsmfiledata\db2backup\volm1 format=100

如果運行成功,則返回如下結果:

ANR2491I Volume Creation Process starting for D:\TSMFILEDATA\DB2BACKUP\VOLM1

上述命令在 db2filepool 中定義了一個大小爲 100M 的存儲卷 , 位置是:D:\tsmfiledata\db2backup\volm1。

定義節點

爲了讓 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 Files\Tivoli\TSM\baclient\dsm.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 Files\Common Files\Tivoli\TSM\api’。

需要注意的是,TSM V5.5 之前的默認位置是‘C:\Program Files\Tivoli\TSM\api’。新版本發生了一些變化。

DSMI_LOG

該環境變量設置了 TSM client API 的錯誤日志 dsierror.log 所在的目錄位置。如果安裝了 TSM backup-archive 客戶端,則它在 WINDOWS 平台下的默認值爲:‘C:\Program Files\Tivoli\TSM\baclient’。如果沒有,生成一個即可。

對 TSM client 進行配置

配置完 TSM server 後,需要對 TSM client API 進行配置。Windows 主要配置的是 dsm.opt 文件。也就是 DSMI_CONFIG 中所指向的文件。在這個文件中,需要指明 TSM client 與 TSM server 的通訊方式,TSM client 所使用的 TSM 節點名,以及密碼的訪問模式。下面,如圖 1 所示給出一個 dsm.opt 的文件示例。可以用文本編輯器對其進行編輯:

圖 1. dsm.opt 的文件示例

使用TSM對DB2數據庫應用程序實現存儲備份

生成 TSM 節點的加密密碼

在前面的配置都完成後,需要調用 dsmapipw.exe 可執行文件,默認安裝 DB2 的安裝目錄“c:\program files\ibm\sqllib\adsm\”下,對之前設置的 TSM 節點密碼進行加密。這個加密的密碼將會被保存在 windows 的注冊表中。

運行 dsmapipw.exe 的時候,將會要求輸入當前的節點密碼,新密碼,並且對新密碼進行確認,如圖 2 所示。

圖 2. 設置的 TSM 節點密碼

使用TSM對DB2數據庫應用程序實現存儲備份

除了可以通過密碼來進行安全保護外,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,則該參數需要設置

進行數據庫備份操作

到這裏爲止,所有的配置都已經完成。現在就可以使用 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. 數據庫備份運行結果

使用TSM對DB2數據庫應用程序實現存儲備份

從中可以看到,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數據庫應用程序實現存儲備份

進行數據庫表空間的備份操作

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 類型存儲卷的並發支持,可以比較好的提高客戶在還原數據庫時的性能。

使用ssh實現oracle數據庫備份文件自動異地存儲
  使用eXPort DATE=$(date +%Y%m%d) 日期參數和成功建立ssh RSA密匙對是要害 首先在Oracle數據庫服務器(211.96.97.52)設定自動備份腳本 ...查看完整版>>使用ssh實現oracle數據庫備份文件自動異地存儲
 
使用SQLSERVER的擴展存儲過程實現遠程備份與恢複
摘要:使用SQLSERVER的擴展存儲過程實現遠程備份與恢複 最近我在爲公司的框架程序(以數據應用爲導向的應用體系)做數據管理模塊,這個模塊的需求比較簡單:備份、恢複和清理日志。我公司的軟件基本上以C/S爲基本...查看完整版>>使用SQLSERVER的擴展存儲過程實現遠程備份與恢複
 
使用SQLSERVER的擴展存儲過程實現遠程備份與恢複
最近我在爲公司的框架程序(以數據應用爲導向的應用體系)做數據管理模塊,這個模塊的需求比較簡單:備份、恢複和清理日志。我公司的軟件基本上以C/S爲基本架構,所以數據管理模塊中兩個主要的功能‘備份與恢複...查看完整版>>使用SQLSERVER的擴展存儲過程實現遠程備份與恢複
 
使用SQLSERVER的擴展存儲過程實現遠程備份與恢複 測試後的結果。
最近我在爲公司的框架程序(以數據應用爲導向的應用體系)做數據管理模塊,這個模塊的需求比較簡單:備份、恢複和清理日志。我公司的軟件基本上以C/S爲基本架構,所以數據管理模塊中兩個主要的功能‘備份與恢複’都可...查看完整版>>使用SQLSERVER的擴展存儲過程實現遠程備份與恢複 測試後的結果。
 
使用SQLSERVER的擴展存儲過程實現遠程備份與恢複 測試後的結果。
最近我在爲公司的框架程序(以數據應用爲導向的應用體系)做數據管理模塊,這個模塊的需求比較簡單:備份、恢複和清理日志。我公司的軟件基本上以C/S爲基本架構,所以數據管理模塊中兩個主要的功能‘備份與恢複...查看完整版>>使用SQLSERVER的擴展存儲過程實現遠程備份與恢複 測試後的結果。
 
用DB2 V9.1for z/OS實現應用程序會話鎖定
DB2 for z/OS V9.1 的一項新特性 SKIP LOCKED DATA 使用戶能夠實現應用程序級別的會話鎖定,允許在中途進行 DB2 提交。通過本文介紹的簡便設計模式,熟悉這個特性的細節。 簡介 對于獲得最佳的應用程序性能,以及確保...查看完整版>>用DB2 V9.1for z/OS實現應用程序會話鎖定
 
DB2用戶密碼修改及數據庫備份恢複問題
前天開始安裝省總服務器,先建數據庫,又打包程序進行安裝,一切按部就班,很是順利,可最後程序總是連不上數據庫,用以下命令進行測試: catalog tcpip node local remote localhost server 5000(db2-port-number)...查看完整版>>DB2用戶密碼修改及數據庫備份恢複問題
 
利用表空間的備份快速恢複IBM DB2數據庫
在 DB2 V9 版本中,提供了一個重要的新特性,即利用DB2表空間的備份來快速恢複數據庫,甚至可以根據數據的重要性選擇恢複一部分重要數據,達到快速恢複的目的。本文結合實例對 DB2 V9 的該重要技術特性做了詳細介紹,...查看完整版>>利用表空間的備份快速恢複IBM DB2數據庫
 
SQLServer擴展存儲過程實現遠程備份與恢複
  實例說明:  環境:win2k+sqlserver 2K+查詢分析器  SQLSERVER服務實例名稱:mainserver  需要備份的數據庫名稱: msdb  本地機器名稱(Client端):david  本地用戶:zf 密碼:123  本地域名:domain ...查看完整版>>SQLServer擴展存儲過程實現遠程備份與恢複
 
 
回到王朝網路移動版首頁