数据库修复系列Part3:repair_allow_data_loss

简介:

运行DBCC CHECKDB withNO_INFOMSGS发现下面的错误:

 

Table error: ObjectID 7, index ID 2, partition ID 562949953880064, alloc unit ID 562949953880064(type In-row data), page (1:54). Test ((m_type >= DATA_PAGE &&m_type <= UNDOFILE_HEADER_PAGE) || (m_type == UNKNOWN_PAGE && level== BASIC_HEADER)) failed. Values are 0 and 0.

Msg 8939, Level 16,State 5, Line 4

Table error: ObjectID 7, index ID 2, partition ID 562949953880064, alloc unit ID 562949953880064(type In-row data), page (1:54). Test (m_headerVersion == HEADER_7_0) failed.Values are 0 and 1.

Msg 8939, Level 16,State 6, Line 4

Table error: ObjectID 7, index ID 2, partition ID 562949953880064, alloc unit ID 562949953880064(type In-row data), page (1:54). Test ((m_type >= DATA_PAGE &&m_type <= UNDOFILE_HEADER_PAGE) || (m_type == UNKNOWN_PAGE && level== BASIC_HEADER)) failed. Values are 0 and 0.

repair_allow_data_loss is the minimum repairlevel for the errors found by DBCC CHECKDB (Corrupt2008DemoFatalCorruption).

 

最小的修复级别是repair_allow_data_loss

 

 

如果我们没有数据库备份,无法使用页面还原,那么我们就需要用repair_allow_data_loss来修复(会有数据损失,而且不一定所有的都是可以恢复的 参考:http://blog.csdn.net/smithliu328/article/details/7827147

 

下面我们就使用DBCC CHECKDH repair_allow_data_loss来修复损坏的数据库。

---将数据库状态改为紧急模式

ALTER DATABASE Corrupt2008DemoFatalCorruption SETEMERGENCY

GO

--将数据库改为单用户访问

ALTER DATABASE Corrupt2008DemoFatalCorruptionSETSINGLE_USER

GO

--运行repair_allow_data_loss修复

DBCC CHECKDB(Corrupt2008DemoFatalCorruption,repair_allow_data_loss)

Go

---修复完成后运行DBCC CHECKDB确定没有问题

DBCC CHECKDB withNO_INFOMSGS

Go

--将数据库更改为多用户访问

ALTER DATABASE Corrupt2008DemoFatalCorruptionSETMULTI_USER

 

如果建议的修复级别为REPAIR_REBUILD,您可以放心执行,不会有数据损失 这包括快速修复(如修复非聚集索引中缺少的行)以及更耗时的修复(如重新生成索引)。

 

注意事项:

仅将 REPAIR 选项作为最后手段使用。 若要修复错误,建议您通过备份进行还原。 修复操作不会考虑表本身或表之间可能存在的任何约束。如果指定的表与一个或多个约束有关,建议您在修复操作后运行 DBCC CHECKCONSTRAINTS。如果必须使用 REPAIR,则运行不带有修复选项的 DBCC CHECKDB 来查找要使用的修复级别。如果使用 REPAIR_ALLOW_DATA_LOSS 级别,则建议您在运行带有此选项的 DBCC CHECKDB 之前备份数据库。

 

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

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


相关文章
|
4月前
|
存储 数据库
LabVIEW如何修复或重置NI MAX数据库文件
LabVIEW如何修复或重置NI MAX数据库文件
58 0
|
3月前
|
SQL 监控 安全
sql数据库文件数据修复
当SQL数据库文件(如MDF、LDF等)损坏时,可能需要进行数据修复。以下是一些建议的步骤和策略,帮助你尝试修复SQL数据库文件中的数据: 1. **备份文件**: 在进行任何修复操作之前,请
|
存储 安全 网络安全
.360勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
近年来,随着互联网的普及和信息技术的快速发展,网络安全问题日益严峻。其中,勒索病毒成为网络安全领域的一大威胁。本文91数据恢复将重点介绍一种名为“.360勒索病毒”的恶意软件,并探讨被该病毒加密的数据文件如何进行恢复。
.360勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
|
安全 网络安全 数据库
mkp勒索病毒怎么处理|mkp数据解密恢复|数据库修复
当今,勒索病毒已成为企业网络安全的一大威胁,而其中mkp勒索病毒则是一种新近出现的变种。与其他勒索病毒一样,mkp勒索病毒会加密用户的数据,并要求受害者支付赎金才能恢复数据。91数据恢复研究团队将介绍mkp勒索病毒的特征、传播方式以及如何应对该病毒的攻击。
mkp勒索病毒怎么处理|mkp数据解密恢复|数据库修复
|
存储 数据采集 安全
devos勒索病毒解决方法|勒索病毒解密|勒索病毒恢复|数据库修复
       随着数字时代的来临,企业在数据采集、处理、存储等方面进行了大量投资,数据已经成为了企业最重要的资产之一。但是,这些数据的安全性受到了越来越多的威胁,其中最臭名昭著的就是勒索病毒。勒索病毒是一种具有高度危险性的恶意软件,可以导致企业数据丢失或被盗取,给企业带来不可估量的经济和声誉损失。91数据恢复研究团队将详细介绍devos后缀勒索病毒及其解决办法,旨在帮助企业更好地了解和应对这一安全威胁。
devos勒索病毒解决方法|勒索病毒解密|勒索病毒恢复|数据库修复
|
数据库
如何修复 WordPress 数据库?如何更正WordPress 数据库?
如何修复 WordPress 数据库?如何更正WordPress 数据库? 如果您想修复您的数据库而不是完全重置它,首先要做的是打开 WordPress 主机的控制面板区域并登录您的帐户。进入后,将在控制面板内看到主机提供的所有选项。找到 phpMyAdmin 图标并单击它。
如何修复 WordPress 数据库?如何更正WordPress 数据库?
|
存储 运维 安全
数据库运维之InnoDB存储引擎表损坏修复方法
InnoDB存储引擎表的损坏可能是多种因素导致的,比如服务器断电、系统崩溃、硬盘损坏、写数据过程中mysqld进程被kill掉。
1027 0
|
安全 Linux 数据库
7.8 Linux重建RPM数据库(修复损坏的RPM数据库)
我们知道,RPM 包是很多 Linux 发行版(Fefora、RedHat、SuSE 等)采用的软件包管理方式,安装到系统中的各 RPM 包,其必要信息都会保存到 RPM 数据库中,以便用户使用 rpm 命令对软件包执行查询、安装和卸载等操作。
1076 0
7.8 Linux重建RPM数据库(修复损坏的RPM数据库)
|
数据库
LeetCode(数据库)- 修复表中的名字
LeetCode(数据库)- 修复表中的名字
103 0
|
数据库
LeetCode(数据库)- 产品名称格式修复
LeetCode(数据库)- 产品名称格式修复
82 0