DB2连机备份数据库,并用备份文件还原创建一个新的数据库问题.可能是简单问题,但真正懂的人可能很少.希望会的与不会的一起来交流!

LANTE80 LANTE80 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
先说我所操作全过程,

1.创建一个数据库TEST1

2.修改日志类型为归档日志类型
db2 update db cfg for test1 using logretain on;--归档日志
db2 update db cfg for test1 using logretain on;--用户出口
3.全备份数据库(修改日志类型后一定要做一次备份开可以使用)
  db2 backup db test1
4.停止数据库
  db2stop 
5.启动数据库
db2start
6.开始在线备份一个数据库:
  我使用了两种方式:
  1.db2 backup db test1 online to /doc/work/dbback include logs
这种方法可以把日志文件直接备份到备份文件中,在V9.5版本支持,在网上找的,
  2.db2 backup db test1 online to /doc/work/dbback
7.还原备份文件生成新的数据库.
  1.db2 restore db test1 from /doc/work/dbback to /doc/work/newtest into test2 logtarget /doc/work/logdata redirect

2. db2 restore db test1 from /doc/work/dbback to /doc/work/newtest into test2 呢newlogpath /doc/work/logdata redirect

以上分别对应两种方式的备份来还原
8.重新设置容器

9.db2 restore db test1 continue

10. db2 rollward db test2 to end of logs and stop

对应第二种方法在执行这步前把原数据下的日志文件全部拷贝到/doc/work/logdata 目录下





以上是我测试的步骤.但都是到最后一步执行后就出错.

第一种方法的错误信息为:
   SQL2162N:ROLLFORWARD operation failed because db2 does not have permission to access log file "s00000002.log" for database "test2" on node "0"

第二种方法的错误信息为:
   SQL2168N:ROLL_FORWARD recovery stoped due to error "24" while retrieving log file "s00000002.log" for database "test2" on node "0"



大家看看问题出在那里?



...全文
评论 3
收藏 已收藏
分享
返回顶部
LANTE80
DB2 5,886 成员 11,654 内容