故障恢复关键步骤与灾备方案设计 7月10日 星期四 15:00 云祺视频号准时直播
云祺直播二维码
扫码预约直播,观看精彩内容! 扫码预约直播,观看精彩内容!
关闭按钮
云祺Logo 云祺Logo
关于我们

技术分享

技术分享 TSM备份DB2

TSM备份DB2

2018-07-03

Normal  0      false  false  false                  MicrosoftInternetExplorer4 1. 设置TSM服务器环境

定义TSM的卷信息

define dbvol /tsmdata/db.dsm formatsize=200

define logvol /tsmdata/log.dsm formatsize=100

extend db 100

extend log 500

delete dbvol /usr/tivoli/tsm/server/bin/db.dsm

delete logvol /usr/tivoli/tsm/server/bin/log.dsm

define spacetrigger db expansionprefix=/tsmdata/ maximumsize=1024

define spacetrigger log expansionprefix=/tsmdata/ maximumsize=512

定义基本的存储池:

define stgpool diskpool DISK

define vol diskpool /tsmdata/diskpool.dsm formatsize=1024

定义策略域:

copy domain standard test

设置策略域中的策略集中的管理类中的副本组,定义使用指定的存储池:

tsmTSM>update copygroup test standard standard destination=diskpool

ANR1532I Backup copy group STANDARD updated in policy domain TEST, set STANDARD, management class STANDARD.

tsmTSM>update copygroup test standard standard destination=diskpool type=archive

ANR1537I Archive copy group STANDARD updated in policy domain TEST, set STANDARD, management class STANDARD.

激活策略域:

tsmTSM>activate policy test standard

查看副本组设置:

tsmTSM>q copygroup test active standard format=detailed

                 Policy Domain Name: TEST

                    Policy Set Name: ACTIVE

                    Mgmt Class Name: STANDARD

                    Copy Group Name: STANDARD

                    Copy Group Type: Backup

               Versions Data Exists: 2

              Versions Data Deleted: 1

              Retain Extra Versions: 30

                Retain Only Version: 60

                          Copy Mode: Modified

                 Copy Serialization: Shared Static

                     Copy Frequency: 0

                   Copy Destination: DISKPOOL

Table of Contents (TOC) Destination:

     Last Update by (administrator): ADMIN

              Last Update Date/Time: 01/28/2007 21:40:45

                   Managing profile:

                    Changes Pending: No

tsmTSM>q copygroup test active standard format=detailed type=archive

            Policy Domain Name: TEST

               Policy Set Name: ACTIVE

               Mgmt Class Name: STANDARD

               Copy Group Name: STANDARD

               Copy Group Type: Archive

                Retain Version: 365

          Retention Initiation: Creation

           Retain Minimum Days:

            Copy Serialization: Shared Static

                Copy Frequency: CMD

                     Copy Mode: Absolute

              Copy Destination: DISKPOOL

Last Update by (administrator): ADMIN

         Last Update Date/Time: 01/28/2007 21:39:24

              Managing profile:

               Changes Pending: No

定义节点,并设其关联定制的策略域:

register node db2node db2node domain=test

2. 设置TSM客户端

设置OS环境变量

$ env|grep DSMI

DSMI_DIR=/usr/tivoli/tsm/client/api/bin

DSMI_CONFIG=/usr/tivoli/tsm/client/api/bin/dsm.opt

DSMI_LOG=/odsvr/log

修改后,必须重启DB2.

如果DSMI_LOG设置有误,将出错:

SQL2062N  An error occurred while accessing media

"/home/archive1/sqllib/adsm/libtsm.a".  Reason code: "106".

设置TSM客户端数据库参数

db2 connect to sample

db2 "update db cfg using TSM_NODENAME 'db2node'"

db2 "update db cfg using TSM_MGMTCLASS 'standard'"

db2 "update db cfg using TSM_OWNER 'db2node'" (可选)

db2 "update db cfg using TSM_PASSWORD 'db2node'"

如果TSM_NODENAME设置错误,将出错:

SQL2062N  An error occurred while accessing media

"/home/archive1/sqllib/adsm/libtsm.a".  Reason code: "53".

如果TSM_MGMTCLASS设置错误,将出错:

SQL2062N  An error occurred while accessing media

"/home/archive1/sqllib/adsm/libtsm.a".  Reason code: "2025".

如果TSM_PASSWORD设置错误,将出错:

SQL2062N  An error occurred while accessing media

"/home/archive1/sqllib/adsm/libtsm.a".  Reason code: "137".

(:以上设置不需重启数据库)

查看以上设定信息:

$ db2 get db cfg for sample|grep TSM             

 TSM management class                    (TSM_MGMTCLASS) = standard

 TSM node name                            (TSM_NODENAME) = db2node

 TSM owner                                   (TSM_OWNER) = db2node

 TSM password                             (TSM_PASSWORD) = *****

root用户为TSMapi客户端设定并加密TSM密码:

# /usr/opt/db2_08_01/adsm/dsmapipw

*************************************************************

* Tivoli Storage Manager                                    *

* API Version = 5.3.2                                       *

*************************************************************

Enter your current password:

Enter your new password:

Enter your new password again:

Your new password has been accepted and updated.

3. 设置数据库使用归档日志

$ db2 terminate

$ db2 update db cfg for sample using logretain on

DB20000I  UPDATE DATABASE CONFIGURATION 命令成功完成。

设置数据库使用归档日志之后,使用数据库之前必需做一次完整备份:

$ db2 backup db sample use tsm

启动数据库更新跟踪:

$ db2 update db cfg for sample using TRACKMOD on       

DB20000I  UPDATE DATABASE CONFIGURATION 命令成功完成。

查看数据库日志模式:

$ db2 get db cfg for sample|grep LOGRETAIN

 启用的恢复的日志保留                        (LOGRETAIN) = RECOVERY

 第一个日志归档方法                        (LOGARCHMETH1) = LOGRETAIN

查看日志文件路径:

$ db2 get db cfg for sample|grep 日志文件路径

 日志文件路径 = /home/archive1/archive1/NODE0000/SQL00001/SQLOGDIR/

4. 数据库备份4.1 每两月进行离线数据库全备份

$ db2 "create table t1(c1 char(20))"

离线数据库全备:

$ db2 terminate

$ db2 backup db sample use tsm

备份成功。此备份映像的时间戳记是:20070201194607

:

若执行备份的用户当前连接到数据库,执行备份前自动退出数据库连接

若执行备份时另用用户连接数据库,会提示退出。如:

$  db2 backup db sample

SQL1035N  当前正在使用数据库。  SQLSTATE=57019

列出当前连到数据库的应用:

$ db2 list applications for db sample

强制当前连接退出:

$ db2 force application all

4.2 每周进行联机增备

增备1:

$ db2 connect to sample

$ db2 "insert into t1 values('增备1内容')"

$ db2 commit

$ db2 backup db sample online incremental use tsm include logs

备份成功。此备份映像的时间戳记是:20070201194742

注:热备时默认不包括恢复所需的日志文件,这需要另外备份日志文件,以供恢复所需。

加了include logs参数, 会自动备份恢复所需的当前活动log文件。

?问题:经实验,include logs参数并不能备份日志。

增备2:

$ db2 deactivate db sample

$ db2 connect to sample

$ db2 "insert into t1 values('增备2内容')"

$ db2 commit

$ db2 backup db sample online incremental use tsm include logs

备份成功。此备份映像的时间戳记是:20070201194851

4.3 验证备份内容

: q backup命令查不到做api客户端的备份,可以用DB2的命令通过API调用TSM查询:

查看TSM归档映像:

$ db2adutl query password db2node database sample

Query for database SAMPLE

Retrieving FULL DATABASE BACKUP information.

    1 Time: 20070201194607  Oldest log: S0000000.LOG  DB Partition Number: 0    Sessions: 1 

Retrieving INCREMENTAL DATABASE BACKUP information.

    1 Time: 20070201194851  Oldest log: S0000003.LOG  DB Partition Number: 0    Sessions: 1 

2 Time: 20070201194742  Oldest log: S0000001.LOG  DB Partition Number: 0    Sessions: 1 

以上信息中同时显示出备份映像中是否包含了日志文件。

由上可见,离线冷备不包含日志文件,联机热包含日志文件。

DB2数据库历史中检查增量复原映像序列:

$ db2ckrst -d sample -t 20070201194851 

Suggested restore order of images using timestamp 20070201111655 for

database sample.

====================================================================

 restore db sample incremental taken at 20070201194851

 restore db sample incremental taken at 20070201194607

 restore db sample incremental taken at 20070201194851

====================================================================

列示DB2历史文件中的备份记录:

$ db2 list history backup all for sample

......

 Op 对象 时间戳记+序列     类型 设备 最早日志    当前日志     备份标识

 -- --- ------------------ ---- --- ------------ ------------ --------------

  B  D  20070201194607001   F    A  S0000000.LOG S0000000.LOG 

 ----------------------------------------------------------------------------

  包含 2 表空间:

  00001 SYSCATSPACE                                                          

  00002 USERSPACE1                                                           

 ----------------------------------------------------------------------------

    注释:DB2 BACKUP SAMPLE OFFLINE                                       

 开始时间:20070201194607

   结束时间:20070201194628

     状态:A

 ----------------------------------------------------------------------------

  EID3 位置:adsm/libtsm.a

 

 Op 对象 时间戳记+序列    类型 设备 最早日志    当前日志     备份标识

 -- --- ------------------ ---- --- ------------ ------------ --------------

  B  D  20070201194742001   O    A  S0000001.LOG S0000001.LOG 

 ----------------------------------------------------------------------------

  包含2 表空间

  00001 SYSCATSPACE                                                          

  00002 USERSPACE1                                                           

 ----------------------------------------------------------------------------

    注释DB2 BACKUP SAMPLE ONLINE                                         

 开始时间20070201194742

   结束时间20070201194802

     状态A

 ----------------------------------------------------------------------------

  EID4 位置adsm/libtsm.a

 

 Op 对象 时间戳记+序列    类型 设备 最早日志    当前日志     备份标识

 -- --- ------------------ ---- --- ------------ ------------ --------------

  B  D  20070201194851001   O    A  S0000003.LOG S0000003.LOG 

 ----------------------------------------------------------------------------

  包含2 表空间

  00001 SYSCATSPACE                                                           

  00002 USERSPACE1                                                           

 ----------------------------------------------------------------------------

    注释DB2 BACKUP SAMPLE ONLINE                                         

 开始时间20070201194851

   结束时间20070201194911

     状态A

 ----------------------------------------------------------------------------

  EID5 位置adsm/libtsm.a

TSM的存储池上查看备份内容:

tsm: TSM>q content /tsmdata/diskvol.dsm node=db2node format=detailed type=backup

                         Node Name: DB2NODE

                              Type: Bkup

                    Filespace Name: /SAMPLE

        Hexadecimal Filespace Name:

                              FSID: 11

            Client's Name for File: /NODE0000/ FULL_BACKUP.20070201194607.1

Hexadecimal Client's Name for File:

                       Aggregated?: No

                       Stored Size: 34.54 M

                    Segment Number:

                      Cached Copy?: No

 

                         Node Name: DB2NODE

                              Type: Bkup

                    Filespace Name: /SAMPLE

        Hexadecimal Filespace Name:

                              FSID: 11

            Client's Name for File: /NODE0000/ DB_INCR_BACKUP.20070201194742.1

Hexadecimal Client's Name for File:

                       Aggregated?: No

                       Stored Size: 9.53 M

                    Segment Number:

                      Cached Copy?: No

 

                         Node Name: DB2NODE

                              Type: Bkup

                    Filespace Name: /SAMPLE

        Hexadecimal Filespace Name:

                              FSID: 11

            Client's Name for File: /NODE0000/ DB_INCR_BACKUP.20070201194851.1

Hexadecimal Client's Name for File:

                       Aggregated?: No

                       Stored Size: 9.53 M

                    Segment Number:

                      Cached Copy?: No

4.4 每天备份日志文件

模拟生成日志:

$ db2 terminate

$ db2 deactivate db sample

$ db2 connect to sample

$ db2 "insert into t1 values('1日志文件的内容')"

$ db2 commit

$ db2 terminate

$ db2 deactivate db sample

$ db2 connect to sample

$ db2 "insert into t1 values('2日志文件的内容')"

$ db2 commit

查看首个活动日志文件:

$ db2 GET DATABASE CONFIGURATION for sample|grep 首个活动日志文件

 首个活动日志文件 = S0000005.LOG

查看日志文件目录:

$ ls -l /home/archive1/archive1/NODE0000/SQL00001/SQLOGDIR/

总计 24168

-rw-------   1 archive1 db2grp1       12288  201 1947 S0000000.LOG

-rw-------   1 archive1 db2grp1       12288  201 1947 S0000001.LOG

-rw-------   1 archive1 db2grp1       12288  201 1948 S0000002.LOG

-rw-------   1 archive1 db2grp1       12288  201 1949 S0000003.LOG

-rw-------   1 archive1 db2grp1       12288  201 1958 S0000004.LOG

-rw-------   1 archive1 db2grp1     4104192  201 1958 S0000005.LOG

-rw-------   1 archive1 db2grp1     4104192  201 1949 S0000006.LOG

-rw-------   1 archive1 db2grp1     4104192  201 1958 S0000007.LOG

由于最后一次增备的时间戳是20070201194851,对应当时日志文件是S0000003.LOG

所以编号大于3的日志文件都是数据库恢复需要前滚的,其中S0000004.LOG是活动日志,其余是活动日志。

备份日志文件:

$ db2stop

$ dsmc backup /home/archive1/archive1/NODE0000/SQL00001/SQLOGDIR/

5. 恢复数据库5.1 模拟数据库失败环境

删除数据库:

$ db2 drop db sample

此命令也同时删除了归档日志目录

新建一个数据库:

$ db2 create db sample on /d2/backup

$ db2 connect to sample

$ db2 "update db cfg using TSM_NODENAME 'db2node'"

$ db2 "update db cfg using TSM_MGMTCLASS 'standard'"

$ db2 "update db cfg using TSM_OWNER 'db2node'"(可选)

$ db2 "update db cfg using TSM_PASSWORD 'db2node'"

$ db2 terminate

注:

如果直接将数据库备份到磁盘上(不使用TSM),恢复时可以直接恢复到一个新库中。

而如果使用TSM恢复,必须恢复到一个现有的库中,并且对现有库进行以上设置。否则在恢复出错如下错误:

SQL2062N  存取介质"/home/archive1/sqllib/adsm/libtsm.a"

时发生错误。原因码为:"137"

5.2 恢复数据库:

$ db2 restore db sample incremental automatic use tsm taken at 20070201194851 into sample

SQL2529W  警告!复原到与备份映像数据库不相同的现有数据库,现有数据库的别名"SAMPLE" 与备份映像的别名"SAMPLE" 不匹配,并且现有数据库的数据库名称"SAMPNEW" 与备份映像的数据库名称"SAMPLE" 不匹配。目标数据库将被备份版本覆盖。将删除与目标数据库相关联的“前滚”恢复日志。

想要继续吗?(y/n y

DB20000I  RESTORE DATABASE 命令成功完成。

此命令会自动使用全备20070201194607和增备20070201194851两个时间戳的备份完成恢复。

恢复DB2 Online备份后,没有日志需要恢复,使用命令下面的命令完成恢复:

$ db2 rollforward db sample complete

或:

$ db2 rollforward db sample stop

如果需要恢复日志,使用命令:

db2 rollforward db sample to end of logs and complete

注:

离线备份恢复时可以不需要恢复日志。

但在线恢复恢复时必需有日志配合才能完整恢复。

查看挂起数据库的前滚状态:

$ db2 rollforward db sample query status

此命令会显示下一个要读取的日志文件。

5.3 恢复最后一次增备后的日志

恢复归档日志:

$ dsmc restore /home/archive1/archive1/NODE0000/SQL00001/SQLOGDIR/

ANS1247I 正在等待服务器上的文件...

正在恢复          12,288 /home/archive1/archive1/NODE0000/SQL00001/SQLOGDIR/S0000003.LOG [完成]  

正在恢复          12,288 /home/archive1/archive1/NODE0000/SQL00001/SQLOGDIR/S0000004.LOG [完成]  

正在恢复          12,288 /home/archive1/archive1/NODE0000/SQL00001/SQLOGDIR/S0000005.LOG [完成]  

正在恢复       4,104,192 /home/archive1/archive1/NODE0000/SQL00001/SQLOGDIR/S0000006.LOG [完成]  

正在恢复       4,104,192 /home/archive1/archive1/NODE0000/SQL00001/SQLOGDIR/S0000007.LOG [完成]  

<7.86 MB> [ - ]

恢复处理完成。

此命令将最后一次增备后的日志文件(包括最新的数据库修改)恢复到原位置。

前滚数据库修改:

$ db2 rollforward db sample to end of logs

                                前滚状态

 输入数据库别名                  = sample

 节点数已返回状态                = 1

 节点号                                    = 0

 前滚状态                                    = DB 工作

 下一个要读取的日志文件          = S0000006.LOG

 已处理的日志文件                = S0000003.LOG - S0000005.LOG

 上次落实的事务                  = 2007-02-01-11.58.55.000000

DB20000I  ROLLFORWARD 命令成功完成。

完成前滚:

$ db2 rollforward db sample complete      

                                前滚状态

 输入数据库别名                  = sample

 节点数已返回状态                = 1

 节点号                                    = 0

 前滚状态                                    = 未暂挂

 下一个要读取的日志文件          =

 已处理的日志文件                = S0000003.LOG - S0000005.LOG

 上次落实的事务                  = 2007-02-01-11.58.55.000000

DB20000I  ROLLFORWARD 命令成功完成。

?如果没有恢复日志,运行rollforward命令时出错:

SQL1276N  在前滚已经过大于或等于"2007-02-02-10.31.58.000000"

的时刻之前,数据库 "SAMP110"不能脱离前滚暂挂状态,因为节点 "0"

中包含比指定时间更新的信息。

无法打开数据库,问IBM80081018187071873)技术支持,说是在备份时加include logs参数可以解决,实际实验也不行。

验证恢复:

$ db2 "select * from t1"

C1                 

--------------------

增备1内容          

增备2内容          

1日志文件的内容  

2日志文件的内容  

  4 条记录已选择。

注意事项:

执行restore,需要注意:

1)如果原数据库是1386代码页,需要设定:

$ export LANG=zh_CN 

$ db2 terminate

否则出错:

SQL1205N  指定的代码页 "1386" 和/或地域代码 "1" 无效。

2)如需要,root用户执行:

# /usr/opt/db2_08_01/adsm/dsmapipw

(设置并加密TSM密码文件到本地)

如果不知道原密码,可以到TSM服务器上修改节点属性以设定一个新密码:

tsmTSM>update node db2node db2node

ANR2063I Node DB2NODE updated.


st1:*{behavior:url(#ieooui) } /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin:0cm; mso-para-margin-bottom:.0001pt; mso-pagination:widow-orphan; font-size:10.0pt; font-family:"Times New Roman"; mso-fareast-font-family:"Times New Roman"; mso-ansi-language:#0400; mso-fareast-language:#0400; mso-bidi-language:#0400;}
云祺备份软件,云祺容灾备份系统,虚拟机备份,数据库备份,文件备份,实时备份,勒索软件,美国,图书馆
  • 标签:
  • 网络安全

您可能感兴趣的新闻 换一批

现在下载,可享30天免费试用

立即下载

请添加好友为您提供支持
jia7jia_7

微信售后服务二维码

请拨打电话
为您提供支持

400-9955-698