当oracle 数据库非正常关闭时,可能面临无法启动或无法登陆的问题,其中部分原因是数据库文件损坏所致,如果数据库没有使用备份机制或运行于非归档模式下时,系统数据文件的损坏往往难以完全恢复,本文就经常遇到数据库数据文件损坏,总结了此类问题处理的常用方法
一、检查数据文件、控制文件、日志文件是否有损坏
查看文件$ORACLE_BASE/admin/dbname/bdump/alert_orasid
log 中是否有文件损坏信息,类似如下信息: ORA-01578: ORACLE data block corrupted (file # 7, block # ;) ORA-01110: data file ;: '/oracle1/oradata/V920/oradata/V816/users01
dbf' 通过 file#和找到损坏数据文件和文件类型,然后通过损坏的文件类型确认采用的恢复策略
可以使用dbv 检查数据文件(不适用于日志文件),应注意使用dbv 检查数据文件时应对损坏数据库文件进行备份,dbv 会修改数据文件中部分内容
被检查的数据文件应为脱机状态
dbv 命令含义: 关键字 描述 (Default) ---------------------------------------------------- FILE 待检测文件名 (NONE) START 起始文件块 (First Block of File) END 终止文件块 (Last Block of File) BLOCKSIZE 逻辑块大小 (8192) LOGFILE 输出日志文件 (NONE) FEEDBACK 显示进度 (0) PARFILE 参数文件 (NONE) USERID 用户名/密码 (NONE) SEGMENT_ID Segment ID (ts