【彭建军】DB2 在线增量备份数据库、还原增量备份数据库、前滚恢复数据库脚本

上一篇 / 下一篇  2008-06-19 10:17:42 / 个人分类:IBM

-------------------------------------------------------------------------------
--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 命令成功完成。


TAG: db2 数据库 增量备份

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

我的栏目

日历

« 2008-08-22  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 11578
  • 日志数: 110
  • 建立时间: 2008-03-27
  • 更新时间: 2008-06-24

RSS订阅

Open Toolbar