某二级企业一系统运行很慢,同事在公司需要搭建一个DB2测试环境,并把现场数据导入进行测试以定位问题,于是找到我。数据库是DB2 8.1,操作系统是SUSE Linux 9,因为没有 linux 8.1 for linux的软件,只好考虑在windows上搭建测试环境。
之前对DB2基本不了解,只是以前写程序时曾有个项目使用过,因此DB2备份恢复这块都需要找资料研究一下。看了一下现有的备份脚本是用backup命令做的数据库全备,每天一次,考虑到是不同平台的恢复,所以没打算研究这个数据库级别的恢复。于是又查了些资料终于算是顺利解决了。
1) 源数据库
db2look -d ftdb -e -o dbinstructure.ddl
这里是将数据库ftdb的ddl语法
2) 源数据库导出表
db2move ftdb export
请检查是否有错误信息,确保所有表都是成功的
这里是导出ftdb数据库中表的数据,就在这里我折腾了好久,db2move.lst这里记录了导出的列表对应关系,在恢复时总发现只恢复了极少数的表,最后才发现db2move.lst这里的列表少了,最后按下面这个文章的操作加了个-aw参数就解决了
http://www.db2china.net/home/space.php?uid=36097&do=blog&id=13602
3) 新数据库
db2 create db ftdb
db2icrt ftinst
set db2instance=ftinst
db2set db2instance
4) 新数据库,创建空表
db2 -stvf dbinstructure.ddl > output
检查运行情况,如果有错误,db2会停止继续执行,排除错误,然后drop新数据库,从第三步重新开始建立一个新的数据库,然后重新运行第四步,确保没有任何错误
5) 新数据库倒入表
db2move ftdb load -lo insert
检查提示,确保所有表都是导入成功的
6)查出所有被挂成的表,
每个被挂起的表执行:set integrity for db2inst1.JIVETHREADPROP immediate checked这一步不理解,我做个数据恢复,为什么表还会被挂起呢,也懒得去研究了。
添加新评论8 条评论
2013-03-12 10:46
2013-03-08 10:50
2013-02-20 09:16
2013-02-17 10:54
2013-02-05 10:33
2013-02-04 14:52
2013-01-31 13:00
2013-01-30 13:42