首页 | 公司简介 | 数据恢复 | 备份服务 | 成功案例 | 技术中心 | 客户服务 | 服务报价 | 数据恢复软件 | 联系我们 | 北亚博客  
 
  北京总部: 4006-505-646
  天 津 部: 4006-505-646
  上 海 部: 4006-505-646
  深 圳 部: 4006-505-646
  广 州 部: 4006-505-646
  重 庆 部: 4006-505-646
  南 京 部: 4006-505-646
  其它地区: 4006-505-646
北亚数据恢复软件Windows专业版
三星手机数据恢复软件V1.0
北亚苹果手机数据恢复软件V2.0
北亚硬盘录像机数据恢复软件 V
北亚vmware虚拟机数据恢复软件
北亚照片数据恢复软件
北亚摄像机数据恢复软件 v2.1
北亚Sybase数据库修复软件 V2.
raid磁盘阵列应急方案
HP EVA4400/6400/8400/P6000
iphone 通讯录丢失如何恢复?
xen server 存储库(sr)损坏后
RAID6结构原理详解(北亚数据
AIX下删除LV后的现场保护和数
RAID损坏后 对数据的完整备份
您当前的位置:首页 >> 技术中心 >> 数据库修复文栏 >> 正文

SQL数据库损坏及恢复分析

        SQL数据库在现在的中小型企业中运用是非常多地,但它的损坏也是很常见地,现就SQL数据库损坏的状况、原因及应急方案分析一下。

一.在还原数据库和附加数据库时出错

     SQL备份有两种方法:一是直接复制MDF和LDF文件,二是利用SQL备份机制创建备份文件,但无论是那种备份都会出现无法附加或无法还原的情况。下面就分析一下出错的原因。

1. 在利用备份出来的数据库文件和日志文件附加时会报“错误:823”和“一致性错误”如图:


  这种错误出现的原因有:
        (1)在数据库读写过程中突然死机或重启,重启后数据库有时会出现“置疑”,这时利用MDF和LDF文件附加时就会出现“一致性错误”,有的会出现“错误:823”,这种错误出现的原因是在数据库读写过程中,机器突然死机或重启,由于缓冲数据丢失,数据库无法写入正确的数据,那么数据库会写入一些无关的数据,这样就会造成数据库出错。
        (2)在备份数据库时由于磁盘中有坏道,备份出来的MDF文件不完整时也会出现这种错误,这种情况必须地修复损坏MDF文件中损坏的页,但有时会丢失几条数据!
   如果出现上面的错误,如果对MDF文件结构不是很清楚的话,请不要对原文件进行胡乱修改,这样会适得其反,会造成更大的损失。

2.因为SQL备份数据库机制有问题(人个感觉,如果数据非常庞大时,备份出来的文件有时会有问题),当用户利用备份出来的备份文件进行还原数据库,数据库会报“发和内部一致性错误”和无任何提示的错误,其中“发和内部一致性错误”最为常见。如图:

        出现这种情况大部分都是备份文件损坏造成地,有部分备份文件备份时一切正常,但还原时就会提示“发和内部一致性错误”,这种错误的修复比较复杂,因为我们不能用任何SQL语句进行修复。如果损坏不是很严重时,我们可以在还原数据时选择“恢复完成状态”中地“使数据库不再运行,但能还原其它事务日志”,这样就可以用命令来修复,常常这种情况用命令修复完后,数据会丢失部分!

二.附加还原数据库后,检测数据库是出现一致性错误和分配错误
如下面错误:


       服务器: 消息 8928,级别 16,状态 6,行 1
       对象 ID 0,索引 ID 0: 未能处理页 (1:39)。详细信息请参阅其它错误。
       服务器: 消息 2575,级别 16,状态 1,行 1
       IAM 页 (0:0)(对象 ID 10,索引 ID 0)的下一页指针指向了 IAM 页 (1:39),但在扫描过程中未检测到该页。
       服务器: 消息 8906,级别 16,状态 1,行 1
       扩展盘区 (1:40)(属于数据库 ID 7)在 SGAM (1:3) 和 PFS (1:1) 中进行了分配,但未在任何 IAM 中进行过分配。PFS 标志 'MIXED_EXT ALLOCATED 0_PCT_FULL'。
       服务器: 消息 8906,级别 16,状态 1,行 1
       扩展盘区 (1:38)(属于数据库 ID 7)在 SGAM (1:3) 和 PFS (1:1) 中进行了分配,但未在任何 IAM 中进行过分配。PFS 标志 'MIXED_EXT ALLOCATED 0_PCT_FULL'。
      服务器: 消息 7965,级别 16,状态 1,行 1
      表错误: 由于无效的分配 (IAM) 页,未能检查对象 ID 10,索引 ID 1。
      服务器: 消息 8906,级别 16,状态 1,行 1
      扩展盘区 (1:39)(属于数据库 ID 7)在 SGAM (1:3) 和 PFS (1:1) 中进行了分配,但未在任何 IAM 中进行过分配。PFS 标志 'IAM_PG MIXED_EXT ALLOCATED 0_PCT_FULL'。
      服务器: 消息 8909,级别 16,状态 1,行 1
     表错误: 对象 ID 10,索引 ID 1,页 ID (1:39)。页首结构中的 PageId = (1:0)。
     'test' 的 DBCC 结果。
      CHECKDB 发现了 1 个分配错误和 0 个一致性错误,这些错误并不与任何单个的
      CHECKDB 发现了 5 个分配错误和 2 个一致性错误(在数据库 'test' 中)。
      repair_allow_data_loss 是最低的修复级别(对于由 DBCC CHECKDB (test ) 发现的错误而言)。
      DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

     引起这种错误一般是因为数据库某个页被改写或清0了,所以会发生一致性错误和分配错误。修复此类故障可参考sql server 系统表sysobjects、sysindexes、syscolumns损坏修复方法

三.最为常见的“未能读取并闩锁页 (1:4234)(用闩锁类型 SH)”

     要检测数据库,会常见到下面的错误:

  “服务器: 消息 8966,级别 16,状态 1,行 1
     未能读取并闩锁页 (1:4234)(用闩锁类型 SH)。sysobjects 失败”。

     这种“未能读取并闩锁页 (1:4234)(用闩锁类型 SH)”错误常常会出现在系统表中:sysobjects、sysindexes、syscolumns等中,这种错误出现的原因是因为系统表被破坏,这种错误是很麻烦地,因为SQL的效验比较严密,只要稍改一个关键字节,都出报这个错误,但有时可以导出部分数据。

四.误删除或误格式化后SQL数据库的恢复

      在很多情况下,用户会误删除或误格式化掉SQL数据库,出现这种情况后用户会用市面上软件FinalData和EasyRecovery来恢复数据库,虽然用这些数据库软件可以恢复出MDF和LDF文件来,但100%都会无法附加地(除非数据库不使用),即使附加成功,但错误会很多,数据库也无法使用,因为数据库在日常中经常增加和删除记录,这样就会出数据库文件存储不连续的情况,而市面上的软件都是连续取数据,所以会造成数据库无法附加。

出现这种错误时,用户应尽量不要使用本计算机,更不要安装软件和写任何数据。由于市面上的软件还没有完全智能地恢复数据库,所以只能手工恢复这种误删除的数据,这样就必须了解SQL数据库文件的结构。

 

上一篇:sql server 系统表sysobjects、sysindexes、syscolumns损坏修复方法
下一篇:SQL Server 数据库-页结构
返回首页 | 联系我们 | 关于我们 | 招聘信息 | 友情链接 | 网站地图 | 合作伙伴
版权所有 北京北亚宸星科技有限公司
全国统一客服热线:4006-505-646
北京总部:北京市海淀区永丰基地丰慧中路7号新材料创业大厦B座205室
京ICP备09039053号

bh膔_�