토토 커뮤니티 테이블 | 데이터베이스 | 색인이름[힘]
Reindex는 손상된 재건에 사용됩니다 인덱스. 이론적으로 이것은 절대 필요하지 않아야합니다 소프트웨어 버그 또는 하드웨어 고장.Reindex제공 a 복구 방법.
사용자 테이블에서 인덱스의 손상을 의심하면 를 사용하여 해당 인덱스 또는 테이블의 모든 인덱스를 재구성하기 만하면됩니다.Reindex Index또는Reindex 테이블.
참고 :부패한 것을 다루는 또 다른 접근법 사용자 테이블 인덱스는 단지 삭제하고 재현하는 것입니다. 이것은 5 월에 일부를 유지하고 싶다면 사실이 바람직합니다. 한편 테이블에서 정상적인 작동의 유사성.Reindex테이블, while색인 생성잠금 만 out은 테이블을 읽지 않습니다.
회복 해야하는 경우 물건이 더 어렵습니다. 시스템 테이블에서 인덱스의 부패. 이 경우입니다 복구를 수행하지 않도록 복구하는 백엔드가 중요합니다. 용의자의 지수 자체. (실제로, 이런 종류의 시나리오에서 스타트 업에서 백엔드가 즉시 충돌하고 있음을 알 수 있습니다. 손상된 인덱스에 대한 의존으로 인해.) 안전하게 회복하려면 우체국 장은 종료되고 독립형PostgreSQL대신 백엔드를 시작해야합니다. 명령 줄 옵션 -o 및 -p를 제공합니다 (이 옵션은 허용합니다. 시스템 테이블 수정 및 시스템 인덱스 사용 방지, 각기). 그런 다음 발행Reindex Index, Reindex Table또는Reindex 데이터베이스원하는 양에 따라 재구성. 의심스러운 경우 사용Reindex 데이터베이스 힘모든 시스템 인덱스의 재구성을 강제합니다 데이터 베이스. 그런 다음 독립형 백엔드를 종료하고 다시 시작하십시오 우체국 장.
이것이 대부분의 사람들이 할 수있는 유일한 상황이기 때문에 독립형 백엔드를 사용하면 일부 사용 메모가 주문하다:
명령으로 백엔드 시작
postgres -d $ pgdata -o -p my_database
데이터베이스 영역에 대한 올바른 경로를-d
또는
환경 변수pgdata가 설정되었습니다.
또한 원하는 특정 데이터베이스의 이름을 지정하십시오.
작업.
SQL 명령을 발행 할 수 있습니다.Reindex.
독립형 백엔드가 Newline을 명령 입력 터미네이터; 지능이 없습니다 세미콜론,있는 것처럼PSQL. 계속해서 명령을 내립니다 여러 줄은 각각 직전에 백 슬래시를 입력해야합니다 마지막을 제외한 Newline. 또한, 당신은 아무것도 없습니다 Readline 처리의 편의성 (명령 기록 없음 예).
백엔드를 종료하려면 EOF를 입력하십시오 (일반적으로 Control-D, 일반적으로).
참조Postgres자세한 내용은 참조 페이지 정보.