이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 스포츠 토토 베트맨버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

토토 결과

이름

토토 결과 -- 색인 다시 작성

시놉시스

토토 결과  인덱스 | 표 | 데이터베이스 | 시스템이름[ 강제 ]

설명

토토 결과다음을 사용하여 색인을 다시 작성합니다. 인덱스 테이블에 저장된 데이터, 이전 복사본을 대체 색인. 사용하는 데에는 두 가지 주요 이유가 있습니다.토토 결과:

  • 색인이 손상되어 더 이상 포함되지 않습니다. 유효한 데이터. 이론적으로는 절대 이런 일이 일어나서는 안 되지만, 소프트웨어 버그로 인해 연습 색인이 손상될 수 있습니다. 하드웨어 오류.토토 결과제공 복구 방법입니다.

  • 문제의 색인에는 죽은 색인 페이지가 많이 포함되어 있습니다. 회수되지 않는 것입니다. 이는 B-트리에서 발생할 수 있습니다. 인덱스포스트그레SQL아래 특정 액세스 패턴.토토 결과인덱스의 공간 소비를 줄이는 방법을 제공합니다. 데드 페이지 없이 새 버전의 인덱스를 작성합니다. 참조스포츠 토토 결과 : 문서 : 8.1 : 스포츠 토토 결과 다시 인덱싱더 보기 정보.

매개변수

INDEX

지정된 색인을 다시 생성하십시오.

지정된 테이블의 모든 인덱스를 다시 생성합니다. 만약 테이블에 보조 테이블이 있습니다."토스트"테이블도 다시 색인화되었습니다.

데이터베이스

현재 데이터베이스 내의 모든 색인을 다시 생성하십시오. 공유 시스템 카탈로그의 인덱스는 다음을 제외하고 건너뜁니다. 독립형 모드(아래 참조).

시스템

시스템 카탈로그의 모든 색인을 다시 생성합니다. 현재 데이터베이스. 사용자 테이블의 인덱스는 처리되지 않습니다. 또한 공유 시스템 카탈로그의 인덱스는 다음을 제외하고 건너뜁니다. 독립형 모드에서(아래 참조).

이름

특정 인덱스, 테이블 또는 데이터베이스의 이름 다시 색인화되었습니다. 인덱스 및 테이블 이름은 스키마로 한정될 수 있습니다. 현재,토토 결과 데이터베이스그리고토토 결과 시스템재색인만 가능 현재 데이터베이스이므로 해당 매개변수는 현재 데이터베이스의 이름입니다.

포스

이것은 더 이상 사용되지 않는 옵션입니다. 다음과 같은 경우에는 무시됩니다. 지정되었습니다.

참고

사용자 테이블의 색인 손상이 의심되는 경우 다음을 수행할 수 있습니다. 간단히 다음을 사용하여 해당 인덱스 또는 테이블의 모든 인덱스를 다시 작성하십시오.토토 결과 인덱스또는토토 결과 테이블.

회복해야 한다면 상황은 더욱 어려워집니다 시스템 테이블의 인덱스가 손상되었습니다. 이 경우에는 시스템이 용의자를 사용하지 않은 것이 중요합니다. 자체적으로 인덱스를 생성합니다. (실제로 이런 종류의 시나리오에서는 다음을 찾을 수 있습니다. 서버 프로세스가 시작 시 즉시 충돌하는 것으로 나타났습니다. 손상된 인덱스에 의존합니다.) 안전하게 복구하려면 서버는 다음으로 시작되어야 합니다.-P옵션, 시스템 카탈로그에 대한 색인 사용을 방지함 조회.

이를 수행하는 한 가지 방법은 포스트마스터를 종료하고 독립형PostgreSQL서버 와 함께-P옵션이 포함되어 있습니다. 명령줄. 그럼,토토 결과 데이터베이스, 토토 결과 시스템, 토토 결과 테이블또는토토 결과 인덱스원하는 금액에 따라 발행 가능 재구성하다. 의심스러운 경우 다음을 사용하세요.토토 결과 시스템다음의 모든 시스템 색인 재구성을 선택합니다. 데이터베이스. 그런 다음 독립 실행형 서버 세션을 종료하고 다시 시작합니다. 일반 서버. 참조포스트그레스자세한 내용은 참조 페이지 독립형 서버와 상호 작용하는 방법에 대한 정보 인터페이스.

또는 다음을 사용하여 일반 서버 세션을 시작할 수 있습니다.-P명령줄 옵션에 포함되어 있습니다. 이를 수행하는 방법은 클라이언트마다 다르지만 전체적으로libpq기반 클라이언트입니다. 설정 가능PGOPTIONS환경 변수를-P시작하기 전에 클라이언트. 이 방법에는 잠금이 필요하지 않지만 다른 클라이언트가 있는 경우 다른 사용자가 복구가 완료될 때까지 손상된 데이터베이스에 연결 완료되었습니다.

공유된 인덱스의 손상이 의심되는 경우 시스템 카탈로그(pg_authid, pg_auth_members, pg_database, pg_pltemplate, pg_shdependentpg_tablespace), 독립형 서버는 다음을 충족해야 합니다. 수리하는 데 사용하세요.토토 결과하지 않을 것입니다 다중 사용자 모드에서 공유 카탈로그를 처리합니다.

공유 시스템 카탈로그를 제외한 모든 색인의 경우,토토 결과충돌로부터 안전하고 트랜잭션이 안전합니다.토토 결과공유의 경우 충돌로부터 안전하지 않습니다. 인덱스가 있으므로 이 경우는 정상 작동 중에 허용되지 않습니다. 운영. 다음 중 하나를 다시 색인화하는 동안 오류가 발생하는 경우 독립형 모드에서는 카탈로그를 다시 시작할 수 없습니다. 문제가 해결될 때까지 일반 서버에 접속하세요. (전형적인 부분적으로 재구축된 공유 인덱스의 증상은 다음과 같습니다."색인은 B트리가 아닙니다"오류.)

토토 결과드롭과 유사하며 인덱스 내용이 다시 작성된다는 점에서 인덱스를 다시 만듭니다. 스크래치. 그러나 잠금 고려사항은 오히려 다르다.토토 결과쓰기를 잠그지만 인덱스의 상위 테이블을 읽지 않습니다. 독점도 걸립니다 처리 중인 특정 인덱스를 잠그면 차단됩니다. 해당 인덱스를 사용하려고 시도하는 읽기입니다. 대조적으로,인덱스 삭제일시적으로 독점 잠금을 수행합니다. 상위 테이블은 쓰기와 읽기를 모두 차단합니다. 후속색인 생성쓰기를 잠그지만 잠그지는 않습니다. 읽다; 인덱스가 없기 때문에 읽기를 사용하려고 시도하지 않습니다. 즉, 차단은 없지만 읽기는 불가능할 수 있음을 의미합니다. 비용이 많이 드는 순차 스캔을 수행해야 합니다. 또 다른 중요한 점 삭제/생성 접근 방식은 캐시된 쿼리를 무효화한다는 것입니다. 인덱스를 사용하는 계획, 반면토토 결과그렇지 않습니다.

단일 색인이나 테이블을 다시 색인화하려면 다음의 소유자여야 합니다. 해당 인덱스나 테이블. 데이터베이스를 다시 색인화하려면 데이터베이스 소유자(따라서 소유자는 재구축할 수 있습니다. 다른 사용자가 소유한 테이블의 인덱스). 물론, 슈퍼유저 언제든지 무엇이든 다시 색인화할 수 있습니다.

이전포스트그레SQL 8.1, 토토 결과 데이터베이스처리된 시스템만 이름에서 예상할 수 있듯이 모든 인덱스가 아닌 인덱스입니다. 이 놀라움 요인을 줄이기 위해 변경되었습니다. 오래된 행동 다음과 같이 사용할 수 있습니다.토토 결과 시스템.

이전PostgreSQL 7.4, 토토 결과 테이블자동으로 수행되지 않음 TOAST 테이블을 처리하므로 해당 테이블은 다음에 의해 다시 인덱싱되어야 했습니다. 별도의 명령. 이는 여전히 가능하지만 중복됩니다.

테이블에 인덱스를 다시 생성내_테이블:

토토 결과 테이블 my_table;

단일 색인 재구축:

토토 결과 인덱스 my_index;

신뢰하지 않고 특정 데이터베이스의 모든 색인을 재구축합니다. 이미 유효한 시스템 인덱스:

$ PGOPTIONS="-P" 내보내기
$ psql broken_db...
broken_db= 토토 결과 DATABASE broken_db;
broken_db= \q

호환성

없습니다토토 결과명령 SQL 표준.