SQL Server在恢复中显示数据库


23

如今,电源故障后,一个数据库(恢复:完整)在SSMS中显示“正在恢复”。所以:

myDatabase(恢复中)(数据库状态:恢复,关闭)

完成后,“恢复过程”数据库将显示名称myDatabase,而不显示“(恢复中)”。我以为问题已解决,但事实并非如此。

当我启动使用该数据库的应用程序时,额外的文本“(正在恢复)”再次出现在数据库名称旁边。

我一直等到“恢复过程”完成,然后将数据库脱机并恢复在线。

我重新启动服务器,重新启动计算机,当我的应用程序运行时,多余的文本再次出现。在SQL Server日志中,消息“正在启动数据库'myDatabase'”出现几次。该数据库似乎正在运行,因为我可以插入数据,但是状态表明发生了某些事情。

服务器日志未显示任何有趣的内容。唯一的异常是我有30条“正在启动数据库'myDatabase'”。

我知道服务器启动时,每个数据库在准备使用之前都要经过恢复。但是在我的情况下,数据库联机然后显示“ myDatabase(正在恢复)”。如果我关闭该应用程序,数据库将进入状态:正常。这真让我抓狂。

我什至安装了SQL Server的新实例,并将旧数据库“ myDatabase”放在上面。问题仍然存在。

当我运行此查询时:

SELECT databasepropertyex('nyDatabase', 'STATUS')

它显示了正在恢复,在线,可疑以及返回到在线然后恢复等。

Answers:


2

社区Wiki答案最初由其作者保留为对该问题的编辑:

问题是AutoClose已设置数据库属性。

解决方案是设置AutoClose为false。


16

我不确定这是否可以解决问题,但是您可以试一试。

跑:

RESTORE DATABASE YourDatabase WITH RECOVERY

查看上面是否使数据库退出恢复模式。如果不是这样,那么问题可能出在其他地方。

您可以尝试使用以下命令来查看数据库是否损坏吗?

DBCC CHECKDB ('YourDBname') WITH NO_INFOMSGS, ALL_ERRORMSGS

如果它检测到损坏,则可能要使用以下命令修复数据库 DBCC CHECKDB


6

每当您使数据库联机时,该数据库都会经历恢复过程。不过,您对问题的措辞让我有些困惑。除了将数据库置于脱机状态之外(您是由于原始电源故障,还是已使其脱机然后再次联机),您是否看到数据库随时都可以恢复?如果是这样,则由于其他原因数据库将脱机。最好检查SQL Server日志以查看发生了什么。

您还应该检查Windows事件日志中是否有磁盘故障之类的信息。在正常操作期间,数据库不应该正在启动并要恢复。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.