云南数据恢复
云南数据恢复24小时服务热线
云南昆明数据恢复中心
服务项目
   RAID数据恢复
RAID0 、RAID1、RAID5、RAID6、RAID0+1 、RAID5+0、RAID1+0、NAS、SAN 、JBOD等的数据恢复
   硬盘数据恢复
硬盘电路板故障:电路板烧毁、击穿、断针;硬盘固件区损坏;硬盘有严重坏道;硬盘读盘慢等故障的数据恢复
   开盘数据恢复
硬盘异响、磁头老化、电机停转、内密电路击穿、盘片轻微划伤、硬盘加、二次开盘、SCIC开盘等故障的数据恢复。
 硬盘逻辑故障数据恢复
误删除、误格式化、误克隆、重装系统覆盖、分区表丢失、误分区、PQ转换分区出错、中病毒、黑客攻击等数据恢复
   数据库修复
ACCESS、FOXPRO、SQL SERVER、 ORACLE、MYSQL、DB2、NFORMIX、 SYBASE等数据库丢失的恢复
   Email邮件修复
OUTLOOK、OUTLOOK EXPRESS、 FOXMAIL、LOTUS NOTES等邮件 系统得数据恢复
   文档修复
Word、Excel、PowerPoint等OFFICE文档修复及各种格式的文件不能正常使用的数据修复
   存储介质恢复
U盘、光盘、软盘、MO、MP3、CF、SD、xD、MMC、SM、SMC、记忆棒、录音笔、磁带、微硬盘等
联系我们
  
24小时服务热线:13187870011
您现在的位置: 首页>新闻系统>相关文章>数据库文章>正文

Oracle数据库恢复:数据块损坏与恢复

  • 编辑:未知
  • 2016年09月02日
  • 来源:
人参与

1.什么是块损坏:

所谓损坏的数据块,是指块没有采用可识别的 Oracle 格式,或者其内容在内部不一致。通常情况下,损坏是由硬件故障或操作系统问题引起的。Oracle 数据库将损坏的块标识为“逻辑损坏”或“介质损坏”。如果是逻辑损坏,则是 Oracle 内部错误。Oracle 数据库检测到不一致之后,就将逻辑损坏的块标记为损坏。如果是介质损坏,则是块格式不正确;从磁盘读取的块不包含有意义的信息。通过恢复块,或者删除包含损坏块的数据库对象(或同时采用这两种方式),可以修复介质损坏的块。如果介质损坏是由硬件故障引起的,则只有修复了硬件故障后,才能彻底解决问题。只要对块执行读或写操作,就会执行下列一致性检查:

--块版本

--高速缓存中的 DBA(数据块地址)值与块缓冲区中的 DBA 值比较的结果

--块校验和(如果启用)

损坏的块被标识为以下类别:

--介质损坏

--逻辑(或软件)损坏

2.块损坏故障现象:ORA-01578

ORA-01578 错误:“ORACLE data block corrupted (file # %s, block # %s)”:

--发现损坏的数据块时生成此信息

--始终返回相对文件号和块号

--返回到发出查询的会话(该查询在发现损坏时执行)

--显示在 alert.log 文件中

一般情况下,ORA-01578 错误是由硬件问题引起的。如果 ORA-01578 错误始终返回相同的参数,则最可能的原因是块介质损坏。
如果返回的参数每次都有变化,则可能存在硬件问题。应检查内存和页面空间,并检查 I/O 子系统,以便查找有问题的控制器。
注:ORA-01578 会返回相对文件号,但随之出现的 ORA-01110 错误会显示绝对文件号。

3.如何处理损坏

--检查预警日志和操作系统日志文件。

--使用可用的诊断工具,找出损坏的类型。

--多次运行检查功能,确定错误是否持续存在。

--根据需要,从损坏的对象中恢复数据。

--解决硬件问题:内存条、磁盘控制器、磁盘

--根据需要,从损坏的对象中恢复或还原数据。

始终尝试确定错误是否持续出现。多次运行 ANALYZE 命令;如果可能,可执行关闭再启动操作,然后再次尝试早先发生故障的操作。查找是否有其它损坏。如果发现一个损坏的块,则可能还存在其它损坏的块。硬件故障必须立即解决。遇到硬件问题时,应与供应商取得联系,在检查并修复了计算机后再继续工作。此时应运行一次全面的硬件诊断会话。
硬件故障的类型可能会有很多种:I/O 硬件或固件故障、操作系统、I/O 或高速缓存问题、内存或分页问题、磁盘修复实用程序。


4.实时验证块完整性:DB_BLOCK_CHECKING :

可通过将 DB_BLOCK_CHECKING 初始化参数设置为 TRUE 启用数据库块检查。只要修改了数据块或索引块,此项检查就会检查数据块和索引块的内部一致性。DB_BLOCK_CHECKING 是一个动态参数,可使用 ALTER SYSTEM SET 语句修改此参数。对于系统表空间,将始终启用块检查。块检查通常会产生 1% 到 10% 的开销,具体取决于工作量。正在执行的更新或插入操作越多,执行块检查的开销就会越高。DB_BLOCK_CHECKING 有以下四个可能的值:

--OFF:除 SYSTEM 之外的所有表空间都不执行块检查。

--LOW:在内存中块的内容发生更改之后(例如,在执行 UPDATE 或 INSERT 语句以及在执行磁盘上读取后),执行基本的块头检查。

--MEDIUM:执行所有 LOW 检查, 对所有不是按索引组织的表块执行语义块检查。

--FULL:执行所有 LOW 和 MEDIUM 检查, 对索引块执行语义检查。

初始化参数 DB_BLOCK_CHECKING:

--在对每个块执行自我一致性检查时,控制检查的处理程度

--可防止内存和数据损坏

--可使用 ALTER SESSION 命令或 ALTER SYSTEM DEFERRED 命令进行设置

5.块介质恢复

大多数情况下,第一次遇到损坏时,数据库会将块标记为介质损坏,然后将其写到磁盘上。在该块得到

|<< << < 1 2 3 > >> >>|

 版权所有:Copyright @ 2011-2012 All rights reserved 滇ICP备16006347号 昆明北亚科技有限公司
 商务部地址:昆明市五华区圆通北路127号佰腾数码广场B座(云大晟苑)14楼1411室
  研发部地址:云南大学鼎鑫公寓3栋2层B-2室
       联系电话:0871-65732192,13187870011
    Email:117361778@qq.com
传真:0871-65732192