我们将按照下列顺序进行利用TSM的联机备份还原DB2数据库:
1. 创建示例数据库DB2TEST1,并把日志改成归档模式,并运用一下DB2 V9新增的配置参数LOGARCHMETH1。创建示例表TEST1,并插入两条记录。
2. 联机全量备份数据库DB2TEST1,备份期间对示例表TEST1插入一条记录。
3. 使用联机全量备份映像恢复示例数据库DB2TEST1,并前滚恢复到日志末尾。
4. 修改示例数据库DB2TEST1配置参数TRACKMOD,使其允许跟踪数据库的更新。
5. 在增量模式下联机备份数据库:对示例表TEST1再次插入2条记录,并对示例数据库DB2TEST1进行联机备份;对示例表TEST1再插入两条记录,对示例数据库DB2TEST1进行联机增量备份;对示例表TEST1再插入两条记录,对示例数据库DB2TEST1进行联机差异备份。
6. 手工增量复原示例数据库DB2TEST1。
7. 自动增量复原示例数据库DB2TEST1。
1、
建示例数据库DB2TEST1,具体如清单1所示:
- - 清单1 .创建示例数据库DB2TEST1
C:> DB2 CREATE DATABASE DB2TEST1
DB20000I CREATE DATABASE命令成功完成。
命令执行成功,这样我们就创建了一个示例数据库DB2TEST1,数据库地域是中国(CN),数据库代码页是1386,数据库代码集是GBK。由于数据库默认情况是采用循环日志方式,在循环日志方式下,不能进行联机备份,所以我们需要把日志方式改成归档模式。在DB2CLP窗口中,连接示例数据库DB2TEST1,执行UPDATE DB CFG命令把LOGARCHMETH1参数改成“TSM”,具体如清单2所示。
- - 清单2 .修改示例数据库DB2TEST1的配置参数
C:> db2 connect to db2test1
数据库连接信息
数据库服务器 = DB2 / NT 9.1.0
SQL 授权标识 = RHETTE
本地数据库别名 = DB2TEST1
C:> DB2 UPDATE DATABASE CONFIGURATION USING LOGARCHMETH1 TSM IMMEDIATE
DB20000I UPDATE DATABASE CONFIGURATION命令成功完成。
SQL1363W 为立即修改而提交的一个或多个参数未动态更改。对于这些配置参数,
必须在所有应用程序都与此数据库断开连接之后,更改才会生效。
另外,在数据库配置参数中,提供了4个配置参数用来定义TSM的管理类等,分别是TSM管理类(TSM_MGMTCLASS)、TSM节点名(TSM_NODENAME)、TSM所有者(TSM_OWNER)和TSM密码(TSM_PASSWORD)。这些参数的配置和以前的TSM 备份DB2没有区别。
改变归档模式后,应该对数据库做全备份
C:> DB2 BACKUP DB DB2TEST1
备份成功。此备份映像的时间戳记是:20070928212852
下面我们来创建一个示例表TEST1
C:> DB2 CREATE TABLE TEST1( ID INT , NAME VARCHAR ( 10 ) , NOTE VARCHAR ( 50 ) )
DB20000I SQL命令成功完成。
C:> DB2 INSERT INTO TEST1 VALUES ( 1 , ' Wang' , ' the first rows ' )
DB20000I SQL命令成功完成。
C:> DB2 INSERT INTO TEST1 VALUES ( 2 , ' Ding ' , ' the second rows ' )
DB20000I SQL命令成功完成。
进行联机备份
C:> db2 backup db db2test1 online include logs
备份成功。此备份映像的时间戳记是:20070928223032
在联机备份数据库期间(备份没有完成之前),我们继续对示例数据库DB2TEST1进行操作,对TEST1表新插入一条记录,具体如清单9所示:
- - 清单9 .插入测试表一条新的记录
C:> DB2 INSERT INTO TEST1 VALUES ( 3 , ' Li ' , ' the third rows ' )
DB20000I SQL命令成功完成。
恢复
为了模拟日志丢失,我们进入C:DB2NODE0000SQL00002SQLOGIDR(想查看示例数据库DB2TEST1的活动日志目录,可以使用GET DB CFG看到),删除所有的日志文件。
C:> db2 restore db db2test1 taken at 20070928223032 logtarget C:DB2NODE0000SQL00002SQLOGDIR
SQL2539W 警告!正在复原至与备份映像数据库相同的现有数据库。数据库文件将被删除。
要继续吗?( y / n ) y
DB20000I RESTORE DATABASE命令成功完成。
由于归档日志情况下的利用联机备份映像还原必须进行前滚恢复,所以接下来我们进行前滚恢复。
C:> db2 rollforward db db2test1 to end of logs and stop
连接上示例数据库DB2TEST1,发出SELECT语句,查看示例表TEST1,可以看到我们在联机备份时插入的数据,名称为“Li”的记录已经成功恢复,具体如清单13所示:
- - 清单 13 .查看示例表TEST1
C:> DB2 CONNECT TO DB2TEST1
数据库连接信息
数据库服务器 = DB2/NT 9.1.0
SQL 授权标识 = RHETTE
本地数据库别名 = DB2TEST1
C:> DB2 SELECT * FROM TEST1
ID NAME NOTE
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1 Wang the first rows
2 Ding the second rows
3 Li the third rows
3 条记录已选择。
说明:
1、在归档日志模式下,对数据库发出带ONLINE和INCLUDE LOG选项的BACKUP DATABASE命令,联机全量备份示例数据库DB2TEST1,备份映像中包含联机备份期间相关的日志。
2、利用带LOGTARGET选项的RESTORE DATABASE命令,使用联机备份映像恢复示例数据库DB2TEST1,并把日志文件中的日志文件解压到示例数据库DB2TEST1的活动日志目录中。
3、利用前滚恢复滚动到日志末尾完成最后的操作。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/189512/viewspace-119989/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/189512/viewspace-119989/