首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DBCC CHECKDB错误

DBCC CHECKDB错误
EN

Database Administration用户
提问于 2016-05-10 05:12:35
回答 1查看 5.5K关注 0票数 5

我的Server数据库有一些问题。当我运行这个:

代码语言:javascript
复制
select  * from dbo.Entity
where Oid='191FAF30-4729-4145-8106-60E34A8E164C'

...it发出以下错误。

Msg 823,24级,状态2,第2行操作系统返回错误1(不正确的功能)。在读取文件'D:\Database\db.mdf‘中的偏移量0x00000021442000时,到Server。Server错误日志和系统事件日志中的附加消息可能会提供更多细节。这是一种严重的系统级错误状况,威胁到数据库的完整性,必须纠正immediately.,完成完整的数据库一致性检查(DBCC )。此错误可能是由许多因素造成的;有关详细信息,请参阅Server联机丛书。

事件日志错误与上面相同。

所以我运行了一个DBCC CHECKDB,它输出了以下错误:

CHECKDB在数据库中发现了0次分配错误和0次一致性错误--当前命令发生了严重错误。如果有任何结果,则应予以放弃。

我试过了

代码语言:javascript
复制
dbcc checktable ('Entity')

但信息是:

MSG0,级别11,状态0,行0 当前command.发生严重错误,如果有结果,应该丢弃。

版本信息:

代码语言:javascript
复制
Microsoft SQL Server 2012 - 11.0.2100.60 (X64) 
Feb 10 2012 19:39:15 
Copyright (c) Microsoft Corporation
Enterprise Edition: Core-based Licensing (64-bit) on Windows NT 6.2 <X64> (Build 9200: )

任何关于如何修复损坏的表的建议都将不胜感激!

EN

回答 1

Database Administration用户

发布于 2016-05-12 07:23:53

当在IO请求期间遇到操作系统错误时,这将被报告为823错误。仅对失败的OS IO操作错误报告823错误消息。因此,您需要检查系统事件日志中的任何磁盘或文件系统相关条目。您将需要修复磁盘或文件系统问题,否则损坏将返回。

代码语言:javascript
复制
Msg 0, Level 11, State 0, Line 0
A severe error occurred on the current command.
The results, if any, should be discarded.

当元数据损坏或不一致时,通常会引发此错误。

实际错误是:数据库%d的元数据不一致。无法修复此错误并阻止进一步的DBCC处理。请从备份中恢复

在大多数情况下,元数据不一致错误在试图修复损坏或恢复数据、将mdf和ldf文件复制到安全位置之前是不可弥补的。这样,如果您的恢复尝试进一步破坏数据库,您至少可以始终返回到当前状态。

您可以尝试几个选项: 1.从备份恢复。2.手动提取尽可能多的数据,创建新表,将数据导入新表,删除损坏的表,将新表重命名为损坏的表名。3.运行DBCC REPAIR_ALLOW_DATA_LOSS。<--这可能无法工作4.购买昂贵的第三方应用程序来恢复数据。

只要没有备份损坏的数据库,只有备份的还原才能正常工作。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/138078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档