我的不同环境有三个不同的数据库(hsprd
,hstst
,hstrn
)。 hsprd
是我的生产环境,包含实时数据。
经常会有一个请求将生产数据恢复到hstrn
或hstst
。我通常运行此命令(停止后,然后删除数据库):
db2 restore db hsprd taken at 20140331180002 to /dbs into hstrn newlogpath /dbs/log/hstrn without rolling forward;
运行时,我会收到以下消息:
SQL2537N Roll-forward is required following the Restore.
有人可以建议如何解决这个问题吗?
感谢。
编辑:我的备份在这里:
(/home/dbtmp/backups)> ll
total 22791416
-rwxrwxr-x 1 hsprd cics 11669123072 Mar 31 18:03 HSPRD.0.hsprd.NODE0000.CATN0000.20140331180002.001
恢复数据库并省略without rolling forward
后,我在尝试查询数据库时收到此消息:
SQL1117N A connection to or activation of database "HSTRN" cannot be made
because of ROLL-FORWARD PENDING. SQLSTATE=57019
当我尝试前滚时,使用此命令,我收到此响应:
(/home/dbtmp/backups)> db2 rollforward db hstrn to end of backup and complete;
SQL4970N Roll-forward recovery on database "HSTRN" cannot reach the specified
stop point (end-of-log or point-in-time) on database partition(s) "0".
Roll-forward recovery processing has halted on log file "S0006353.LOG".
答案 0 :(得分:1)
第一个错误表明您正在恢复必须前滚的在线备份。或者,使用脱机备份映像,然后您可以包含without rolling forward
选项。
第二个错误意味着您需要先发出ROLLFORWARD
命令,然后才能使用从在线备份恢复的数据库。
最后,第三个错误意味着ROLLFORWARD
命令无法找到成功所需的日志。假设日志包含在备份映像中,您需要在LOGTARGET
命令上指定RESTORE
选项以提取它们,大概是NEWLOGPATH
位置。