开发者社区 问答 正文

ECS Windows SQL Server 2008还原数据库导致处于"还原状态"的解决方法


Windows mssql2008在执行还原数据库操作时,数据库一直处于还原状态,导致数据库无法正常连接,一般是因为选择了 with norecovery 项导致,如下图中的选项:

1  选择 RECOVERY 选项,SQLSERVER 回滚数据库会提交所有未完成的事务,以保证数据库的一致性。还原完成数据库处于可用状态。
2  选择 NORECOVERY 选项,SQLSERVER 回滚数据库不提交所有未完成的事务,可以后续继续还原。还原完成数据库处于正在还原状态,为了保证能后续还原。
在还原过程中,数据库还原意外中断,会使数据库处于 NORECOVERY,数据库会让用户继续还原。这时只要提交事务就可以了。数据库可以处于正常模式,但是数据是不完成的,需要重新还原。
遇到正在还原的状态,如下图:

可以在新建查询里面执行  RESTORE database aa with recovery         (此处的  aa  指的是对应的数据库名称)

最后刷新数据库后,数据库状态即恢复正常。


如果问题还未能解决,请联系 售后技术支持

展开
收起
boxti 2017-11-03 10:01:29 2065 分享 版权
阿里云 AI 助理回答

您描述的情况非常准确,当在Windows平台上使用SQL Server 2008进行数据库还原操作时,选择NORECOVERY选项确实会导致数据库保持在“正在还原”的状态,这是为了支持后续的事务日志备份应用(即时间点恢复)或者文件还原等操作。如果您的目的是完成整个还原过程并使数据库立即可用,那么应该在最终的还原命令中使用RECOVERY选项来结束还原序列,确保所有未完成的事务被回滚并提交,从而使得数据库达到一致状态。

您提供的解决方案是正确的:

RESTORE DATABASE aa WITH RECOVERY;

这条命令会作用于名为aa的数据库,执行后会结束当前的还原过程,提交所有回滚的事务,并使数据库变为在线状态,可以正常使用。

如果在执行这个命令之后,数据库仍然没有恢复正常,可能需要检查以下几个方面: 1. 权限问题:确保执行此命令的用户具有足够的权限来恢复数据库。 2. 错误日志:查看SQL Server的错误日志,可能会有更详细的错误信息指示为何恢复失败。 3. 系统资源:确认服务器是否有足够的磁盘空间、内存和CPU资源来完成恢复操作。 4. 一致性问题:如果数据库文件或事务日志文件损坏,可能需要考虑使用更高级的恢复技术或寻求专业帮助。

如果上述步骤都不能解决问题,联系售后技术支持是一个明智的选择,他们能提供更深入的技术诊断和针对性的解决方案。在阿里云环境下,如果您使用的是RDS for SQL Server服务,也可以通过阿里云的管理控制台或客服渠道获取专业的技术支持。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答