SQL数据库处于怀疑模式

我发现数据库在

Suspected Mode ...... 

我如何从这个模式中恢复它。

通过SQL Server错误日志查找数据库进入SUSPECT模式的原因。基于数据库进入可疑模式的原因,可以确定下一步的行动。

最简单的方法是从备份中恢复。

  1. 首先查看SQL Server日志中的企业pipe理器(EM)。 为了达到这个目的,启动EM并从数据库服务器上向下钻取…pipe理… SQL Server日志。 应该有多个以Current开始的日志,然后是6个或更多的存档日志。

  2. 查看所有最近的错误日志。 这里将会有一个迹象表明数据库为什么被标记为可疑。 您需要先解决问题(即丢失文件,权限问题,硬件错误等)

  3. 然后,当问题得到解决,你要么确定数据是正常的,要么没有备份,所以你没有什么损失,然后将数据库状态更改为正常,并重新启动SQL Server。

  4. 要更改数据库状态,我们将使用以下存储过程:sp_resetstatus。 步骤如下:

    一个。

     USE master GO sp_configure 'allow updates', 1 GO RECONFIGURE WITH OVERRIDE GO 

     sp_resetstatus GO -- Example: sp_resetstatus 'Washington' 
  5. 过程运行后,立即禁用对系统表的更新:

     sp_configure 'allow updates', 0 GO RECONFIGURE WITH OVERRIDE GO 
  6. 停止并重新启动所有SQL Server服务

  7. 如果数据库仍然回到可疑模式,并且无法修复原来的问题,并且没有最近的备份,则可以通过将数据库置于紧急模式中,从而获取信息。 如果你这样做,用DTS提取数据/对象并重build数据库。 请注意,数据可能已损坏或事务不一致。 除了将数据从数据库中提取外,您将无法使用该数据库实例。

  8. 发出以下命令将数据库置于紧急模式:

    一个。

     USE master GO sp_configure 'allow updates', 1 GO RECONFIGURE WITH OVERRIDE GO 

     UPDATE master..sysdatabases SET status = 32768 WHERE name = 'DatabaseName' 
  9. 停止并重新启动所有SQL Server服务。

  10. 现在我们准备好将任何可以从损坏的数据库中删除的数据提取出来。 请记住,某些表可能已损坏,因此您可能需要使用各种T-SQL语句来获取数据。 首先尝试DTS …

  11. 这些是将数据从损坏的数据库导出到新数据所必需的步骤:

    一个。 创build一个新的生产数据库,或一个临时数据库,有一个地方导出我们可以从损坏的数据库中的任何数据。

    湾 进入EM并深入到“数据转换服务”…“本地软件包”,启动DTS操作。

    C。 通过右键单击打开一个新的DTS包…

    d。 当DTS打开时,从连接图标中select“复制SQL Server对象任务”。 input类似“导出损坏的数据”的描述。 在下拉菜单中inputSA / pass组合以及CORRUPT数据库。

    即 select“目标”选项卡。 ”。 从下拉菜单中inputSA / pass组合以及PRODUCTION数据库。

    F。 select“复制”选项卡。 取消选中“创build目标对象”框。 UNCHECK“复制所有对象”框,然后单击“select对象”button。 这会popup“select对象”屏幕。

    G。 仅检查“显示所有表格”,如上所示。 然后检查每个需要导出的表格。 如果需要导出所有表格,请点击“全选”button。 点击OK。

    **如果要恢复所有对象,请选中所有对象,选中它们,然后单击“全选”button。 这将抓住一切可能。

    H。 再次点击确定,我们完成了这个任务。 现在我们通过点击菜单栏上的绿色箭头执行包。

  12. 还原数据问题:将数据还原到生产数据库取决于一天中的什么时间。 如果是在“热”时期,高播放时间,则在缓慢的时期或游戏日结束时恢复数据!

如果要调用Microsoft Tech技术支持,build议将日志文件准备好通过电子邮件发送给技术人员进行审阅。 完成这个过程如下:

  1. 转到位于SQL Server安装文件夹下的Bin文件夹。 在这个文件夹中,您将find一个名为SQLDIAG.exe的应用程序。

  2. 执行SQLDIAG.exe。 这个应用程序是“假设”将所有日志文件压缩到SQL Server安装文件夹下的日志文件夹中名为SQLDIAG.txt的文件中。 这个操作不适合我们。

  3. 我们直接进入SQL Server的日志文件夹并使用PKZip压缩文件。 然后,我们直接发邮件给技术人员。

山姆,你有什么版本的SQL? 在2005年和2008年更新master数据库是不允许的。 如果您没有完全备份,则需要执行以下操作:在SQL Server日志中确定问题后,请根据您的情况, 在 这里和这里查看信息。