1、更改数据库参数 logretain, userexit, trackmod 为 on

  2、更改参数之后完全离线备份数据库一次

  3、之后就可以进行在线、在线增量备份了

  测试结果通过,脚本如下。

  重要!数据库归档日志必须按时备份至另一个地方,本例中为 C:/TESTDB.0/SQLOGDIR

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

C:/Documents and Settings/Administrator>cd/

C:/>db2 drop db TestDB

DB20000I drop DATABASE 命令成功完成。

C:/>db2 create db TestDB

DB20000I create DATABASE 命令成功完成。

C:/>db2 connect to TestDB

  数据库连接信息

  数据库服务器 = DB2/NT 8.2.0

  SQL 授权标识 = ADMINIST...

  本地数据库别名 = TESTDB

  修改数据库参数,使之支持在线联机备份

C:/>db2 update db cfg using logretain on userexit on trackmod on

DB20000I update DATABASE CONFIGURATION 命令成功完成。

SQL1363W 为立即修改而提交的一个或多个参数未动态更改。对于这些配置参数,必须在所

  有应用程序都与此数据库断开连接之后,更改才会生效。

  执行增量、在线备份之前必须执行离线全备份一次

C:/>db2 backup db TestDB

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

C:/>db2 connect to TestDB

  数据库连接信息

  数据库服务器 = DB2/NT 8.2.0

  SQL 授权标识 = ADMINIST...

  本地数据库别名 = TESTDB

  创建测试表,并插入测试数据

C:/>db2 create table T1(C1 int)

DB20000I SQL 命令成功完成。

C:/>db2 insert into T1(C1) values (1)

DB20000I SQL 命令成功完成。

  执行在线增量数据库备份

C:/>db2 backup db TestDB online incremental

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

  模拟灾难,删除数据库!(注意,此前一定要将归档日志文件备份至另一个路径,保存好)

C:/>db2 drop db TestDB

DB20000I drop DATABASE 命令成功完成。

  根据在线增量备份恢复数据库

C:/>db2 restore db TestDB incremental automatic from "c:" taken at 2007041914511

2

DB20000I RESTORE DATABASE 命令成功完成。

  恢复后的数据库处于前滚暂挂状态,不可用

C:/>db2 connect to TestDB

SQL1117N 由于 ROLL-FORWARD PENDING,不能连接或激活数据库 "TESTDB"。

SQLSTATE=57019

  前滚数据库,并指定归档日志位置,重要!

C:/>db2 ROLLFORWARD DATABASE TESTDB TO END OF LOGS AND COMPLETE OVERFLOW LOG PAT

H ("C:/TESTDB.0/SQLOGDIR")

  前滚状态

  输入数据库别名 = TESTDB

  节点数已返回状态 = 1

  节点号 = 0

  前滚状态 = 未暂挂

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

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

  上次落实的事务 = 2007-04-19-06.51.22.000000

DB20000I ROLLFORWARD 命令成功完成。

  恢复据库完成,前滚完成,查询测试数据

C:/>db2 connect to TestDB

  数据库连接信息

  数据库服务器 = DB2/NT 8.2.0

  SQL 授权标识 = ADMINIST...

  本地数据库别名 = TESTDB

C:/>db2 select * from T1

C1

-----------

1

  1 条记录已选择。

  测试全部正常,退出

C:/>db2 connect reset

DB20000I SQL 命令成功完成。

C:/>db2 terminate

DB20000I TERMINATE 命令成功完成。