打开logretain、userexit参数:
DB2 CONNECT TO database_name USER user_name USING user_password
DB2 UPDATE DATABASE CONFIGURATION FOR TIMMSUSING LOGRETAIN ON
DB2 UPDATE DATABASE CONFIGURATION FOR TIMMSUSING USEREXIT ON
DB2 BACKUP DATABASE database_alias
DB2 UPDATE DATABASE CONFIGURATION FOR TIMMSUSING LOGRETAIN NO
DB2 UPDATE DATABASE CONFIGURATION FOR TIMMSUSING USEREXIT NODB2 UPDATE DATABASE CONFIGURATION FOR TIMMSUSING ROLL-FORWARD PENDING NO 三、备份数据库
上面的内容着重说明了一下关于备份的一些基础知识,下面就是数据库的备份操作。
1、脱机备份
对于脱机备份只要给出备份映像的存放路径即可实现备份:
BACKUP DATABASE TIMMS TO backup_FilePath WITH vaule BUFFERS BUFFER size
其中:
backup_FilePath:存放备份映像的路径
vaule:使用备份的缓冲池的个数
size:备份数据库使用的缓冲池的大小
例如:
BACKUP DATABASE TIMMS TO D:\\TIMMS.NET.DB\\BACKUP WITH 2 BUFFERS BUFFER 1024
2、联机备份:
在上面的讨论中我们知道要进行数据库的联机备份必须将数据库的配置用户出口参数打开,当参数打开以后,数据库处于备份暂挂状态,此时需对数据库进行一次脱机备份以后数据库才能恢复到活动状态,此后就可对数据库进行联机备份了。
连接备份的命令格式如下:
BACKUP DATABASE TIMMS ONLINE TO backup_FilePath WITH vaule BUFFERS BUFFER size
例如:
BACKUP DATABASE TIMMS ONLINE TO D:\\TIMMS.NET.DB\\BACKUP WITH 2 BUFFERS BUFFER 1024
完成数据库的备份操作。
DB2离线和在线全备、增量备份及恢复的操作步骤
1、离线全备份
1)、首先确保没有用户使用DB2:
db2 list applications for db sample
2)、停掉数据库并重新启动,以便断掉所有连接:
db2stop force
db2start
3)、执行备份命令:(使用TSM作为备份的介质)
db2 backup db sample use tsm
备份成功,将会返回一个时间戳。
4)、检查备份成功:
Db2 list history backup all for sample ,可以看到多了这个备份的纪录。
Db2adutl query命令也可以看到返回值。
5)、备注:
首先对主节点(catalog表空间在的节点)执行备份命令,再对另外的节点也做这个操作。
2、 在线备份:
1)、首先打开一下支持在线备份的数据库配置参数:
db2 update db cfg for sample using userexit on 启用用户出口
db2 update db cfg for sample using logretain on 启用归档日志
db2 update db cfg for sample using trackmod on 启用增量备份功能
(需要各个Node都分别做设置)
开启这些参数后,数据库处于backup pending状态,要求做数据库的离线全备份。做一下离线全备份,参考上面的命令。
2)、在线备份命令如下:
db2 backup db sample online use tsm
备份成功,返回一个时间戳。
3)、同样可以用db2adutl 和db2 list history察看备份纪录。
4)、备注:
同样,对每个节点都做这个操作。
3、 在线增量备份
1)、在开启了必须的三个参数的情况下,做增量备份:
db2 backup db sample online incremental use tsm
备份成功,返回一个时间戳。
2)、同样可以用db2adutl 和db2 list history察看备份纪录。
3)、还有一种delta的备份:
db2 backup db sample online incremental delta use tsm
这两种备份的区别,类似Oracle Exports的Incremental和Cumulative方式,db2的incremental对应oracle的cumulative方式,而db2的delta方式则对应oracle的incremental方式。
4)、备注:
同样,对每个节点都做这个操作。
4、 恢复数据库
1)、手工drop数据库,模拟灾难恢复的情况,执行如下操作:
db2 drop db sample
2)、恢复备份历史纪录(每次backup,不论类型,都会备份历史纪录文件)。这里的时间戳应该是最新的:
db2 restore db sample history file use tsm taken at 20030102223107 buffer 100
3)、使用db2的恢复帮助工具:
db2ckrst -d sample -t 20030101224424 -r database
命令返回建议的必需的恢复操作命令。
4)、按照帮助工具的提示,先做版本恢复,恢复命令如下:
db2 restore db sample incremental use tsm taken at 20030101224424 buffer 100
同样先做主节点的恢复,再做其他节点的恢复操作。
5)、这时数据库处于rollforward-pending state的状态,需要做roll forward 操作:
db2 rollforward db sample to 2003-01-12-13.27.25.000000 on all nodes and stop
前滚到同一个时间点。这个操作要在主节点来做。