Chinaunix首页 | 论坛 | 博客
  • 博客访问: 670557
  • 博文数量: 102
  • 博客积分: 2241
  • 博客等级: 大尉
  • 技术积分: 1670
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-08 10:08
文章分类

全部博文(102)

文章存档

2013年(6)

2012年(15)

2011年(81)

分类: DB2/Informix

2012-07-03 13:36:36


db2 数据库重定向恢复


有时候在只有一个备份的数据库文件,
不知道原始库日志路径、表空间容器路径等情况下从备份文件中找出相关信息

示例从备份库路径/db2data/test1,恢复到另一台机器的/db2log/test1上


------------------------------------------------------------------
生成重定向恢复的脚本

db2 restore db from . taken at 20120607164057  REDIRECT GENERATE SCRIPT rest1.sh

参数 REDIRECT GENERATE SCRIPT rest1.sh 指定生成恢复脚本


文件开始处恢复语句里的
-- ON '/db2data/test1'
-- DBPATH ON ''
-- NEWLOGPATH '/db2data/test1/db2admin/NODE0000/SQL00001/SQLOGDIR/'
3个值是备份的数据库实际使用的路径,按需修改成新路径并取消注释
   ON '/db2log/test1'
   DBPATH ON '/db2log/test1'
   NEWLOGPATH '/db2log/test1/log'


文件末会列出自定义的表空间容器路径,按需修改路径或改成裸设备



------------------------------------------------------------------


以下是修改后的脚本

db2 restore db from . taken at 20120607164057 on /db2log/test1 dbpath on /db2log/test1 newlogpath /db2log/test1/log redirect

db2 "set tablespace containers for 3 using (File '/db2log/test1/tab1.dbf' 51200) "
db2 "set tablespace containers for 4 using (File '/db2log/test1/tab2.dbf' 25600) "
db2 "set tablespace containers for 5 using (PATH '/db2log/test1/usertemp1' ) "
db2 "set tablespace containers for 6 using (device '/dev/rTEST_01' 262000,  device '/dev/rTEST_02' 262000 )"

db2 restore db continue


执行后恢复成功。


其它注意:

  在要还原的机器上创建相同的组、用户
  /etc/security/limits 里用户限制
  db2set 环境变量修改

  代码页不同,检查 db2set -all 结果新旧机器上的不同,
    修改 db2set db2codepage=1386, db2 terminate 刷新后生效。

  恢复后,数据库软件版本比备份库上新,会升级数据库。自动升级出错后手工执行升级
    db2 upgrade db

  恢复完成后不能连接,提示处于 ROLL-FORWARD PENDING 状态
    db2 ROLLFORWARD DATABASE / TO END OF LOGS AND COMPLETE

在备份数据库时使用 db2pd -db -tablespaces
列出并保存全部表空间和容器类型、路径信息,在恢复时可直接使用

阅读(11515) | 评论(0) | 转发(0) |
0

上一篇:linux samba 使用备忘

下一篇:CPU降温

给主人留下些什么吧!~~