WEB开发网
开发学院数据库Oracle 处理Oracle数据库中的坏块 阅读

处理Oracle数据库中的坏块

 2007-05-08 12:10:02 来源:WEB开发网   
核心提示: Ora-1578 file# (RFN) block#Ora-1110 file# (AFN) block#Ora-600 file# (AFN) block#其中RFN表示的是relative_fnoAFN表示的是file_idSelect file_name,tablespace_na

Ora-1578 file# (RFN) block#

Ora-1110 file# (AFN) block#

Ora-600 file# (AFN) block#

其中RFN表示的是relative_fno

AFN表示的是file_idSelect file_name,tablespace_name,file_id “AFN”,relative_fno “RFN”
From dba_data_files;
Select file_name,tablespace_name,file_id, relative_fno“RFN”
From dba_temp_files;

2. 确定存在坏块的对象是什么SELECT tablespace_name, segment_type, owner, segment_name, partition_name FROM
dba_extents WHERE file_id = and between block_id AND block_id + blocks – 1;

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

3. 根据2中查询出来的对象类型,确定相应的处理方法:

出现坏块的常见对象有

Sys用户下的对象

回滚段

临时段

索引或者分区索引

常用的处理方法有

恢复数据文件

只恢复坏的block(9i以上版本可用)

通过ROWID RANGE SCAN 保存数据

使用DBMS_REPAIR

使用EVENT

4. 具体处理方法的介绍

恢复数据文件方法:

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

步骤如下:

1) 先offline受影响的数据文件,执行以下的语句ALTER DATABASE DATAFILE 'name_file' OFFLINE;

2) 保留有坏块的数据文件,然后拷贝备份的数据文件。如果恢复的数据文件要求路径不同,执行以下的语句ALTER DATABASE RENAME FILE 'old_name' TO 'new_name';

上一页  1 2 3 4  下一页

Tags:处理 Oracle 数据库

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接