首页 > 解决方案 > 数据库不断进入恢复挂起状态

问题描述

我有一个 SQL 服务器数据库,它在我的机器上运行了大约 6 个月,几天前突然无法访问(等待恢复)。

我做了一堆谷歌搜索,并尝试了以下方法来解决问题,但到目前为止,从以前的备份中恢复它似乎是唯一可行的方法。

我尝试过(来自 SMS 和 SQLCMD):

  1. ALTER DATABASE mydatabase SET EMERGENCY
  2. ALTER DATABASE mydatabase set single_user
  3. DBCC CHECKDB (mydatabase, REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS;
  4. ALTER DATABASE mydatabase set multi_user

第 3 步错误:“无法打开我的数据库已经打开,一次只能有一个用户”

第二次尝试:

  1. EXEC sp_resetstatus 'mydatabase';
  2. ALTER DATABASE mydatabase SET EMERGENCY
  3. DBCC CHECKDB ('mydatabase')
  4. ALTER DATABASE mydatabase SET SINGLE_USER WITH ROLLBACK IMMEDIATE
  5. DBCC CHECKDB ('mydatabase', REPAIR_ALLOW_DATA_LOSS)
  6. ALTER DATABASE mydatabase SET MULTI_USER

步骤#5 出现同样的错误。

我的问题是,首先可能是什么导致了这种情况,我怎样才能正确地修复它,而不必每天进行两次恢复。

标签: sql-servertsqlsql-server-2012

解决方案


首先可能是什么导致了这种情况,我怎样才能正确修复它而无需进行恢复

最可能的原因是硬盘的硬件或驱动程序问题。


推荐阅读