在双机切换、意外断电或其他情况下,有时共享磁盘不会打开,因此需要使用FSCK来修复共享磁盘。修复完成后,在启动数据库的过程中,再次出现“数据块损坏,无法启动数据库”的现象。此时,可以根据不同的数据块损坏类型来检测和修复错误。本文介绍了三种修复受损数据块的方法。
一、数据块损坏,错误码为ORA-
ORA-
通常后跟ORA-737X错误和操作系统错误(如UNIX中的错误号5)
发生原因:
1.硬件问题(磁盘控制器问题或磁盘问题)
2.物理级别的数据块损坏(通常由前一个原因引起)
3.处理大型文件时,错误代码ORA-7371如下
确定故障原因和恢复方法:
1.检查文件中的其他ORA-1115错误:
1)如果指向不同磁盘上的文件,则是磁盘控制器的问题。检查V$,哪些文件位于此控制器下,然后转到步骤2。
2)如果指向同一个磁盘上不同的文件,那就是磁盘问题。转到步骤2。
3)如果指向同一个文件,执行以下语句查找文件名:
,=文件号和块号之间的块号
块-1;
其中,ORA-1115中指出了文件号和块号。如果查询连续指向一个表或索引,它们可以被重构。
2.如果文件是系统表空间或处于NOARCHIVELOG模式,请关闭数据库并转到步骤4。
3.如果数据库处于归档日志模式,数据库仍应关闭。如果数据库无法关闭,相应的数据文件将为OFFLINE:ALTERDatabasedfile '文件名' OFFLINE;
4.尝试将数据文件复制到另一个磁盘。
5.如果复制失败,文件将会丢失。
6.STARTUPMOUNT
7.将数据文件重命名为成功复制到另一个磁盘的文件名:
ALTERDATABASERENAMEFILE“旧路径文件名”到“新路径文件名”;
8.ALTERDATABASEOPEN
9.RECOVERDATAFILE文件名;
ALTERDATABASEDATAFILE '文件名'联机;
其次,回滚段需要恢复
如果回滚段处于“需要恢复”状态,则需要执行以下步骤进行恢复:
1.查看所有在线表空间和数据文件
2.将event=' 10015 tracename context every,level10 '添加到init.ora文件,该文件将生成包含事务和回滚信息的跟踪文件。
3.关闭并重新打开数据库。
4.查看跟踪文件,应该有errorrecoverytx (#,#)对象#。tx (#,#),表示事务信息,其中object #与sys.dba_objects中的object_id相同。
5.使用以下查询查找要恢复的对象:
选择所有者、对象名、对象类型、状态
请联系本网站并及时注明您的姓名。联系邮箱:edu#chinaz.com(改#为@)。