thepg_visibility
모듈은 테이블의 토토 맵 (VM) 및 페이지 수준의 토토 정보를 검사하는 수단을 제공합니다. 또한 토토 맵의 무결성을 확인하고 강제로 재건하도록하는 기능을 제공합니다.
페이지 수준의 가시성에 대한 정보를 저장하는 데 세 가지 다른 비트가 사용됩니다. 가시성 맵의 모든 가시적 비트는 관계의 해당 페이지의 모든 튜플이 모든 현재 및 미래의 트랜잭션에 볼 수 있음을 나타냅니다.pd_all_visible
비트는 토토 맵에서 볼 수있는 비트와 동일한 의미를 지니고 있지만 별도의 데이터 구조가 아닌 데이터 페이지 자체에 저장됩니다. 이 두 비트는 일반적으로 동의하지만, 충돌 회복 후 토토 맵 비트가 명확한 반면, 페이지의 모든 가시 가능한 비트는 때때로 설정 될 수 있습니다.pg_visibility
토토 맵을 검사하고 데이터 페이지를 검사하기 전에. 데이터 손상을 일으키는 모든 사건은 이러한 비트가 동의하지 않을 수 있습니다.
정보를 표시하는 기능pd_all_visible
비트는 토토 맵에만 문의하는 것보다 훨씬 비싸다. 관계의 데이터 블록을 확인하는 기능은 비슷합니다.
pg_visibility_map (관계 regclass, blkno bigint, all_visible out boolean, all_frozen out boolean)을 반환합니다
주어진 관계의 주어진 블록에 대한 토토 맵에서 모든 토토 및 모든 냉동 비트를 반환합니다..
pg_visibility (관계 regclass, blkno bigint, all_visible out boolean, all_frozen out boolean, pd_all_visible out boolean) 레코드를 반환합니다
주어진 관계의 주어진 블록에 대한 토토 맵에서 all-visible 및 all-frozen 비트를 반환합니다.pd_all_visible
그 블록의 비트.
pg_visibility_map (관계 regclass, blkno out bigint, all_visible out boolean, all_frozen out boolean) record 반환
주어진 관계의 각 블록에 대한 토토 맵에서 모든 토토 및 모든 냉동 비트를 반환합니다.
pg_visibility (관계 regclass, blkno out bigint, all_visible out boolean, all_frozen out boolean, pd_all_visible out boolean) records record
주어진 관계의 각 블록에 대한 토토 맵에서 all-visible 및 all-frozen 비트를 반환합니다.pd_all_visible
각 블록의 비트.
pg_visibility_map_summary (관계 regclass, all_visible out bigint, all_frozen out bigint) 레코드를 반환합니다
토토 맵에 따라 모든 가시 가능한 페이지의 수와 관계의 모든 프록 린 페이지 수를 반환합니다.
PG_CHECK_FROZEN (REGCLASS, T_CTID OUT TID)을 반환합니다.
토토 맵에서 모두 프록 린으로 표시된 페이지에 저장된 비 프로젠 튜플의 TID를 반환합니다. 이 함수가 비어 있지 않은 TID 세트를 반환하면 토토 맵이 손상되었습니다.
pg_check_visible (관계 regclass, t_ctid out tid)을 반환합니다.
토토 맵에 all-visible이 표시된 페이지에 저장된 비주교 튜플의 TID를 반환합니다. 이 함수가 비어 있지 않은 TID 세트를 반환하면 토토 맵이 손상되었습니다.
pg_truncate_visibility_map (관계 regclass) 반환 void
주어진 관계에 대한 토토 맵을 잘라냅니다. 이 기능은 관계의 토토 맵이 손상되어 재건을 강요하고 싶다고 생각하는 경우 유용합니다.진공
이 함수가 실행 된 후 주어진 관계에서 실행되면 관계의 모든 페이지를 스캔하고 토토 맵을 재 구축합니다. (그 일이 끝날 때까지 쿼리는 토토 맵을 모든 0을 포함하는 것으로 취급합니다.)
기본적으로 이러한 기능은 슈퍼 사용자와 역할에 의해서만 실행됩니다.PG_STAT_SCAN_TABLE
역할, 제외pg_truncate_visibility_map (REGCLASS)
슈퍼업자 만 실행할 수 있습니다.
Robert Haas<rhaas@postgresql.org
올바르지 않은 문서에 아무것도 표시되면 일치하지 않습니다.이 양식문서 문제를보고하려면