이 오류는 테이블의 데이터와 인덱스의 데이터가 틀려서, 해당 인덱스를 사용할 경우에 특정 조건을 검색하지 못하는 상태일때 발생합니다.
물론 vacuum full 명령으로 테이블/인덱스를 다시 정리할 경우에도 발생하는 오류입니다.
이 오류는 대부분 vacuum full 명령으로 정리되지만, 시스템 카타로그 테이블일경우는 vacuum으로 처리 되지 않습니다.
처리 방법.
1. PostgreSQL 서버 가동을 중지하고,
2. postgres -O -P dbname 명령으로 단일모드로 접속하고 (당연히 dba 계정이어야합니다)
3. reindex index index_name 명령으로 인덱스를 다시 만들고,
4. 서버를 재가동합니다.
-----
* 참고, 데이타 이동량이 많은 경우(적어도 몇백만건 자료 가운데, 수만개의 row가 만들어지고 지워지는 경우, - temp table도 해당됩니다)는 경험상 하루에 한번 정도의 vacuum 이 필요하더군요. vacuum 처리 내용가운데 위 메시지가 나오면 참고하세요.
|