今天,断电后,一个数据库(恢复:满)在 SSMS 中显示"正在恢复"。那么
我的数据库(恢复中)(数据库状态:恢复,关闭)
恢复过程结束后,数据库显示的名称是 myDatabase,而不是 "(恢复中)"。我以为问题已经解决,但事实并非如此。
当我启动使用该数据库的应用程序时,数据库名称旁边又多出了 "(恢复中)"。
我一直等到"恢复过程"结束,然后将数据库脱机并重新联机。
我重新启动了服务器,重新启动了计算机,当我的应用程序运行时,额外的文本又出现了。在 SQL Server 日志中,"Starting up database 'myDatabase'"(启动数据库'myDatabase'")"信息出现了好几次。数据库似乎在工作,因为我可以插入数据,但状态显示发生了一些事情。
服务器日志没有显示任何有趣的内容。唯一不正常的是,我有 30 个"启动数据库'myDatabase'"条目。
我知道,当服务器启动时,每个数据库都要经过恢复才能使用。但在我的情况下,数据库上线后会显示 "myDatabase(恢复中)"。如果我关闭应用程序,数据库就会进入状态:正常。这快把我逼疯了。
我甚至安装了一个新的 SQL Server 实例,并将旧数据库放到上面。问题依然存在。
当我运行以下查询时
SELECT databasepropertyex('nyDatabase', 'STATUS')
它显示正在恢复、在线、可疑,然后返回到在线,再恢复,如此反复。
我不确定这是否有助于解决问题,但你可以试一试。
运行:
RESTORE DATABASE YourDatabase WITH RECOVERY
查看上述操作是否使数据库脱离恢复模式。如果没有,那么问题可能出在其他地方。
能否试试下面的命令,看看数据库是否损坏?
DBCC CHECKDB ('YourDBname') WITH NO_INFOMSGS, ALL_ERRORMSGS
如果检测到数据库损坏,则可能需要使用 DBCC CHECKDB
修复数据库。