加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

DB2备份和恢复

(2008-07-11 06:53:52)
标签:

杂谈

分类: 工作
 
补了些数据库的东西,很多事总指着别人尽心尽力总不现实,自己整点,也能睡得踏实些.
 
B数据库,开启归档模式每天进行完全备份.
nohup db2 "backup db b online use tsm include logs " && db2 "backup db doc online  use tsm include logs" && db2 "backup db bflow online use tsm include logs"
启用cron每天用TSM进行备份.
恢复:
无日志前滚恢复:
db2 create database B on /db/B/ using codeset gbk territory cn collate using system  
 
// codeset 要与原数据库一致,有的用utf-8,在原数据库上用 db2 get db cfg for B 查看
 
 db2 restore db B use tsm taken at 20080627225907 to /db/B into B redirect without rolling forward
 
// use tsm是用TSM备份来恢复,本地可在改为 from /db/backup/
 
 db2 "set tablespace containers for 0 using (path'/db/B/db2inst1/NODE0000/SQL00001/SQLT0000.0')"
 db2 "set tablespace containers for 2 using (path'/db/B//db2inst1/NODE0000/SQL00001/SQLT0002.0')"
db2 "set tablespace containers for 3 using (path'/db/B/db2inst1/NODE0000/SQL00001/SQLT0003.0')"
db2 "set tablespace containers for 4 using (path'/db/B/db2inst1/NODE0000/SQL00001/SQLT0004.0')"
db2 "set tablespace containers for 5 using (path'/db/B/db2inst1/NODE0000/SQL00001/SQLT0005.0')"
 db2 "set tablespace containers for 6 using (path'/db/B/db2inst1/NODE0000/SQL00001/SQLT0006.0')"
db2 "set tablespace containers for 7 using (path'/db/B/db2inst1/NODE0000/SQL00001/SQLT0007.0')"
 db2 "set tablespace containers for 8 using (path'/db/B/db2inst1/NODE0000/SQL00001/SQLT0008.0')"
 
//db2 list tablespaces show detail 查看tablespace的信息,然后用 db2 list tablespace containers for N 查看container信息
 
db2 restore db B continue
带日志前滚恢复:
db2 restore db B use tsm taken at 20080627225907 to /db/B into B redirect
......
db2 "rollforward db B to end of logs and stop overflow log path ('/db/b/log/')"
 
简单用sample进行备份和恢复操作时,并不需要手工建这些containers.
 
在原32位的linux安装V8.1版本数据库,迁移到64位linux并升级到V9.1 恢复过程一致并无报错,但log里出现一些warning,咨询IBM,答复没问题.
测试过程中会遇到drop一个已经建立的库时报找不到库表文件, db2 uncatalog db B,再drop.
 
一个涉及开发的小问题,记录一下:
 
DB2升级后JDBC取元数据(如调用getSchemas()、getTables()等方法)时会有报错,DB2下用JDBC取元数据可能遇到 CLI -805错误,这是由于DB2升级某一FixPack后产生的问题,需要手工重新绑定schema,此问题IBM一直没修复,存在于所有后续FixPack中
解决:在安装DB2的主机上执行如下命令,重新绑定schema
db2 terminate
db2 connect to <database-name>
db2 bind db2主目录/sqllib/bnd/db2schema.bnd blocking all grant public sqlerror continue
db2 terminate
 
太多不懂的东西了,暂时做个兴趣,补习一点是一点吧
 
14日补记:上面的东西是按28日记忆写的,有很多问题.
1.在线备份 backup online是可以日志前滚的,脱机冷备恢复不能用日志前滚;
2.脱机冷备可以用来跨版本恢复,从v8备份出来的文件可以restore V9版本,但在线备份文件不可以跨版本恢复.
SQL2547N  The database was not restored because the backup image is from a
previous release and requires rollforward recovery.

 

0

阅读 收藏 喜欢 打印举报/Report
前一篇:不看球了
后一篇:电影
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有