定时在线备份DB2数据库(Windows)

1.要进行在线备份,需要修改相应的参数,修改之后数据库处于暂挂状态,需要做一次离线备份:
 db2 update db cfg for maxdb71 using logretain on (打开归档日志)
 此时不能连接数据库:SQL1116N  由于 BACKUP PENDING,不能执行连接或激活数据库 "DBTEST"。SQLSTATE=57019
 db2 backup db maxdb71 TO D:\DB_backup(离线备份)
 db2 update db cfg using logarchmeth1 disk:d:\DB_backup\log(指定归档日志存放路径)
2.脚本准备:db2backup.bat
rem 设置日期
set "riqi=%date:~0,4%%date:~5,2%%date:~8,2%"
rem 设置路径
set "lujing=D:\DB_backup\%riqi%"
rem 创建目录
mkdir %lujing%
rem 在线备份,日志为backup.log
db2cmd.exe  -c -w -i db2 backup db maxdb71 user maximo using password online to %lujing% >>%lujing%\backup.log
rem 压缩备份文件,生成XXXX.rar的文件
"C:\Program Files\WinRAR\WinRAR.exe" a -r %lujing%.rar %lujing%\
注意:(1)使用set设置环境变量时,请加上双引号,以避免空格、分号这类的无心之过;(2)rem为注释;(3)记得测试哦~
3.设置定时执行:
我们利用Windows的"任务计划"功能定时执行脚本。开始-->所有程序-->附件-->系统工具-->任务计划-->添加任务计划, 在浏览中找到我们要执行的脚本db2backup.bat,然后设置执行周期,这样就OK了!!
----------------------------------------------
  问题整理:
1.备份时提示信息为:拒绝访问 此时有可能是因为设置环境变量时不小心加了空格或者其他符号,将其删除即可!!
2.执行脚本后,发现备份不成功,但生成了脚本文件backup.log,内容为:
   SQL2413N  不允许联机备份,因为没有激活用于前滚的日志保留或用户出口,或者是因为备 份暂挂条件正在对数据库起作用。
  此时需要进行一次离线备份,即可以进行在线备份。

猜你喜欢

转载自zlhroar.iteye.com/blog/2153520