• 技术文章 >数据库 >mysql教程

    数据库修复Part2: 页面还原

    2016-06-07 15:44:11原创554

    上文我们已经新建了Corrupt的数据库,今天我们就用页面还原修复损坏的页面。 首先我们允许DBCC CHECKDB查看损坏的页面ID: DBCC CHECKDB with NO_INFOMSGS Msg 8928, Level 16,State 1, Line 1 Object ID2105058535, index ID 0, partition ID 7205759403877

    上文我们已经新建了Corrupt的数据库,今天我们就用页面还原修复损坏的页面。

    首先我们允许DBCC CHECKDB查看损坏的页面ID:

    DBCC CHECKDB withNO_INFOMSGS

    Msg 8928, Level 16,State 1, Line 1

    Object ID2105058535, index ID 0, partition ID 72057594038779904, alloc unit ID72057594039828480 (type In-row data): Page (1:78) could not be processed. See other errors for details.

    Msg 8939, Level 16,State 98, Line 1

    Table error: ObjectID 2105058535, index ID 0, partition ID 72057594038779904, alloc unit ID72057594039828480 (type In-row data), page (1:78). Test (IS_OFF (BUF_IOERR,pBUF->bstat)) failed. Values are 12716041 and -4.

    repair_allow_data_loss is the minimumrepair level for the errors found by DBCC CHECKDB (corrupt).

    建议的修复 是repair_allow_data_loss,但是如果用repair_allow_data_loss修复的话就会有数据损失,而且可能会造成数据一致性问题。SQL Server 2005之后提供了Page Restore,使用Page Restore我们可以直接修复这个损坏的页面。

    命令:---Corrupt.bak是在数据库损坏之前的备份

    restore database corrupt page='1:78'fromdisk ='d:\mssql\corrupt.bak'withnorecovery

    backup log corrupttodisk='d:\mssql\corrupt.trn'

    restore log corruptfromdisk='d:\mssql\corrupt.trn'withrecovery

    页面还原用于修复隔离出来的损坏页。 还原和恢复少量页面的速度可能比还原一个文件更快,因此减少了还原操作中处于脱机状态的数据量。

    还原页步骤:

    1. 获取要还原的损坏页的页 ID。

    2. 从包含页的完整数据库备份、文件备份或文件组备份开始进行页面还原。 RESTORE DATABASE 语句中,使用 PAGE 子句列出所有要还原的页的页 ID。

    3. 应用最近的差异。

    4. 应用后续日志备份。

    5. 创建新的数据库日志备份,使其包含已还原页的最终 LSN,即最后还原的页脱机的时间点。 设置为顺序中首先还原的最终 LSN 是重做目标 LSN。包含该页的文件的联机前滚可以在重做目标 LSN 处停止。

    6. 还原新的日志备份。 应用这个新的日志备份后,就完成了页面还原,可以开始使用页了。

    更多页面还原信息请参考:http://msdn.microsoft.com/zh-cn/library/ms175168.aspx

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    上一篇:WM Workstation 8创建SQL Server 2012 集群(cluster) Part2 下一篇:C#操作Access之按列读取mdb浅析

    相关文章推荐

    • 必须要了解MySQL索引的坑• 一起聊聊MYSQL中锁的各种模式与类型• MySQL之SQL优化、索引优化、锁机制、主从复制(图文详解)• docker和jenkins是什么• mysql中怎么调用存储过程

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网