首页 >> 精选百科 >

数据库损坏 数据库损坏后的一般修复方法

2022-07-17 07:19:50 来源: 用户: 

数据库损坏(数据库损坏后的一般修复方法)。

常见的曲解。

823错误。

错误信息是:“在文件& # 39;% ls & # 39在偏移量为%#016I64x的位置执行%S_MSG期间,操作系统向SQL Server返回了错误%ls。”

\"在文件& # 39;中的%S_MSGat偏移量%#016I64x期间,操作系统向SQL Server返回了错误% 1!% ls & # 39.\"

例如:

消息823,24层,3号州,1号线

操作系统返回错误5(访问被拒绝。)写入文件& # 39;中偏移量0x0000000000e000处的SQLServer。文件路径\\文件名& # 39;。

错误823表示SQL Server在申请从操作系统读取或写入页面时,遇到了来自Windows的读取或写入请求失败,Windows返回的错误代码和对应的文本将被插入到消息中。对于读取操作,在报告823错误之前,SQL Server已重试读取请求四次。

从错误产生的机制可以看出,823错误发生在发出页面读写请求时,与读写内容无关,所以823错误与SQL Server本身无关。此错误通常是由物理文件损坏引起的,但也可能是由设备驱动程序引起的。如果数据文件反复出现823错误,要么是硬件设备出了问题,要么是数据文件严重损坏。这个错误基本上意味着数据页中的有效数据已经丢失,一般很难修复DBCC CHECKDB。

824错误。

错误消息是:“基于一致性% 1!SQL Server检测到逻辑输入/输出错误。在文件\' \' % 1!\' \'中偏移量为%#016I64x的位置的数据库标识% 2!的第% 3!页上执行% 4!时出错

\" SQL server检测到一个基于逻辑一致性的输入/输出错误:% ls。它发生在文件& 39中深圳人寿网络fset %#016I64x的数据库id% d中第% s _ pgid页的% s _ msg期间。% ls & # 39.\"

例如:

SQL Server检测到基于逻辑一致性的输入/输出错误:tornpage(预期签名:0x0实际签名:0x4e0372a8)。读取数据库ID 13中偏移量000000000000000000000000000000000000000000000000000000000000000000000000000000000000000s:\\ Microsoft SQL Server \\ MSSQL . 1 \\ MSSQL \\ Data \\ www 71 _ global _ Data . MDF & # 39;。

此错误表示Windows报告页面已成功从磁盘读取,但SQL Server在页面中检测到逻辑错误。

常见的错误类型如下:

1、校验和

SQL Server在编写每一页时,可以根据页面强度数据计算一个校验值,并一起存储在页面中。下次读取页面时,根据读取的页面数据计算新的校验值。如果写入和读取的数据相同,则两个检查值必须相等。如果两个校验值不相等,说明上次SQL Server写入的数据和这次读取的数据不一样,现在读取的数据有问题。这样,SQL Server可以避免数据页损坏。

2、撕页

撕页保护实际上是一种检测电源故障导致页面损坏的方法。例如,意外的电源故障可能仅导致页面的一部分写入磁盘。当使用不完全页保护时,在页的每个512字节扇区的末尾放置一个2位签名(在将原始的2位复制到页头之后)。每次执行写操作时,该签名在二进制数01和10之间交替,因此总是可以确定是否只有一些扇区被写入磁盘。如果以后读页面时发现某个位置的状态不正确,说明页面没有写对,所以检测到问题的页面称为断页。与Checksum相比,不完全页检测使用的资源最少,但其算法过于简单,无法检测出磁盘硬件故障导致的所有错误。

3、短转移

读取数据的长度比预期的要短。例如,一个读取请求预期读取8KB的数据,但实际上只返回了4KB。这也意味着当前读取的页面已损坏。

4、错误的页面标识

读取页面后,SQL Server会将存储在页面开头的页码与自己请求的目标页码进行比较。如果你发现你想读的页面是第200页,而你读的内容显示是第100页,那么SQL Server就会触发一个824错误。这种错误通常会被发送到错误的页面,甚至是SQL Server的空页面,因为输入/输出系统不能正确处理SQL Server请求。

5、恢复待定

在企业版的SQL Server中,用户可以要求在恢复时跳过一些损坏的页面(出错后继续)。这些跳过的页面被标识为“恢复挂起”。如果一些用户想要访问它,他们会遇到824错误。

6、陈旧阅读

在一些硬件系统中经常会出现写操作缺失的情况(SQL Server要求在硬盘文件中写入一页,I/O子系统报告写操作已经完成,但下次SQL Server读取时,仍会先读取内容再写入)。由于旧版本的页面没有任何问题,校验和或撕裂页面算法都无法检查错误。对于这种问题,SQL Server也有对策。打开SQL Server启动参数开关-T818后,SQL Server将在内存中维护一个哈希表,以记录所有已写入页面的最新LSN(日志序列号)值。下次阅读该页面时,您将比较这两个值是否相等。因为LSN是一个会自动增长的唯一值,所以对于每个新修改的页面,LSN的值都会大于原始值。如果读LSN与存储在内存中的不一致,这意味着最后一个写请求没有真正完成。这时,824错误也会触发。

虽然这是一个“逻辑错误”和由SQL Server主动发现的数据损坏,但损坏的来源大多不是SQL Server本身。这里的错误主要是预期的书写没有完成造成的。错误的原因基本上在输入/输出子系统中。由于SQL Server的读写请求是先发送到Windows,再发送到底层磁盘系统,所以Windows下面的每一层都可能出现问题,比如磁盘驱动器故障、磁盘估计问题、设备驱动不正确等。可以负责任地说,SQL Server本身不会造成824错误。

因为824错误是页面级别的逻辑错误,所以在许多情况下可以修复DBCC CHECKDB。这种修复只是逻辑上的。存储在页面中的数据在824错误发生之前就丢失了,SQL Server无法修复它们,所以824错误基本上意味着一些数据丢失了。

605错误。

错误消息是:“试图从数据库%d提取逻辑页%S_PGID失败深圳生活网。逻辑页属于分配单元%I64d,而不是%I64d。

\"尝试提取数据库%d中的逻辑页%S_PGIDin失败。它属于分配单元%I64d,而不是%I64d。

例如:

尝试获取数据库2中的逻辑页(1: 584)失败。属于深圳生活网o分配单元445237904015360非72057594060079104。

605也是一个非常著名的数据库损坏错误。此错误通常表示指定数据库中的页面或分配已损坏。当根据页面链或使用索引分配映射(IAM)读取属于表的页面时,SQL Server会检测到此损坏。分配给表的所有页面必须属于与该表关联的分配单元之一。如果标头中包含的分配单元标识与表关联的分配单元标识不匹配,则会引发此异常。错误消息中列出的第一个分配单元标识是标题中显示的标识,而第二个分配单元值是与表相关联的标识。

严重级别为21表示可能存在数据损坏。原因包括损坏的页面链、损坏的IAM或对象的sys.objects目录视图中的无效条目。这些错误通常是由硬件或磁盘设备驱动程序故障引起的。

严重级别为12表示可能存在临时错误,即缓存中出现错误,但这并不意味着磁盘上的数据已损坏。的临时605错误可能由以下情况引起:

系统过早地通知SQL Server输入/输出操作已经完成;虽然没有实际的数据丢失。

糟糕,但真实的错误信息。

使用优化器提示NOLOCK运行查询,或将事务隔离级别设置为READ。

未提交.当使用NOLOCK或READ UNCOMMITTED的查询试图读取时。

当其他用户移动或更改数据时,会出现605错误。如果验证是暂时的。

05错误,您可以稍后重新运行查询。

通常,如果错误发生在数据访问期间,但后续的DBCC检查数据库操作没有错误地完成,则605错误可能是暂时的。

由于605错误意味着一些页面被分配了问题,这也是一个非常严重的数据库损坏。一般很难修复DBCC CHECKDB。

其他错误

在SQL Server内部,除了文件页面分配和每个页面的内部格式之外,还有一些其他的约束规则。以下是一些常见的错误例子。

个人理财服务页面已损坏:

消息8946,级别16,状态12,第1行表错误:分配页(1:13280496)有

无效的PFS_PAGEpage标头值。类型为0。检查类型、所有单位标识和页面

页面上的标识。

系统表的聚集索引页损坏:

服务器:消息8966,16级,状态1,第1行无法读取和查看页面(1:18645)

带SH型闩锁。sysindexes失败。

消息7985,16级,状态2,服务器SUNART,第1行系统表预检查:对象

ID 4。无法读取和锁定带锁定类型SH的页面(1:51)。check语句

由于不可修复的错误而终止。

字段的值不符合字段数据类型定义:

Msg 2570,第16层,状态3,第1页(1:152),objectID 2073058421中的插槽0,

索引标识0,分区标识72057594038321152,分配单元标识72057594042318848(类型

\"行内数据& quot).列& quotc1 & quot值超出了数据类型& quot日期时间& quot。更新

列转换为合法值。

  免责声明:本文由用户上传,与本网站立场无关。财经信息仅供读者参考,并不构成投资建议。投资者据此操作,风险自担。 如有侵权请联系删除!

 
分享:
最新文章