可以使用以下脚本快速运行DBMS_REPAIR检查、定位并跳过坏块
1. 需要以SYS用户运行sqlplus
sqlplus '/ as sysdba'
2. 运行以下脚本
- 给定一个表空间,并在此表空间下建立维修表:
BEGIN
DBMS_REPAIR.ADMIN_TABLES (
TABLE_NAME => 'REPAIR_TABLE',
TABLE_TYPE => dbms_repair.repair_table,
ACTION => dbms_repair.create_action,
TABLESPACE => '&tablespace_name');
END;
/
- 对指定的<schema>.<object>检查并确认其中坏块(如果同时指定PARTITION_NAME也可以进行分区级别检查):
set serveroutput on
DECLARE num_corrupt INT;
BEGIN
num_corrupt := 0;
DBMS_REPAIR.CHECK_OBJECT