#### <> <> <000000> ORA-01110: data file 9: '/home/oracle/OraBase/oradata/QAWEB/datafile/o1_mf_wbxobj_l_5tk3oxx2_.dbf'

java.lang.Throwable: ORA-01578: ORACLE data block corrupted (file # 9, block # 130902)
ORA-01110: data file 9: '/home/oracle/OraBase/oradata/QAWEB/datafile/o1_mf_wbxobj_l_5tk3oxx2_.dbf'

Root Cause: The QA DB shutdown abnormally, it causes to oracle data block corrupted.

Solution:
1.    Check the invalid and broken object

ORA-01578: ORACLE data block corrupted (file # 7, block # ;)
ORA-01110: data file ;: '/oracle1/oradata/V920/oradata/V816/users01.dbf’
其中,<AFN>代表坏块所在数据文件的绝对文件号,;代表坏块是数据文件上的第几个数据块
出现这种情况时,应该首先检查是否是硬件及操作系统上的故障导致Oracle数据库出现坏块。在排除了数据库以外的原因后,再对发生坏块的数据库对象进行处理。

   
   
   
   
  1. SELECT * 
  2. FROM dba_extents 
  3. where file_id = 9 and 130902 between block_id and block_id+blocks-1 

2.    Drop the Index and rebuild it.

###drop the PK of tables

   
   
   
   
  1. ALTER TABLE TEST.WBXCUSTOMERENROLLFIELDSVALUE 
  2.  DROP PRIMARY KEY CASCADE; 

###drop the index 

   
   
   
   
  1. DROP INDEX TEST.PK_WBXCUSTENROLLFLDVALUE; 

###create the PK of tables and the index will be built automatically.

   
   
   
   
  1. ALTER TABLE TEST.WBXCUSTOMERENROLLFIELDSVALUE ADD ( 
  2.   CONSTRAINT PK_WBXCUSTENROLLFLDVALUE 
  3.  PRIMARY KEY 
  4.  (FIELDID, ATTENDEEID, SITEID) 
  5.     USING INDEX  
  6.     TABLESPACE WBXOBJ_LARGE_IDX 
  7.     PCTFREE    10 
  8.     INITRANS   2 
  9.     MAXTRANS   255 
  10.     STORAGE    ( 
  11.                 INITIAL          10M 
  12.                 MINEXTENTS       1 
  13.                 MAXEXTENTS       UNLIMITED 
  14.                 PCTINCREASE      0 
  15.                ));