风影子
作者风影子·2013-01-30 12:08
数据库管理员·深圳

第一次进行备份及恢复

字数 1007阅读 2545评论 8赞 0
 某二级企业一系统运行很慢,同事在公司需要搭建一个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
这一步不理解,我做个数据恢复,为什么表还会被挂起呢,也懒得去研究了。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论8 条评论

1523626069815236260698研发工程师南京某软件科技公司
2013-03-12 10:46
全量备份、增量备份。
cjsdb2cjsdb2项目经理bs
2013-03-08 10:50
最好在恢复后马上做个备份。
风影子风影子数据库管理员深圳
2013-02-20 09:16
嗯,明白了,谢谢各位。
itsbeginitsbegin软件开发工程师上海通联支付
2013-02-17 10:54
LOAD模式会出现完整性检查的问题,进行CHECK后可以恢复,不是问题。总比IMPORT要快
czbankadminczbankadmin软件开发工程师浙商银行
2013-02-05 10:33
改嘛!使用export的模式导出表在load进去好了。
风影子风影子数据库管理员深圳
2013-02-04 14:52
lisp2009: 因为你是做的load操作,db2inst1.JIVETHREADPROP该表应该是有约束,因此要做完整性检查才能用。
具体要怎么弄呢?
lisp2009lisp2009数据库管理员浙商银行
2013-01-31 13:00
因为你是做的load操作,db2inst1.JIVETHREADPROP该表应该是有约束,因此要做完整性检查才能用。
wangqiwangqi软件开发工程师北京传诚科技有限公司
2013-01-30 13:42
喜欢做总结是个好习惯
Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广