技术开发 频道

基于TSM的DB2备份和跨节点恢复

  【IT168 技术】作者在实践基于TSM的DB2备份的时候发现,已有的资料不是侧重于介绍TSM就是侧重于介绍DB2备份方法,而介绍基于TSM的DB2备份、恢复方法以及DB2的跨节点恢复方法的资料分散于各处,由于没有比较系统的资料以及介绍非常好的实践操作方法的文章,作者在实践过程中十分不便,因此萌发了写一个全面系统介绍这方面内容的文章的想法。本文通过具体案例详细介绍了使用TSM进行DB2备份和恢复的方法,同时也介绍了如何跨节点进行DB2数据库恢复的步骤。读者可以通过这个案例了解到DB2如何结合TSM API实现便捷的数据库备份和恢复所需要的所有配置步骤和操作步骤,也可以了解到如何将一个数据库恢复到与原始服务器不同的服务器中去。在本文中,读者可以了解到基本的原理,也可以按照文章介绍的步骤,跟随作者一步一步地去实现基于TSM的DB2备份、恢复,以及跨节点恢复。

  IBM DB2是广泛应用的关系型数据库管理系统产品,其上包含了关键数据。IBM DB2结合IBM Tivoli Storage Manager(本文后称TSM)可以实现便捷地数据备份和恢复,以保护这些关键数据。

  作者在协助一家IT公司管理其IDC的过程中,遇到需要定期备份指定的生产DB2数据的需求,而且这些备份的数据需要被定期恢复到其它DB2服务器中以用于检查备份的有效性,同时,这些备份的生产数据要求在每天晚上被恢复到用于开发测试的DB2服务器中以用于使开发测试环境尽量保持于实际生产环境的数据一致。

  目前,这套机制已经运行2年,5个生产数据库每周末进行在线全量备份,每日深夜进行增量备份;部分生产数据库在每天晚上在备份结束后跨节点恢复到开发测试用的DB2服务器中;其它生产数据库每月进行一次跨节点的恢复演练,将备份的数据恢复到在台用于检查备份数据有效性的DB2服务器中(后称“恢复演练DB2服务器”)。

  由于有良好的备份机制以及备份数据有效性验证的机制,在一次生产事故中,一台生产DB2服务器的磁盘逻辑分区损坏,导致1个生产数据库的数据遭受永久的损坏。通过从TSM中成功恢复数据,结合从TSM中进行事务日志的恢复操作,只丢失事故前几分钟的数据,从而保障了该IT公司的重要数字资产。

  作者在当初实施这个项目时发现,虽然有海量的参考资料,包括IBM的红皮书,以及其它用户的使用经验。但是,已有的资料不是侧重于介绍TSM就是侧重于介绍DB2备份方法,而介绍基于TSM的DB2备份、恢复方法以及DB2的跨节点恢复方法的资料分散于各处,由于没有比较全面的资料以及实际的非常好的实践操作方法,作者在实践过程中十分不便。在整个项目实施运行并且证实有效之后,萌发了写一个全面介绍这方面内容的文章的想法。希望可以在文中,可以全面介绍相关的原理,读者也可以按照文章介绍的步骤,跟随作者一步一步地去实现基于TSM的DB2备份、恢复,以及跨节点恢复,而不需要每做一步都需要到浩瀚的资料大洋中搜索相关的内容。

  本文通过具体案例,详细地介绍数据备份、备份计划以及数据恢复的步骤和方法。同时,本文也介绍了将一个数据库恢复到其它数据库服务器中去的步骤和方法。

  一、原理简介

  使用TSM进行数据备份有多种方式,本文介绍的是让DB2调用TSM API所提供的函数直接将数据库和表空间备份发送到TSM服务器的方式,这种方式经过2年的运行以来,证实是便捷和可靠的。图1表示了这种方法的架构。

基于TSM的DB2备份和跨节点恢复
▲图1

  二、实验环境介绍

  本案例以实际生产环境为例,包含了TSM系统(服务器、存储和带库)、DB2服务器 和恢复演练用的DB2服务器。

基于TSM的DB2备份和跨节点恢复
▲图2

  图2说明了整个实验环境相关的设备之间的关系,生产DB2服务器和恢复演练DB2服务器都由IP网络与TSM Server连接;TSM Server与存储设备之间以SAN Fab-ric连接,为了说明的方便,不展开TSM多级存储的说明和讨论。我们将在后面的步骤操作中把一台DB2服务器上的数据备份到TSM系统中,随后再把数据从TSM系统中恢复到同一台DB2服务器上;在之后,我们再说明将数据从一台DB2服务器上备份到TSM系统之后再恢复到另一台DB2服务器上。

基于TSM的DB2备份和跨节点恢复
▲图3

  图3说明了TSM系统内的NODE配置以及与2台DB2 Serv-er的实例和数据库之间的关系。在TSM系统上为生产DB2服务器创建了1个NODE,名为PRODDB2;为恢复演练DB2服务器创建了1个NODE,名为DRILLDB2, 这2个NODE都属于策略域DB2DOMAIN。在DB2DOMAIN策略域中,创建了一个名为DB2MGMTCLASS的管理类,在这个管理类中可以定义诸如备份版本数量、备份保持时长等等备份和归档策略,2个NODE都与该管理类关联。在生产DB2服务器上有实例db2inst1,在该实例内运行了一个数据库ZSHWL,在之后的步骤中,我们将在生产DB2服务器上安装TSM Client API,并且在这个API上配置登录到TSM系统的PRODDB2节点中。相类似的,恢复演练DB2服务器上的TSM Client API将登录到TSM系统的DRILLDB2节点中。

基于TSM的DB2备份和跨节点恢复
▲图4

  三、TSM Client API安装和配置

  要采用图1的架构进行数据库备份或者恢复都需要在DB2服务器上安装TSM Client API。首先要在DB2实例用户下运行db2level来确定DB2是32位的还是64位的,如下粗体部分显示本案例中的生产DB2服务器安装的是64位版本的DB2服务器:

[db2inst1@prod-db2-1 ~]$ db2level
DB21085I  This instance or install (instance name, where applicable:
"db2inst1") uses "64" bits and DB2 code release "SQL09079" with level identifier "080A0107".
Informational tokens are "DB2 v9.7.0.9", "s131204", "IP23561", and Fix Pack "9".
Product is installed at "/opt/ibm/db2/V9.7".

  到官网网址:http://www-01.ibm.com/support/docview.wss?uid=swg21239415去下载相应的软件,解包后依次运行下述命令行即可完成TSM Client API的安装:

rpm -Uhv gskcrypt64-8.0.14.14.linux.x86_64.rpm gskssl64-8.0.14.14.linux.x86_64.rpm
rpm -ihv TIVsm-API64.x86_64.rpm
rpm -ihv TIVsm-APIcit.x86_64.rpm

  安装完成后,需要配置TSM Client API。首先要在dsm.sys中配置TSM Server和Nodename。

  在生产DB2服务器上配置如下:

[db2inst1@prod-db2-1 ~]$ cat /opt/tivoli/tsm/client/api/bin64/dsm.sys
SErvername  WIN-05T3KU001S9
   COMMMethod         TCPip
   TCPPort            1500
   TCPServeraddress   10.3.3.1
   nodename           PRODDB2
   passwordaccess     generate

  在恢复演练DB2服务器上配置如下:

[db2inst1@db2tsmdrill ~]$ cat /opt/tivoli/tsm/client/api/bin64/dsm.sys
SErvername  WIN-05T3KU001S9
   COMMMethod         TCPip
   TCPPort            1500
   TCPServeraddress   10.3.3.1
   nodename           DRILLDB2
   passwordaccess     generate

  然后,在生产DB2服务器和恢复演练DB2服务器中的dsm.opt中启用TSM Server配置:

cat /opt/tivoli/tsm/client/api/bin64/dsm.opt
SErvername       WIN-05T3KU001S9

  在完成以上配置后,为TSM Client API设置TSM NODE的帐号密码,用root权限在其中一个实例用户的sqllib/adsm目录内执行dsmapipw命令,以下是示例:

[root@@prod-db2-1 ~]# cd /home/db2inst1/sqllib/adsm
[root@@prod-db2-1 adsm]# ./dsmapipw
*************************************************************
* Tivoli Storage Manager                                    *
* API Version = 6.3.2                                       *
*************************************************************
Enter your current password:
Enter your new password:
Enter your new password again:
Your new password has been accepted and updated.

  以上配置在每个DB2服务器上做1次就可以,做完以上操作之后,需要为每个DB2实例进行与TSM Client API相关的环境变量的配置,在每个需要进行备份和恢复操作的DB2实例上都要做一次。

  以下是生产DB2服务器上db2inst1实例的配置示例:

[db2inst1@prod-db2-1 ~]$ cat sqllib/userprofile
export DSMI_CONFIG=/opt/tivoli/tsm/client/api/bin64/dsm.opt
export DSMI_LOG=/db2home/db2inst1
export DSMI_DIR=/opt/tivoli/tsm/client/api/bin64

  修改了userprofile之后,需要重新登录实例用户,这些环境变量才能生效。在这些环境变量生效时,重新启动DB2实例才可以使用TSM Client API进行数据库备份和恢复。

  注意:在生产环境进行数据库TSM备份变更时,有3个地方要重启DB2实例:

  1.安装TSM Client API需要在 DSMI_CONFIG、 DSMI_LOG、 DSMI_DIR这3个环境变量配置正确时重启DB2实例。

  2.为在线备份修改LOGARCHMETH1参数后,要重启数据库实例。

  3.为增量备份修改TRACKMOD参数后,要重启数据库实例。

  建议完成以上3处变更后一并重启数据库实例,可以减少停机时间。

3
相关文章