| |
ora-600[6033] error에 관하여
한국 Oracle 자료입니다.
ora-600[6033] error는 index scan시 null pointer가 return되어 나는 error message로
( memory ) buffer의 값과 (disk) block의 값이 mitmatch되어 발생된다.
이에 대한 조치로는 error가 발생한 sql statement에서의 table을 먼저 analyze하고
table의 index관련 error가 난다면 이를 rebuild해야 하며
보다 정확히 하려면 table에 있는 모든 index에 대해서도 analyze해서 문제가 있다면
drop/create작업을 해주어야 한다.
race file에 보면 SOUT03MT table에 대한 query시 ora-600[6033] error가
발생했는데
일단 이 table의 index list는 다음과 같이 하여 확인합니다.
sqlplus>select index_name from user_indexes where table_name='SOUT03MT';
또한 where절에 AW_DTE, CNT,SETUP_KIND,PRGS_STAT, WORK_NO 과 같은 column의
조건을
사용하셨는데 이것중이나 조합으로 만들어진 index가 있다면 조사하시고 다시
만들어 주시기
바랍니다.
다음의 자료를 참고 하셔서 analyze작업을 해 주시기 바랍니다.
** analyze table tname validate structure 명령이 수행하는 작업.
analyze { index/table/cluster } (schema.){ index/table/cluster }
validate structure (cascade) (into schema.table);
index/table/cluster의 구조에 대한 integrity check에 사용된다.
oracle이 성공적으로 structure에 대한 검증을 마치게 되면 아무런
message를 남기지 않지만, corruption을 발견하게 되는 경우에는
error message를 내주게 되며, 이 경우 해당 object를 drop후
recreate하는 작업이 수행되어야 한다.
object에 대하여 validate structure 작업을 진행중에는 해당 object에
대한 select, insert, update, delete 작업을 수행할 수 없으므로,
해당 object에 대하여 빈번한 access가 발생하는 경우에는 수행하지
말아야 한다.
Indexes
analyze index index_name validate structure;
validate structure를 수행시 index의 각 block에 대하여 corrput
여부를 check하게 된다. 한가지 주의하여야 할 사항은, index에 대한
validate structute 작업시에는 table과 index간의 cross-referencing
check를 수행하지 않으며, table에 대한 validation check시에만
cross-referencing check가 수행 가능하다.
validate structure 작업이 수행되면, index에 대한 통계정보가
수집되며 이는 INDEX_STATS라는 dictionary view에 저장되는데,
INDEX_STATS view는 항상 하나의 row만을 유지한다.
이전에 수집된 정보는 새로운 정보가 발생시 overwrite된다.
INDEX_STATS view에 생성된 정보는 oracle7 optimizer에 의해
사용되지 않으며, compute / estimate option으로 수집된 정보만이
optimizer에 의해 사용된다는 점을 유의하여야 한다.
<< INDEX_STATS View 자료의 활용은 Bulletin 11328을 참조 >>
Tables
analyze table table_name validate structure cascade;
validate structure를 수행시 data block과 row에 대한 integrity
check를 수행하며, CASCADE option을 사용하는 경우 table과 index
간의 cross-referencing check를 수행하게 된다.
cross-referencing check에서는 table의 indexed column의 값과
index entry의 값이 비교되며, 정확한 rowid를 가지고 있는지
check한다.
|