
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)、备注:
同样,对每个节点都做这个 *** 作。
二、恢复(RESTORE)数据库:
1、新建数据库:
在一般管理工具, 创建数据库(别名要和原来的数据库别名一致)。
2、恢复数据库:
1):断开连接:将网络断开,切断所有的客户连接,如果不行,先重启。(如果有客户端连接到DB2服务器,恢复不行的,包括控制中心)
2):恢复离线备份。
3、恢复在线备份:
1)、恢复。恢复命令为:db2 restore database DBName from C:\Temp taken at 20090622164642
2)、前滚。前滚命令为:db2 rollforward db DBName to end of logs(或者:控制中心->所有数据库->dbname ->右键->前滚)
3)、停止前滚。停止前滚命令为:db2 rollforward db DBName stop(或者:控制中心->所有数据库->dbname ->右键->停止前滚)
备份文件中备份的是开始点数据库的一切数据,备份的时候数据变更会记载在日志里。通过恢复数据库和前滚日志的方式可以把数据恢复到备份后的状态。恢复的方法是:1》db2restoredb数据库名logtarget日志解压位置2》db2rollforwarddb数据库名toendoflogsandstopoverflowlogpath(“日志解压位置”)是需要把生产的归档日志都copy到测试环境中前滚,活动日志不需要copy1. 如何恢复误删的表使用recover dropped table功能即可
要求是: 误删的表建立且数据注入之后,有该数据库的备份
通过db2 list history dropped table all for dbname找到误删表的Backup ID以及该表的DDL语句
恢复误删表所在表空间 db2 restore db dbname tablespace(tbspname) taken at xxxx
在前滚中指定误删表 backup id,输出表数据
db2 rollforward db dbname to end of logs tablespace(误删表所在表空间名字) recover dropped table backup id to /home/db2inst
在/home/db2inst目录下的node0000目录下有一个data文件,是误删表的数据
通过DDL重建表,并使用LOAD将DATA文件导入表中即可.
没有做过备份的话,如果你拷贝的文件夹完整的话(既有元数据,又有数据库数据),可以uncatalog db dbname,然后将拷贝的文件夹拷贝回来,并catalog db dbname就可以了.
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)