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) |