说明:在线增量备份前提:
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 for TestDB 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
//但是我的却是:SQL2426N 未对此数据库启用增量备份。确保修改跟踪已激活,并对此数据库执行全备份。
这里首先仍然要运行:db2 backup db TestDB online ,即先做一次在线全备份!!!然后才能在线增量备份
模拟灾难,删除数据库!(注意,此前一定要将归档日志文件备份至另一个路径,保存好)
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 命令成功完成。(责任编辑:卢兆林)