2014-04-01 68 views
1

我有三个不同的数据库用于我的不同环境(hsprd,hstst,hstrn)。 hsprd是我生产环境中的实时数据。恢复后需要前滚

每隔一段时间都会有一个请求将生产数据恢复到hstrnhstst。我通常运行此命令(停止,然后丢弃DB后):

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

错误消息中是否有某些内容似乎令人困惑? – mustaccio

+0

我应该已经更清楚了,我在完成恢复后添加了我的发现,@ mustaccio。 – etm124

+0

我认为其他错误信息同样清楚。它可能有助于阅读错误说明:'db2 \? SQL1117N' – mustaccio

回答

1

第一个错误表明您正在还原一个必须前滚的联机备份。或者,使用脱机备份映像,然后可以包含without rolling forward选项。

第二个错误意味着您需要先发出ROLLFORWARD命令,然后才能使用从联机备份中恢复的数据库。

最后,第三个错误意味着ROLLFORWARD命令无法找到所需的日志以使其成功。假设日志包含在备份映像中,则您需要在RESTORE命令中指定LOGTARGET选项来提取它们,推测可能是NEWLOGPATH位置。