sql server 2012重启后进入恢复模式需要很长时间

时间:2015-03-11 07:59:10

标签: sql-server-2012 recovery disaster-recovery

重启服务器后,其中一个数据库进入模式In recoverylog size is 117 Gig

当我查看errorlo时,最后一条消息是:

  

2015-03-11 11:27:43.04 spid36s恢复数据库'XXXx_DW'(10)   完成3%(剩余大约114050秒)。第2阶段3。   这仅是一条信息性消息。无需用户操作。

唯一的解决方案是等待..? 如果我将最新备份还原到数据库会发生什么 它会上线还是不上线? 任何建议表示赞赏

2 个答案:

答案 0 :(得分:2)

首先我想问一下,当你重新启动SQL Server时,你确定没有工作正在运行,没有长时间运行的事务,没有用户正在运行某些事务?

如果你错过了上述观点,我会说你不知道如何关闭SQL服务器,特别是生产服务器。

当你关闭SQL Server时,所有的机上交易都会被停止/取消,当数据库上线时,会发生SQL Server崩溃恢复,这就是消息中发生的事情

  

恢复数据库' XXXx_DW' (10)完成3%

恢复有三个阶段分析,重做和撤消。只有在完成所有三个恢复阶段后,才能访问数据库completely。在快速恢复(即企业功能)中,数据库在REDO阶段后联机。是的,你唯一的解决方案是等待所有这些阶段都需要使数据库处于一致状态,除非它发现自己处于一致状态,数据库不会上线

  

如果我将最新备份还原到数据库

会发生什么

此时数据库处于恢复状态时,由于锁定并且不允许访问,因此您无法对其执行恢复。您可以使用不同的名称恢复备份,但我不认为这样做有任何好处。

故事的道德:不要盲目重启服务器。

答案 1 :(得分:0)

如果您长时间以来一直处于“处于恢复模式”,则需要采取以下步骤:

注意:在执行以下步骤之前,您需要先将数据库备份到目标位置,然后才能执行以下步骤。

  1. 转到数据库的物理位置。即我的数据库名为Optimistic.mdf和Optimistic.ldf,请检查其日期和时间。

  2. 如果发现正常,则转到mssql服务并停止您的实例服务。即,实例名称为default-> MSSQL或对于命名实例->让我们考虑robocom(我的实例名称,您的实例名称会有所不同因此请检查)。现在停止该服务。

  3. 从物理位置复制数据库,并将其粘贴到其他位置,例如文件夹或其他驱动器之外。在我的情况下,我将有问题的数据库的所有2个mdf和ldf文件都复制到了文件夹之外(因为文件夹位置已经与sql server相关联。因此它将保持安全。

  4. 现在再次转到已存在问题的数据库所在的物理位置,并一一删除两个mdf和ldf文件。

  5. 刷新该文件夹,然后将您安全保存的数据库剪切到另一个位置,然后将其粘贴到已删除的位置。

  6. 启动已停止的Sql Service。

  7. 启动SQL Management Studio并刷新它。

希望您的“处于恢复”模式下的问题能够解决...仅当您长时间处于恢复模式时才应用此解决方案。谢谢...