用ORACLE8i修复数据库坏块的三种方法
2007-05-08 12:11:35 来源:WEB开发网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(删除表)。例:
更多精彩
赞助商链接