
--使用rman 检查
backup validate check logical database;
-- 查询corruption涉及的数据文件及block_id
SQL> select * from v$database_block_corruption;
FILE# BLOCK# BLOCKS CORRUPTION_CHANGE# CORRUPTIO
---------- ---------- ---------- ------------------ ---------
2 31340 3 1.1857E+10 CORRUPT
2 32587 1 1.1858E+10 CORRUPT
2 511849 5 1.1857E+10 CORRUPT
2 569136 8 1.1857E+10 CORRUPT
-- 查询文件及坏块包含的对象
select segment_name,partition_name,segment_type,owner,tablespace_name,block_id
from sys.dba_extents
where file_id=2
and &bad_block_id between block_id and block_id + blocks-1;
1 MGMT_METRICS_RAW_PK INDEX SYSMAN SYSAUX 31336
1 MGMT_METRICS_RAW_PK INDEX SYSMAN SYSAUX 511848
1 MGMT_METRICS_RAW_PK INDEX SYSMAN SYSAUX 569136
-- 查看涉及的表都是SYSMAN.MGMT_METRICS_RAW
-- 尝试查询表报错
SQL> select * from SYSMAN.MGMT_METRICS_RAW;
select * from SYSMAN.MGMT_METRICS_RAW
*
ERROR at line 1:
ORA-01578: ORACLE data block corrupted (file # 2, block # 31340)
ORA-01110: data file 2: '/mnt/vdb1/oracle/oradata/nip/sysaux01.dbf'
SQL>
-- 尝试分析表发现报错
SQL> ANALYZE TABLE SYSMAN.MGMT_METRICS_RAW VALIDATE STRUCTURE CASCADE;
ANALYZE TABLE SYSMAN.MGMT_METRICS_RAW VALIDATE STRUCTURE CASCADE
*
ERROR at line 1:
ORA-01578: ORACLE data block corrupted (file # 2, block # 511851)
ORA-01110: data file 2: '/mnt/vdb1/oracle/oradata/nip/sysaux01.dbf'
-- 查询删除主键报错
SQL> alter table SYSMAN.MGMT_METRICS_RAW drop primary key;
alter table SYSMAN.MGMT_METRICS_RAW drop primary key
*
ERROR at line 1:
ORA-25188: cannot drop/disable/defer the primary key constraint for index-organized tables or sorted hash cluster