DB2连机备份数据库,并用备份文件还原创建一个新的数据库问题.可能是简单问题,但真正懂的人可能很少.希望会的与不会的一起来交流!
先说我所操作全过程,
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"
大家看看问题出在那里?