上文我们已经新建了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的数据库,今天我们就用页面还原修复损坏的页面。
部分功能简介:商品收藏夹功能热门商品最新商品分级价格功能自选风格打印结算页面内部短信箱商品评论增加上一商品,下一商品功能增强商家提示功能友情链接用户在线统计用户来访统计用户来访信息用户积分功能广告设置用户组分类邮件系统后台实现更新用户数据系统图片设置模板管理CSS风格管理申诉内容过滤功能用户注册过滤特征字符IP库管理及来访限制及管理压缩,恢复,备份数据库功能上传文件管理商品类别管理商品添加/修改/
0
首先我们允许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
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号