金融it 发表于 2017-9-20 08:33:04

数据库坏块案例

01问题描述某金融企业,下午4点机房突然断电,电力恢复后重启数据库,准备做日终,但是发现数据库启动报错:
02检查分析UNDO文件损坏,无法完成事务恢复。DBV校验发现大量坏块,包括UNDO和普通数据文件。没有数据库备份。
03解决方案修改pfile,添加参数:*._corrupted_rollback_segments=(_SYSSMU12$,_SYSSMU13$) *.event="10513 trace name context forever, level 2"使用pfile启动数据库;创建新的UNDO表空间;跳过坏块数据,全表扫描:Execute DBMS_REPAIR.SKIP_CORRUPT_BLOCKS('<schema>','<tablename>');导出未损坏的数据;恢复未损坏数据,根据业务日志恢复丢失的数据。
04坏块的各种情况
UNDO文件损坏正常关闭实例=>更换新的UNDO表空间;无法正常关闭=>_corrupted_rollback_segments=>打开数据库=>更换undo=>删除损坏的undo=>删除参数重启数据库=>核对数据=>备份。
CURRENT REDO文件损坏正常关闭实例=>recover until cancel=>open resetlogs;无法正常关闭=> *._allow_resetlogs_corruption=TRUE=>open resetlogs。
控制文件损坏正常关闭实例=>create database=>recover=>打开数据库;无法正常关闭=>create database=>recover until cancel=>open resetlogs。
数据文件损坏BBED修复SYSTEM及普通数据文件;正常关闭实例=>打开数据库=>跳过坏块导出数据;不能正常打开数据库=> 10213 event=>open=>跳过坏块导出数据;跳过坏块:rowid range、dbms_repair、10231、index scan。
页: [1]
查看完整版本: 数据库坏块案例