现在的位置: 首页 > 综合 > 正文

DB2 在线增量备份数据库、还原增量备份数据库、前滚恢复数据库脚本

2018年04月26日 ⁄ 综合 ⁄ 共 2149字 ⁄ 字号 评论关闭
--DB2 在线增量备份数据库、还原增量备份数据库、前滚恢复数据库脚本--彭建军
--2007-4-19 15:01
--说明:在线增量备份前提:
--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 命令成功完成。

抱歉!评论已关闭.