F.35. PG_스포츠 토토INSPECT-저수준 스포츠 토토 검사#

thepg_스포츠 토토inspect모듈은 실행중인 쓰기 로그의 내용을 검사 할 수있는 SQL 기능을 제공합니다PostgreSQL데이터베이스 클러스터는 낮은 수준의 데이터베이스 클러스터로 디버깅, 분석,보고 또는 교육 목적으로 유용합니다. 와 비슷합니다.pg_스포츠 토토dump이지만 별도의 유틸리티가 아닌 SQL을 통해 액세스 할 수 있습니다.

이 모듈의 모든 기능은 서버의 현재 타임 라인 ID를 사용하여 WAL 정보를 제공합니다.

Note

thePG_스포츠 토토INSPECT함수는 종종 알려진 스포츠 토토의 관심 기록이있는 위치를 지정하는 LSN 인수를 사용하여 호출됩니다시작. 그러나와 같은 일부 기능PG_LOGICAL_EMIT_MESSAGE, LSN을 반환이후방금 삽입 된 레코드.

모든pg_스포츠 토토inspect특정 LSN 범위에 속하는 레코드에 대한 정보를 보여주는 기능은 수락에 대해 허용됩니다end_lsn서버의 현재 LSN 이후의 인수. 사용 사용end_lsn From the Future오류가 발생하지 않습니다.

값을 제공하는 것이 편리 할 수 ​​있습니다ffffffff/ffffffff(최대 유효PG_LSNvalue) asend_lsn인수. 이것은 제공하는 것과 같습니다end_lsn서버의 현재 LSN과 일치하는 인수

기본적으로 이러한 함수의 사용은 슈퍼업자 및 멤버로 제한됩니다PG_READ_SERVER_FILES역할. 슈퍼업자가 접근 할 수있는 다른 사람에게 액세스 권한을 부여 할 수 있습니다.grant.

F.35.1. 일반 기능#

pg_get_스포츠 토토_record_info (in_lsn pg_lsn) 레코드를 반환 #

|in_lsn인수. 예를 들어:

postgres =# select * from pg_get_wal_record_info ( '0/e419e28');
-[레코드 1] ----+---------------------------------------------------
start_lsn | 0/E419E28
end_lsn | 0/E419E68
prev_lsn | 0/E419D78
xid | 0
Resource_Manager | 힙 2
record_type | 진공
record_length | 58
main_data_length | 2
fpi_length | 0
설명 | 수녀 : 5, 미사용 : [1, 2, 3, 4, 5]
block_ref | BLKREF #0 : REL 1663/16385/1249 포크 메인 BLK 364

ifin_lsnWAL 레코드가 시작되지 않으며 다음 유효한 WAL 레코드에 대한 정보가 대신 표시됩니다. 다음에 유효한 WAL 레코드가 없으면 함수는 오류가 발생합니다.

pg_get_wal_records_info (start_lsn pg_lsn, end_lsn pg_lsn) 레코드를 반환 #

|start_lsnandend_lsn. 스포츠 토토 레코드 당 1 행을 반환합니다. 예를 들어:

postgres =# select * from pg_get_wal_records_info ( '0/1e913618', '0/1e913740') 한계 1;
-[레코드 1] ----+------------------------------------------------------------------
start_lsn | 0/1E913618
end_lsn | 0/1E913650
prev_lsn | 0/1E9135A0
xid | 0
Resource_Manager | 대기
record_type | running_xacts
record_length | 50
main_data_length | 24
fpi_length | 0
설명 | NextXID 33775 최종 CompleTeDXID 33774 OldEStrunningXID 33775
block_ref |

함수가 오류가 발생하면start_lsn사용할 수 없습니다.

pg_get_스포츠 토토_block_info (start_lsn pg_lsn, end_lsn pg_lsn, show_data boolean default true) setof record를 반환합니다. #

|start_lsnend_lsn하나 이상의 블록 참조가 포함되어 있습니다. 스포츠 토토 레코드 당 블록 참조 당 1 행을 반환합니다. 예를 들어:

postgres =# select * from pg_get_스포츠 토토_block_info ( '0/1230278', '0/12302b8');
-[레코드 1] -----+---------------------------------------
start_lsn | 0/1230278
end_lsn | 0/12302B8
prev_lsn | 0/122FD40
block_id | 0
Reltablespace | 1663
Reldatabase | 1
Relfilenode | 2658
RelforkNumber | 0
RelBlockNumber | 11
xid | 341
Resource_Manager | Btree
record_type | insert_leaf
record_length | 64
main_data_length | 2
block_data_length | 16
block_fpi_length | 0
block_fpi_info |
설명 | 꺼짐 : 46
block_data | \ x00002A000700402630000070696400
block_fpi_data |

이 예제는 하나의 블록 참조 만 포함 된 스포츠 토토 레코드가 포함되지만 많은 스포츠 토토 레코드에는 여러 블록 참조가 포함되어 있습니다. 행 출력pg_get_스포츠 토토_block_info고유 한 조합이 보장됩니다start_lsnandblock_id값.

여기에 표시된 많은 정보는 그 출력과 일치합니다.PG_GET_스포츠 토토_RECORDS_INFO같은 주장이 주어지면 표시됩니다. 하지만,pg_get_스포츠 토토_block_info블록 참조 당 하나의 행을 출력하여 각 스포츠 토토 레코드의 정보를 확장 형식으로 제공하므로 특정 세부 사항은 전체 레코드 수준이 아닌 블록 참조 레벨에서 추적됩니다. 이 구조는 시간이 지남에 따라 개별 블록이 어떻게 변하는 지 추적하는 쿼리에 유용합니다. 블록 참조가없는 레코드에 유의하십시오 (예 :커밋스포츠 토토 Records)는 줄이 반환되지 않으므로pg_get_스포츠 토토_block_info실제로 돌아올 수 있음더 적은rows보다PG_GET_스포츠 토토_RECORDS_INFO.

thereltablespace, Reldatabaserelfilenode매개 변수 참조PG_TABLESPACE.OID, pg_database.OIDPG_CLASS.relfilenode각각. 그만큼RelforkNumber필드는 블록 참조의 관계 내의 포크 번호입니다. 보다Common/RelPath.h자세한 내용.

thePG_FILENODE_RELATION함수 (참조표 9.101) 원래 실행 중에 수정 된 관계를 결정하는 데 도움이 될 수 있습니다.

클라이언트가 블록 데이터를 구체화하는 오버 헤드를 피할 수 있습니다. 이로 인해 기능 실행이 훨씬 빨라질 수 있습니다. 언제show_data로 설정되었습니다거짓, block_dataandblock_fpi_data값은 생략되었습니다 (즉,block_dataandblock_fpi_data out인수는null모든 행이 반환 된 경우). 분명히,이 최적화는 블록 데이터가 실제로 필요하지 않은 쿼리로만 가능합니다.

함수가 오류가 발생하면start_lsn사용할 수 없습니다.

pg_get_wal_stats (start_lsn pg_lsn, end_lsn pg_lsn, per_record boolean default false) setof record를 반환합니다. #

start_lsnend_lsn. 기본적으로 당 1 행을 반환합니다.Resource_Manager타입. 언제per_record로 설정되었습니다true, 당 1 행을 반환합니다record_type. 예를 들어:

postgres =# select * from pg_get_wal_stats ( '0/1e847d00', '0/1e84f500')
           여기서 count 0 및
                 "resource_manager/record_type"= '트랜잭션'
           한계 1;
-[레코드 1] ---------------+---------------------
Resource_Manager/record_type | 거래
카운트 | 2
count_percentage | 8
record_size | 875
record_size_percentage | 41.23468426013195
fpi_ize | 0
fpi_size_percentage | 0
combined_size | 875
combined_size_percentage | 2.8634072910530795

함수가 오류가 발생하면start_lsn를 사용할 수 없습니다.

F.35.2. 작가#

Bharath Rupireddy

수정 제출

문서에 맞지 않는 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면