DB2备份与恢复

一、离线全备
①     连接一个已建立好的数据库,做一个离线的全备。
命令:DB2 CONNECT TO DATABASE_NAME
这时会显示数据库连接信息。
②     显示数据库应用状态:
       命令:DB2 LIST APPLICATIONS
③     停掉数据库应用:
       命令:DB2 FORCE APPLICATIONS ALL
④     做离线(全备)备份:
       命令:DB2 BACKUP DATABASE DATABASE_NAME TO E:
说明:将数据库DATABASE_NAME备份到E:盘
⑤     查看备份历史记录:
       命令:DB2 LIST HISTORY BACKUP ALL FOR DATABASE_NAME

  二、在线的备份
如果要做在线的备份,要对两个参数做修改:USEREXIT和LOGRETAIN,将其修改为ON,他们默认是OFF的,默认使用循环日志模式,修改完参数后,可以变为归档日志模式,启用了userexit做数据库日志的归档。

linux查看命令: 
db2 get db cfg for xcldb|grep "USEREXIT"
db2 get db cfg for xcldb|grep "LOGRETAIN" 
db2 get db cfg for xcldb|grep "TRACKMOD"
Windows下的查看命令: 
db2 get db cfg for xcldb|find /I "userexit" 
db2 get db cfg for xcldb|find /I "logretain" 
db2 get db cfg for xcldb|find /I "trackmod"

配置参数,使数据库变为归档日志模式,默认为循环日志模式,不支持联机备份
db2 update db cfg for xcldb using userexit on //启用用户出口
db2 update db cfg for xcldb using logretain on //启用归档日志   
db2 update db cfg for xcldb using trackmod on //启用增量备份功能

数据库变为 Backup pending 状态,需要离线备份一次 
db2 backup db gabz to /db2bak

连接数据库
db2 connect to gabz

进行在线的全备份:
db2 backup database gabz online to /db2bak

在线的差异备份,也可以用增量备份:
db2 backup database gabz online incremental ddelta to /db2bak


恢复完全备份
①     查看备份历史记录:
       命令:DB2 LIST HISTORY BACKUP ALL FOR DATABASE_NAME
②     恢复某个时间点的数据
       命令:DB2 RESTORY DATABASE DATABASE_NAME FROM E: TAKEN AT DATE_TIME
       说明:DATABASE_NAME—数据库名称;E:--表示备份文件的位置;DATE_TIME—备份的时间戳
③     回滚到日志结束:
       命令:DB2 ROLLFORWARD DATABASE_NAME TO END OF LOGS AND STOP
四、恢复增量备份数据
①     连接数据库
命令:DB2 CONNECT TO DATABASE_NAME
②     查看所有应用
命令:DB2 LIST APPLICATIONS
③     停掉所有应用:
命令:DB2 FORCE APPLICATION ALL
④     恢复增量备份
命令:DB2 RESTORE DATABASE DATABASE_NAME INCREMENTAL AUTOMATIC FROM E: TAKEN AT DATE_TIME
说明:DATABASE_NAME—数据库名称; E:--备份文件位置;DATE_TIME—增量备份时间戳
⑤     回滚到日志结束:
命令:DB2 ROLLFORWARD DATABASE DATABASE_NAME TO END ON LOGS AND STOP




请使用浏览器的分享功能分享到微信等