数据库修复Part2: 页面还原

简介:

上文我们已经新建了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

 

 

 

 本文转自 lzf328 51CTO博客,原文链接:

http://blog.51cto.com/lzf328/954156

 

 

 


相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
|
Devops API 项目管理
云效常见问题之页面提示数据库保存不进去如何解决
云效(CloudEfficiency)是阿里云提供的一套软件研发效能平台,旨在通过工程效能、项目管理、质量保障等工具与服务,帮助企业提高软件研发的效率和质量。本合集是云效使用中可能遇到的一些常见问题及其答案的汇总。
22 0
|
4月前
|
算法 关系型数据库 API
Python【算法中心 02】Web框架Django管理页面使用(管理员账号创建+API使用+应用添加)GreenPlum数据库引擎及API测试
Python【算法中心 02】Web框架Django管理页面使用(管理员账号创建+API使用+应用添加)GreenPlum数据库引擎及API测试
42 0
|
4月前
|
PHP 数据库
【PHP学习】—PHP连接数据库实现表单页面的验证功能(七)
【PHP学习】—PHP连接数据库实现表单页面的验证功能(七)
|
5月前
|
NoSQL MongoDB 数据库
搭建页面:数据库的增删改查
搭建页面:数据库的增删改查
21 0
|
5月前
|
数据库
易搭工作流引擎用是什么开源 还是阿里自研产品,零代码平台场景页面映射数据库表是动态创建,采用什么框架处理,怎么让系统产生高并发能力。易搭权限有没有了解,求解。
易搭工作流引擎用是什么开源 还是阿里自研产品,零代码平台场景页面映射数据库表是动态创建,采用什么框架处理,怎么让系统产生高并发能力。易搭权限有没有了解,求解。
|
9月前
|
存储 安全 网络安全
.360勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
近年来,随着互联网的普及和信息技术的快速发展,网络安全问题日益严峻。其中,勒索病毒成为网络安全领域的一大威胁。本文91数据恢复将重点介绍一种名为“.360勒索病毒”的恶意软件,并探讨被该病毒加密的数据文件如何进行恢复。
.360勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
|
数据库
如何修复 WordPress 数据库?如何更正WordPress 数据库?
如何修复 WordPress 数据库?如何更正WordPress 数据库? 如果您想修复您的数据库而不是完全重置它,首先要做的是打开 WordPress 主机的控制面板区域并登录您的帐户。进入后,将在控制面板内看到主机提供的所有选项。找到 phpMyAdmin 图标并单击它。
如何修复 WordPress 数据库?如何更正WordPress 数据库?
CRUP为后面使用框架在页面上增删改查做下铺垫.(二)
CRUP为后面使用框架在页面上增删改查做下铺垫.(二)
72 0
|
SQL 数据库
CRUP为后面使用框架在页面上增删改查做下铺垫.(一)
CRUP为后面使用框架在页面上增删改查做下铺垫.(一)
115 0
CRUP为后面使用框架在页面上增删改查做下铺垫.(一)
|
JavaScript 前端开发 Go
第四十一章 构建数据库应用程序 - 带有CSP Search标签的CSP搜索页面
第四十一章 构建数据库应用程序 - 带有CSP Search标签的CSP搜索页面