使用 Microsoft SQL Server 2005 或 2008 Enterprise Edition、Data Center Edition 或 Developer Edition 执行联机损坏页面还原

Microsoft SQL Server 2005 和 2008 能够检测数据库中的数据损坏的时间,并能在数据页面级别隔离损坏。 任何时间都可以在系统数据库 [msdb] 的 [suspect_pages] 表中找到已知损坏页面的当前列表。 除了损坏页面检测和隔离,SQL 2005 还引入了仅在已损坏且被覆盖的数据页面中执行还原的功能。 通过此功能,您可以使轻微受损的数据库快速回归正常。

注意:启动此过程前,请使数据库脱机。

使用 Microsoft SQL Server 2005 或 2008 Enterprise Edition、Data Center Edition 或 Developer Edition 执行联机损坏页面还原

  1. 如果数据库使用简单恢复模型,请更改到完全恢复模型。
  2. (可选)对数据库执行数据库一致性检查 (DBCC CheckDB),以查找已报告的损坏页面外的任何其他损坏页面。 此操作可作为步骤 4 的一部分来完成。
  3. 执行数据库的联机损坏页面修复还原,如下所示:
    1. 打开还原管理器。
    2. 在“源”选项卡上使用“按树还原”视图来查找并选择数据库。
    3. 打开“代理选项”。
    4. 确认选择了“自动选择”。
    5. 在“子集”下,选择“损坏页面修复 – 联机”。
    6. 在“恢复完成状态”下,选择“继续运行数据库”。
    7. (可选)您可以选择在还原前进行数据库一致性检查,以确定任何其他已损坏或被破坏的页面。 (请注意,这是还原前允许 DBCC 的唯一还原类型,因为 DBCC 要求数据库联机。)
    8. (可选)您可以选择在还原后进行数据库一致性检查。
    9. 单击确定。
    10. 在“目标”选项卡上,选择“还原到原始位置”(如果未选择)。
    11. 启动该还原。
  4. 尝试查询包含损坏页面的表。
  5. 使用默认选项执行事务日志备份。
  6. 没有选择“自动选择”并将“恢复完成状态”设置为“保留数据库为可操作”的情况下,执行此最终事务日志备份的还原。
  7. 如果在步骤 1 中更改了恢复模型,请将其更改为简单恢复模型。
  8. 继续使用该数据库。