SQL 数据库处于可疑模式

SQL 数据库处于可疑模式

我发现数据库位于

Suspected Mode ......

我怎样才能从该模式中恢复它。

答案1

查看 SQL Server 错误日志,找出数据库进入可疑模式的原因。根据数据库进入可疑模式的原因,可以决定下一步的行动方案。

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

答案2

  1. 首先查看企业管理器 (EM) 中的 SQL Server 日志。要查看该日志,请启动 EM,然后从数据库服务器...管理...SQL Server 日志向下钻取。应该有多个日志,以当前日志开头,然后是 6 个或更多存档日志。

  2. 查看所有最近的错误日志。这里将提示数据库被标记为可疑的原因。您需要先修复问题(例如文件丢失、权限问题、硬件错误等)

  3. 然后,当问题已解决并且您确定数据没有问题,或者您没有备份,所以您没有什么可失去的,然后将数据库状态更改为正常并重新启动 SQL Server。

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

    A。

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

    b.

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

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

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

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

    A。

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

    b.

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

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

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

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

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

    c. 右键单击​​打开一个新的 DTS 包...

    d. 当 DTS 打开时,从连接图标中选择“复制 SQL Server 对象任务”。输入描述,如“导出损坏的数据”。从下拉列表中输入 SA/pass 组合以及损坏的数据库。

    e. 选择“目标”选项卡。从下拉菜单中输入 SA/pass 组合以及 PRODUCTION 数据库。

    f. 选择“复制”选项卡。取消选中“创建目标对象”框。取消选中“复制所有对象”框,然后单击“选择对象”按钮。这将打开“选择对象”屏幕。

    g. 仅勾选“显示所有表格”,如上所示。然后勾选需要导出的每个表格。如果需要导出所有表格,请单击“全选”按钮。单击“确定”。

    ** 如果要恢复所有对象,请选中所有对象,然后单击“全选”按钮。这将抓取所有可能的对象。

    h. 再次单击“确定”,我们就完成了此任务的创建。现在我们通过单击菜单栏上的绿色箭头来执行包。

  12. 恢复数据问题:将数据恢复到生产数据库取决于当时的时间。如果是在“热门”时段,即游戏高峰时段,请在游戏淡季或游戏日结束时恢复数据!

如果要致电 Microsoft 技术支持,建议准备好日志文件,以便通过电子邮件发送给技术人员进行审查。完成此操作的过程如下:

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

  2. 执行 SQLDIAG.exe。此应用程序“假定”将所有日志文件压缩到 SQL Server 安装文件夹下的 Log 文件夹中名为 SQLDIAG.txt 的文件中。此操作对我们来说不起作用。

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

答案3

Sam,你使用的是哪个版本的 SQL?2005 和 2008 不再允许更新主数据库。如果你没有完整备份,你需要执行以下操作:在 SQL Server 日志中确定问题后,请按照说明进行操作这里这里取决于你的情况。

相关内容