WEB开发网
开发学院数据库Oracle 用ORACLE8i修复数据库坏块的三种方法 阅读

用ORACLE8i修复数据库坏块的三种方法

 2007-05-08 12:11:35 来源:WEB开发网   
核心提示: 5.如果拷贝失败,则文件将丢失,用ORACLE8i修复数据库坏块的三种方法(2),6.STARTUP MOUNT;7.将数据文件重命名为成功拷贝到别的磁盘的文件名:ALTER DATABASE RENAME FILE '老路径文件名' TO '新路径文件名'

5.如果拷贝失败,则文件将丢失。

6.STARTUP MOUNT;

7.将数据文件重命名为成功拷贝到别的磁盘的文件名:

ALTER DATABASE RENAME FILE '老路径文件名' TO '新路径文件名';

8.ALTER DATABASE OPEN;

9.RECOVER DATAFILE 文件名;

ALTER DATABASE DATAFILE '文件名' ONLINE;

二、回滚段需要恢复

如果回滚段处于NEED RECOVERY状态,需要执行以下步骤进行恢复:

1.查看所有联机的表空间与数据文件

2.在init.ora文件中加入event = "10015 trace name context forever,level 10",这将生成一个追踪文件,其中含有事务与回滚的信息。

3.关闭并重新打开数据库。

4.查看TRACE文件,应有error recovery tx(#,#) object #.TX(#,#),指出事务信息,其中object #与sys.dba_objects中的object_id相同。

5.使用以下查询找出正在进行恢复的对象:

SELECT owner,object_name,object_type,status FROM dba_objects WHERE object_id=‘’

6.必须删除该对象以释放回滚块。

三、检测与修复损坏块的常用方法

(一)使用初始化参数DB_BLOCK_CHECKING与DB_BLOCK_CHECKSUM。

当块改变时,DB_BLOCK_CHECKING对块进行逻辑校验。将防止发生10210 与10211错误。

(二)使用DBMS_REPAIR包,由dbmsrpr.sql与prvtrpr.plb生成该包在特定表中生成损坏块的信息。

1.DBMS_REPAIR.ADMIN_TABLES用于创建与删除存储损坏块的表。其中TABLE_TYPE为:REPAIR_TABLE(表),ORPHAN_TABLE(索引);ACTION为:CREATE_ACTION(创建表),PURGE_ACTION(删除无关数据),DROP_ACTION(删除表)。例:

Tags:ORACLEi 修复 数据库

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