甲骨文数据库中出现的坏块问题如何处理

  介绍

本篇内容主要讲解“甲骨文数据库中出现的坏块问题如何处理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“甲骨文数据库中出现的坏块问题如何处理”吧!

<>强一:什么是数据库的坏块

首先我们来大概看一下数据库块的格式和结构

数据库的数据块有固定的格式和结构,分三层:缓存层、事务层,数据层。在我们对数据块进行读取写入操作的时候,数据库会对要读写的数据块做一致性的检查,其中包括:数据块的类型,数据块的地址信息,数据块的SCN号以及数据块的头部和尾部。如果发现其中有不一致的信息,那数据库就会标记这个数据块为坏块了。数据库的坏块分为两种,逻辑坏块和物理坏块。

<强>二:坏块对数据库产生的影响

如果数据库出现坏块,数据库的告警日志文件里面会存在有如下的一些报错信息:ora - 1578以及在bdump ora - 600和跟踪文件目录,其中ora - 600错误的* * *个参数值的范围是[2000],[8000],不同的值代表着数据块的不同的层出现问题,具体的如下表所示:

 Range ,,,,,,,,,,,,,,,,,,,,,,,,,, block 层
  Cache  layer ,,,,,,,,,,,,,,,,, 2000,, mdash; 4000年
  Transaction  layer ,,,,,,,, 4000,, mdash; 6000年
  Data  layer ,,,,,,,,,,,,,,,,,,,, 6000,安康;8000年

坏块产生影响的对象可能是数据字典表,回滚段表,临时段,用户数据表和索引等。不同的对象产生坏块后的处理方法不尽相同。

<强>三:坏块产生的原因

甲骨文调用标准C的系统函数,对数据块进行读写操作,因此,坏块是有可能由以下几种原因产生:

 1,,,,,,,,,硬件的,我/O 错误
  2,,,,,,,,,操作系统的,我/O 错误或缓冲问题
  3,,,,,,,,,内存或,paging 问题
  4,,,,,,,,,磁盘修复工具
  5,,,,,,,,,一个数据文件的一部分正在被覆盖
  6,,,,,,,,,Oracle 试图访问一个未被格式化的系统块失败
  7,,,,,,,,,数据文件部分溢出
  8,,,,,,,,,Oracle 或者操作系统的,错误

<强>四:坏块的处理方法

<强> 1。,先收集相应的关于坏快的信息

从AlertSID。日志文件或者从跟踪文件中查找,找到例如以下的一些信息:

 ora - 1578,,,文件#,,(RFN),,块#,,ora - 1110,,,,文件#,,(AFN),,块#,,ora - 600,,,,,文件#,,(AFN),,块# 

*其中RFN表示的是relative_fno

* AFN表示的是file_id 以前,

<> Select  file_name, tablespace_name, file_id “AFN relative_fno “RFN”,,得到dba_data_files;,, Select  file_name, tablespace_name, file_id,, relative_fno“RFN”,,得到dba_temp_files;

<强> 2。,确定存在坏块的对象是什么:

 SELECT  tablespace_name,, segment_type,,老板,segment_name,, partition_name ,得到dba_extents  WHERE  file_id =,,以及,结构、block_id 以及block_id  +, blocks , mdash;, 1; 

通过上面这个查询语句就可以查出当前存在坏块的对象是什么,是什么类型的对象。需要注意的是如果是临时文件中出现坏块,是没有记录返回的。

<强> 3。,根据2中查询出来的对象类型确定相应的处理方法

出现坏块的常见对象有:

 1,,,,,,,,, Sys 用户下的对象
  2,,,,,,,,,回滚段
  3,,,,,,,,,临时段
  4,,,,,,,,,索引或者分区索引
  5,,,,,,,,,表

常用的处理方法有:

 1,,,,,,,,,恢复数据文件
  2,,,,,,,,,只恢复坏的,块(9小姐:以上版本可用)
  3,,,,,,,,,通过,ROWID  RANGE  SCAN 保存数据
  4,,,,,,,,,使用,DBMS_REPAIR
  5,,,,,,,,,使用,事件

<强> 4。,具体处理方法的介绍

<>强恢复数据文件方法:

如果数据库是归档方式下,并且有完整的物理备份,就可以使用此方法来恢复。

步骤如下:

1)先离线受影响的数据文件,执行以下的语句:

改变数据库功能& # 39;name_file& # 39;离线;

2)保留有坏块的数据文件,然后拷贝备份的数据文件。如果恢复的数据文件要求路径不同,执行以下的语句:

改变数据库重命名文件& # 39;old_name& # 39;& # 39;new_name # 39;;

3)恢复数据文件,执行以下语句:

恢复功能& # 39;name_of_file& # 39;;

4)>到此,相信大家对“甲骨文数据库中出现的坏块问题如何处理”有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

甲骨文数据库中出现的坏块问题如何处理