db2备份还原[自动备份脚本]

昨天做了个实验,实验证明,不需要所有日志,只需要在线备份期间的活动日志即可恢复数据库,我的实验如下:
我在恢复数据库之后,把数据库日志和归档日志删除,然后在前滚,保证只有include logs里的日志

C:\Documents and Settings\db2admin>db2 create db tt on d:\
DB20000I CREATE DATABASE命令成功完成。


C:\Documents and Settings\db2admin>db2 connect to tt

  数据库连接信息

 数据库服务器 = DB2/NT 9.1.0
 SQL 授权标识 = DB2ADMIN
 本地数据库别名 = TT


C:\Documents and Settings\db2admin>db2 backup db tt online to d:\db2 compress in
clude logs

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


C:\Documents and Settings\db2admin>db2 restore db tt from d:\db2 taken at 201004
29104317 logtarget d:\db2
SQL2539W 警告!正在复原至与备份映像数据库相同的现有数据库。数据库文件将被删除。


要继续吗?(y/n) y
DB20000I RESTORE DATABASE命令成功完成。


C:\Documents and Settings\db2admin>db2 rollforward db tt to end of logs and stop
 overflow log path (d:\db2)

  前滚状态

 输入数据库别名 = tt
 节点数已返回状态 = 1

 节点号 = 0
 前滚状态 = 未暂挂
 下一个要读取的日志文件 =
 已处理的日志文件 = S0000003.LOG - S0000003.LOG
 上次落实的事务 = 2010-04-29-14.25.37.000000 Local

DB20000I ROLLFORWARD命令成功完成

 

注意:在还原的时候必须保证log path (d:\db2)下面没有任何TXT文件,因为日志会被解压到此目录,如果有还原就会失败。

自动备份脚本:

文件db2_backup.bat内容如下(2个脚本必须放在C盘根目录下,否则请修改cd c:\为你的位置):

cd c:\
@echo 连接待备份数据库db_test
db2 connect to db_test
@echo 开始备份数据库db_test到d:\dbbak
db2 backup db db_test online to d:\dbbak compress include logs
@echo 数据库db_test已经成功备份到d:\dbbak
@echo 连接待备份数据库NETDB
db2 connect to netdb
@echo 开始备份数据库NETDB到d:\dbbak
db2 backup db netdb online to d:\dbbak compress include logs
@echo 数据库NETDB已经成功备份到d:\dbbak
exit

 

文件db2_backup_main.bat内容如下:

db2cmd -i -w db2_backup.bat
exit

 

将脚本加入到WINDOWS的计划任务中去,可以设置执行时间等,从而达到自动备份目的。

脚本下载:https://files.cnblogs.com/zjoch/db2_bat.rar

posted @ 2010-09-27 16:13  遥望星空  阅读(2339)  评论(0编辑  收藏  举报