DB2 pureScale在线备份恢复实例


刚刚接触DB2,对DB2的备份恢复机制不是太熟悉,相关的资料又太少,只好自己慢慢摸索了。

需求

对生产库进行在线压缩备份,备份中包含归档日志,定期将生产库备份恢复到测试环境,确保测试环境采用最新的生产数据。

备注:生产环境与测试环境中,数据文件存储路径不一致,在恢复过程中应注意。

环境

OS:

$ oslevel -s
6100-06-06-1140

数据库:

$ pwd
/opt/IBM/db2/V9.8FP5/install

$ ./db2ls

Install Path                       Level   Fix Pack   Special Install Number   Install Date                  Installer UID
---------------------------------------------------------------------------------------------------------------------
/opt/IBM/db2/V9.8                 9.8.0.4        4                      12    Mon Jun  4 16:19:38 2012 +0800             0
/opt/IBM/db2/V9.8FP5              9.8.0.5        5                            Fri Jul 13 15:22:55 2012 +0800             0

$ db2instance -list
ID        TYPE             STATE                HOME_HOST               CURRENT_HOST            ALERT   PARTITION_NUMBER        LOGICAL_PORT    NETNAME
--        ----             -----                ---------               ------------            -----   ----------------        ------------    -------
0       MEMBER           STARTED                 SXYCDBM0                   SXYCDBM0               NO                  0                   0    SXYCDBM0-ib0
1       MEMBER           STARTED                 SXYCDBM1                   SXYCDBM1               NO                  0                   0    SXYCDBM1-ib0
128     CF               PRIMARY                 SXYCDBF0                   SXYCDBF0               NO                  -                   0    SXYCDBF0-ib0,SXYCDBF0-ib1
129     CF                  PEER                 SXYCDBF1                   SXYCDBF1               NO                  -                   0    SXYCDBF1-ib0,SXYCDBF1-ib1

HOSTNAME                   STATE                INSTANCE_STOPPED        ALERT
--------                   -----                ----------------        -----
SXYCDBF1                  ACTIVE                              NO           NO
SXYCDBF0                  ACTIVE                              NO           NO
SXYCDBM1                  ACTIVE                              NO           NO
SXYCDBM0                  ACTIVE                              NO           NO

备注:这是一个2个Member和2个CF的pureScale环境。

备份:

$ db2 backup db $DBNM online to /db2fs/db2backup/backup compress INCLUDE LOGS

Backup successful. The timestamp for this backup image is : 20120731182910

备注:在线、压缩备份,备份image中包含备份期间产生的所有归档日志

可以使用以下脚本来获取数据库的各种文件的存储路径DBPATH、LOGPATH、DB_STORAGE_PATH

db2 "select substr(type,1,20) as type, substr(path,1,80) as path from sysibmadm.dbpaths order by type"

恢复

将生产库的备份集ftp到测试环境,开始恢复数据库

1. 还原数据文件

db2 restore db $DBNM from /db2fs/db2backup/yuch/20120731 on /db2fs/sxdata DBPATH ON /db2fs/sxlog NEWLOGPATH /db2fs/sxlog/db2sdin1/SX2/DBPARTITION0000/LOGSTREAM0000/

备注:

测试环境的数据库存储路径、数据文件存储路径,以及在线日志的存储路径与生产环境不一致,在恢复过程中需要修改路径。

/db2fs/sxdata为DB_STORAGE_PATH,即数据库存储路径

/db2fs/sxlog为DBPATH,即数据文件的存储路径

/db2fs/sxlog/db2sdin1为NEWLOGPATH,即在线日志存储路径

2.还原归档日志文件

db2  restore db $DBNM logs from /db2fs/db2backup/yuch/20120731  logtarget /db2fs/db2backup/archive_log/sx2/db2sdin1/SX2

备注:

将备份集中的归档日志还原到指定目录

logtarget即新指定的归档日志路径

3.前滚数据库到备份结束时间点

$ db2 "rollforward db sx2 to end of logs and stop overflow log path (/db2fs/db2backup/archive_log/sx2)"

                                 Rollforward Status

 Input database alias                   = sx2
 Number of members have returned status = 2

 Member ID    Rollforward                 Next log             Log files processed        Last committed transaction
              status                      to be read
 -----------  --------------------------  -------------------  -------------------------  --------------------------
           0  not pending                                      S0000095.LOG-S0000095.LOG  2012-07-31-03.22.53.000000 UTC
           1  not pending                                      S0000313.LOG-S0000313.LOG  2012-07-31-03.22.53.000000 UTC

DB20000I  The ROLLFORWARD command completed successfully.

备注:在DB2中,rollforward操作类似于Oracle的recover操作,整个过程就是把备份期间产生的归档日志都应用到数据库中。

rollforward命令中需要指定归档日志的目录。

至此测试环境数据库恢复完毕。

相关内容