이 섹션에 설명 된 토토 핫은 A를 제어하고 모니터링하는 데 사용됩니다postgresql설치.
표 9.83쿼리 및 변경 런타임 구성 매개 변수에 사용할 수있는 토토 핫을 표시합니다.
표 9.83. 구성 설정 기능
function
설명
예제
|
current_setting ( setting_name 텍스트 [, Missing_ok 부울 ]) →텍스트
설정의 현재 값을 반환setting_name . 그러한 설정이 없다면current_setting 오류가 발생하지 않는 한Missing_ok 제공되었으며true (이 경우 NULL이 반환됩니다). 이 토토 핫은에 해당합니다.SQL명령Show.
current_setting ( 'datestyle') → ISO, MDY
|
set_config ( setting_name 텍스트 , new_value 텍스트 , is_local 부울 ) →텍스트
매개 변수 설정setting_name tonew_value , 그 값을 반환합니다. 만약에is_local istrue , 새 값은 현재 거래 중에 만 적용됩니다. 새로운 값이 현재 세션의 나머지 부분에 신청하려면거짓 대신. 이 함수는 SQL 명령에 해당합니다SET.
set_config ( 'log_statement_stats', 'off', false) → OFF
|
표 9.84다른 서버 프로세스로 제어 신호를 보냅니다. 이러한 토토 핫의 사용은 기본적으로 슈퍼 사용자로 제한되지만를 사용하여 다른 사람에게 액세스가 부여 될 수 있습니다.grant
, 예외가있는 것으로 나타났습니다.
이러한 각 함수가 반환true
성공하고거짓
그렇지 않으면.
표 9.84. 서버 신호 기능
function
설명
|
pg_cancel_backend ( PID Integer ) →부울
백엔드 프로세스에 지정된 프로세스 ID가있는 세션의 현재 쿼리를 취소합니다. 호출 역할이 백엔드가 취소되거나 호출 역할이 부여 된 역할의 구성원 인 경우에도 허용됩니다pg_signal_backend , 그러나 슈퍼 사용자 만 수퍼 유저 백엔드를 취소 할 수 있습니다.
|
pg_reload_conf () →부울
의 모든 프로세스를 유발합니다postgresql구성 파일을 다시로드하려면 서버. (이것은 a를 보내면 시작됩니다.SighupPostmaster 프로세스에 대한 신호를 보내고, 이로 인해Sighup각 자녀에게.)
|
pg_rotate_logfile () →부울
로그 파일 관리자가 새 출력 파일로 즉시 전환하도록 신호를 보냅니다. 로그 파일 관리자 하위 프로세스가 없기 때문에 내장 로그 수집기가 실행 중일 때만 작동합니다.
|
pg_terminate_backend ( PID Integer ) →부울
백엔드 프로세스에 지정된 프로세스 ID가있는 세션을 종료합니다. 전화 역할이 백엔드가 종료되거나 호출 역할이 부여 된 역할의 구성원 인 경우에도 허용됩니다pg_signal_backend , 그러나 슈퍼 사용자 만 슈퍼업자 백엔드를 종료 할 수 있습니다.
|
pg_cancel_backend
andpg_terminate_backend
신호 전송 (Sigint또는Sigterm각각) 프로세스 ID로 식별 된 백엔드 프로세스. 활성 백엔드의 프로세스 ID는에서 찾을 수 있습니다.PID
열의 열pg_stat_activity
보기 또는 목록을 작성하여Postgres
서버의 프로세스 (사용PSon Unix 또는작업 관리자onWindows). 활성 백엔드의 역할은에서 찾을 수 있습니다.useName
열의 열pg_stat_activity
보기
표 9.85온라인 백업을 지원합니다. 이러한 기능은 복구 중에 실행할 수 없습니다 (비 독점적 인 제외PG_START_BACKUP
, 비 독점PG_STOP_BACKUP
, pg_is_in_backup
, pg_backup_start_time
andPG_WAL_LSN_DIFF
).
이러한 토토 핫의 적절한 사용에 대한 자세한 내용은 참조롤 토토 PostgreSQL : 문서 : 13 : 25.3. 연속 보관 및 시점 복구 (PITR).
표 9.85. 백업 제어 기능
function
설명
|
pg_create_restore_point ( 이름 텍스트 ) →PG_LSN
나중에 복구 대상으로 사용할 수있는 쓰기 로그에서 명명 된 마커 레코드를 작성하고 해당 쓰기 로그 위치를 반환합니다. 주어진 이름은와 함께 사용할 수 있습니다.복구 _target_name회복이 진행될 요점을 지정합니다. 동일한 이름의 여러 복원 지점을 생성하지 마십시오. 회복이 회복 대상과 일치하는 첫 번째 이름에서 회복이 중지되므로
이 토토 핫은 기본적으로 슈퍼 사용자로 제한되지만 다른 사용자는 함수를 실행하도록 실행할 수 있습니다.
|
PG_CURRENT_WAL_FLUSH_LSN () →PG_LSN
현재 쓰기 로그 플러시 위치를 반환합니다 (아래 참고 참조).
|
PG_CURRENT_WAL_INSERT_LSN () →PG_LSN
현재 쓰기 로그 삽입 위치를 반환합니다 (아래 참고 참조).
|
PG_CURRENT_WAL_LSN () →PG_LSN
현재 쓰기 로그 쓰기 위치를 반환합니다 (아래 참조 참조).
|
PG_START_BACKUP ( 레이블 텍스트 [, 빠른 부울 [, 독점 부울 ]]) →PG_LSN
서버가 온라인 백업을 시작하도록 준비합니다. 필요한 유일한 매개 변수는 백업을위한 임의의 사용자 정의 레이블입니다.true , 실행을 지정PG_START_BACKUP 가능한 빨리. 이렇게하면 즉각적인 체크 포인트가 발생하여 I/O 작업이 급증하여 동시에 실행되는 쿼리가 느려집니다.
독점 모드에서 사용하면이 기능은 백업 레이블 파일 (을 씁니다.backup_label ) 그리고 링크가있는 경우PG_TBLSPC/ 디렉토리, 테이블 스페이스 맵 파일 (TableSpace_map ) 데이터베이스 클러스터의 데이터 디렉토리로 확인한 다음 체크 포인트를 수행 한 다음 백업의 시작 쓰기 로그 위치를 반환합니다. (사용자는이 결과 값을 무시할 수 있지만 유용한 경우에 제공됩니다.) 비 독점 모드에서 사용하면이 파일의 내용은 대신에 의해 반환됩니다.PG_STOP_BACKUP 함수, 사용자가 백업 영역에 복사해야합니다.
이 토토 핫은 기본적으로 슈퍼 사용자로 제한되지만 다른 사용자는 함수를 실행하도록 실행할 수 있습니다.
|
PG_STOP_BACKUP ( 독점 부울 [, Wait_for_archive 부울 ]) →Setof Record ( LSN PG_LSN , labelfile 텍스트 , SPCMAPFILE 텍스트 )
독점적이거나 비 독점적 인 온라인 백업을 수행합니다. 그만큼독점 매개 변수는 이전과 일치해야합니다PG_START_BACKUP 전화. 독점 백업에서PG_STOP_BACKUP 백업 레이블 파일을 제거하고, 존재하는 경우에 의해 만든 테이블 스페이스 맵 파일PG_START_BACKUP . 비 독점적 인 백업 에서이 파일의 원하는 내용은 함수 결과의 일부로 리턴되며 백업 영역 (데이터 디렉토리가 아닌)의 파일에 기록되어야합니다..
유형의 선택적 두 번째 매개 변수가 있습니다부울 . False 인 경우 WAL이 보관되기를 기다리지 않고 백업이 완료된 직후에 함수가 반환됩니다.PG_STOP_BACKUP 아카이브가 활성화 될 때 WAL이 보관 될 때까지 기다립니다. (대기에서, 이것은 만 기다릴 것임을 의미합니다.archive_mode = 항상 . 1 차에 대한 쓰기 활동이 낮 으면 실행하는 것이 유용 할 수 있습니다PG_SWITCH_WAL 즉시 세그먼트 스위치를 트리거하기 위해 기본의 경우.)
기본에서 실행되면이 기능은 쓰기 로그 아카이브 영역에서 백업 기록 파일을 만듭니다. 히스토리 파일에는에 주어진 레이블이 포함되어 있습니다.PG_START_BACKUP , 백업을위한 시작 및 종료 쓰기 로그 위치 및 백업의 시작 및 종료 시간. 결말 위치를 기록한 후, 현재 쓰기 로그 삽입 지점은 다음 쓰기 로그 파일로 자동으로 발전하여 종료 쓰기 로그 파일을 즉시 보관하여 백업을 완료 할 수 있습니다..
함수의 결과는 단일 레코드입니다. 그만큼LSN 열은 백업의 종료 쓰기 로그 위치를 보유합니다 (다시 무시할 수 있음). 두 번째 및 세 번째 열은입니다.NULL 독점 백업을 종료 할 때; 비 독점적 인 백업 후에는 레이블 및 테이블 스페이스 맵 파일의 원하는 내용을 보유합니다.
이 토토 핫은 기본적으로 슈퍼 사용자로 제한되지만 다른 사용자는 함수를 실행하도록 실행할 수 있습니다.
|
PG_STOP_BACKUP () →PG_LSN
독점적 인 온라인 백업을 수행합니다. 이 단순화 된 버전은와 같습니다.pg_stop_backup (true, true) ,를 제외하고.PG_LSN 결과.
이 토토 핫은 기본적으로 슈퍼 사용자로 제한되지만 다른 사용자는 함수를 실행하도록 실행할 수 있습니다.
|
pg_is_in_backup () →부울
온라인 독점 백업이 진행중인 경우 True를 반환합니다.
|
pg_backup_start_time () →시간대가있는 타임 스탬프
현재 온라인 독점 백업의 시작 시간을 반환합니다. 그렇지 않으면NULL .
|
PG_SWITCH_WAL () →PG_LSN
서버가 새로운 쓰기 로그 파일로 전환하도록 강요하므로 현재 파일을 보관할 수 있습니다 (연속 아카이브를 사용한다고 가정). 결과는 방금 완성 된 쓰기 로그 파일 내에서 끝물 쓰기 로그 위치 + 1입니다.PG_SWITCH_WAL 현재 사용중인 쓰기 로그 파일의 시작 위치를 아무것도하지 않고 반환합니다.
이 토토 핫은 기본적으로 슈퍼 사용자로 제한되지만 다른 사용자는 함수를 실행하도록 실행할 수 있습니다.
|
pg_walfile_name ( LSN PG_LSN ) →텍스트
쓰기 로그 위치를 해당 위치를 고정하는 WAL 파일의 이름으로 변환합니다.
|
pg_walfile_name_offset ( LSN PG_LSN ) →레코드 ( file_name 텍스트 , file_offset Integer )
쓰기 로그 위치를 해당 파일 내에서 WAL 파일 이름과 바이트 오프셋으로 변환합니다.
|
PG_WAL_LSN_DIFF ( LSN1 PG_LSN , LSN2 PG_LSN ) →숫자
바이트 차이를 계산합니다 (LSN1 - LSN2 ) 두 개의 쓰기 로그 위치 사이. 이것은와 함께 사용할 수 있습니다.pg_stat_replication 또는 일부 기능에 표시된 기능표 9.85복제 지연을 얻으려면
|
PG_CURRENT_WAL_LSN
현재 쓰기 로그 쓰기 위치를 위의 함수에서 사용하는 것과 동일한 형식으로 표시합니다. 비슷하게,PG_CURRENT_WAL_INSERT_LSN
현재 쓰기 로그 삽입 위치를 표시합니다.PG_CURRENT_WAL_FLUSH_LSN
현재 쓰기 로그 플러시 위치를 표시합니다. 삽입 위치는입니다.“Logical”모든 순간에 쓰기 전달 로그의 끝, 쓰기 위치는 서버의 내부 버퍼에서 실제로 작성된 내용의 끝이지만 플러시 위치는 내구성있는 스토리지에 기록 된 마지막 위치입니다. 쓰기 위치는 서버 외부에서 검사 할 수있는 것의 끝이며, 부분적으로 완료 된 쓰기 로그 파일을 보관하는 데 관심이있는 경우 일반적으로 원하는 것입니다.
사용할 수 있습니다pg_walfile_name_offset
해당 쓰기 로그 파일 이름과 바이트 오프셋을 추출하려면PG_LSN
값. 예를 들어:
postgres =# select * from pg_walfile_offset_offset (pg_stop_backup ());
마찬가지로,pg_walfile_name
쓰기 로그 파일 이름 만 추출합니다. 주어진 쓰기 전달 로그 위치가 Write-Ahead Log 파일 경계에있는 경우,이 두 함수는 앞의 쓰기 전달 로그 파일의 이름을 반환합니다.
표 9.86대기 서버의 현재 상태에 대한 정보를 제공합니다. 이러한 기능은 회복 중 및 정상 달리기에서 실행될 수 있습니다.
표 9.86. 복구 정보 기능
function
설명
|
PG_IS_IN_RECOVERY () →부울
복구가 아직 진행중인 경우 True를 반환합니다.
|
PG_LAST_WAL_RECEIVE_LSN () →PG_LSN
스트리밍 복제를 통해 수신 된 마지막 쓰기 로그 위치를 반환합니다. 스트리밍 복제가 진행되고 있지만 단조로 증가합니다.NULL .
|
PG_LAST_WAL_REPLAY_LSN () →PG_LSN
복구 중에 재생 된 마지막 쓰기 로그 위치를 반환합니다. 회복이 여전히 진행 중이면 단조로 증가합니다.NULL .
|
PG_LAST_XACT_REPLAY_TIMESTAMP () →시간대가있는 타임 스탬프
복구 중에 재생 된 마지막 거래의 타임 스탬프를 반환합니다. 해당 거래에 대한 Commit 또는 Abort WAL 레코드가 기본에서 생성 된 시간입니다.NULL . 그렇지 않으면 회복이 여전히 진행 중이면 단조로 증가합니다.NULL .
|
표 9.87회복 진행 상황을 제어합니다. 이러한 토토 핫은 회복 중에 만 실행될 수 있습니다.
표 9.87. 복구 제어 기능
function
설명
|
PG_IS_WAL_REPLAY_PAUSED () →부울
복구가 일시 중지되면 True를 반환합니다.
|
PG_PROMOTE ( 대기 부울 기본값 true , Wait_seconds Integer 기본값 60 ) →부울
대기 서버를 기본 상태로 홍보합니다. 와 함께대기 설정true (기본값), 기능은 프로모션이 완료 될 때까지 대기 또는Wait_seconds 초가 지나고 반환true 프로모션이 성공하고거짓 그렇지 않으면. 만약에대기 로 설정되었습니다거짓 , 함수는 반환true a을 보내 자마자SigusR1 프로모션을 트리거하기 위해 우체국 장에게 신호를 보냅니다.
이 토토 핫은 기본적으로 슈퍼 사용자로 제한되지만 다른 사용자는 함수를 실행하도록 실행할 수 있습니다.
|
pg_wal_replay_pause () →void
회복을 일시 중지합니다. 복구가 일시 중지되는 동안 더 이상 데이터베이스 변경 사항이 적용되지 않습니다.
이 토토 핫은 기본적으로 슈퍼 사용자로 제한되지만 다른 사용자는 함수를 실행하도록 실행할 수 있습니다.
|
PG_WAL_REPLAY_RESUME () →void
일시 정지 된 경우 복구를 다시 시작합니다.
이 토토 핫은 기본적으로 슈퍼 사용자로 제한되지만 다른 사용자는 함수를 실행하도록 실행할 수 있습니다.
|
pg_wal_replay_pause
andPG_WAL_REPLAY_RESUME
프로모션이 진행되는 동안 실행할 수 없습니다. 회복이 일시 중지되는 동안 프로모션이 트리거되면 일시 정지 상태가 끝나고 승진이 계속됩니다.
스트리밍 복제가 비활성화되면 일시 정지 상태는 문제없이 무기한으로 계속 될 수 있습니다. 스트리밍 복제가 진행 중이면 WAL 레코드가 계속 수신 될 것이며, 이는 일시 정지 기간, 월 생성 속도 및 사용 가능한 디스크 공간에 따라 사용 가능한 디스크 공간을 채우게됩니다..
postgresql데이터베이스 세션이 스냅 샷을 동기화 할 수 있습니다. 에이스냅 샷스냅 샷을 사용하는 트랜잭션에 표시되는 데이터를 결정합니다. 둘 이상의 세션이 데이터베이스에서 동일한 컨텐츠를 볼 필요가있는 경우 동기화 된 스냅 샷이 필요합니다.트랜잭션 시작
명령, 한 세션은 해당 거래의 영향을보고 다른 세션은 그렇지 않습니다..
이 문제를 해결하려면postgresql거래를 허용Export사용중인 스냅 샷. 수출 거래가 계속 열려있는 한 다른 거래는가져 오기스냅 샷이므로 첫 번째 트랜잭션에서 볼 수있는 데이터베이스와 정확히 동일한보기를 보장합니다. 그러나 이러한 트랜잭션 중 하나에 의해 이루어진 데이터베이스 변경은 커밋되지 않은 트랜잭션의 변경 사항과 마찬가지로 다른 트랜잭션에 보이지 않습니다.
스냅 샷은PG_EXPORT_SNAPSHOT
함수, 표시표 9.88및로 가져 오기거래 설정명령.
표 9.88. 스냅 샷 동기화 함수
function
설명
|
PG_EXPORT_SNAPSHOT () →텍스트
트랜잭션의 현재 스냅 샷을 저장하고 a를 반환합니다.텍스트 스냅 샷을 식별하는 문자열. 이 문자열은 스냅 샷을 가져 오려는 클라이언트에게 (데이터베이스 외부) 전달되어야합니다.
필요한 경우 트랜잭션이 둘 이상의 스냅 샷을 내보낼 수 있습니다. 그렇게하는 것은에서만 유용합니다.Committed 읽기 그 이후의 거래반복 가능한 읽기 및 더 높은 격리 수준 인 트랜잭션은 평생 동안 동일한 스냅 샷을 사용합니다. 트랜잭션이 스냅 샷을 내보내면로 준비 할 수 없습니다.거래 준비.
|
표 9.89는 복제 토토 핫을 제어하고 상호 작용하기위한 것입니다. 보다섹션 26.2.5, 섹션 26.2.6및PostgreSQL : 문서 : 13 : 49 장 토토 커뮤니티 진행 추적기본 토토 핫에 대한 정보. 복제 원점에 대한 토토 핫 사용은 슈퍼 사용자로 제한됩니다.복제
특권.
이러한 기능 중 많은 부분이 복제 프로토콜에 동등한 명령을 가지고 있습니다. 보다PostgreSQL : 문서 : 13 : 52.4. 배트맨 토토 복제 프로토콜.
에 설명 된 기능섹션 9.27.3, 섹션 9.27.4및섹션 9.27.5복제와 관련이 있습니다.
표 9.89. 복제 관리 기능
function
설명
|
PG_CREATE_PHYSICAL_REPLICATION_SLOT ( slot_name 이름 [, 즉시 _Reserve 부울 , 임시 부울 ]) →레코드 ( slot_name 이름 , LSN PG_LSN )
새 물리적 복제 슬롯을 만듭니다slot_name . 선택적 두 번째 매개 변수,true , 지정LSN이 복제 슬롯에 대해 즉시 예약하십시오. 그렇지 않으면LSN스트리밍 복제 클라이언트의 첫 번째 연결에 예약되어 있습니다. 물리적 슬롯의 스트리밍 변경은 스트리밍 반복 프로토콜에서만 가능합니다. 참조PostgreSQL : 문서 : 13 : 52.4. 배트맨 토토 복제 프로토콜. 선택적 세 번째 매개 변수임시 , true로 설정되면 슬롯이 디스크에 영구적으로 저장되어서는 안되며 현재 세션에서만 사용하기위한 것을 지정합니다. 임시 슬롯도 오류에 따라 해제됩니다.create_replication_slot ... 물리적 .
|
PG_DROP_REPLICATION_SLOT ( slot_name 이름 ) →void
물리적 또는 논리적 복제 슬롯을 삭제합니다slot_name . 복제 프로토콜 명령과 동일Drop_Replication_Slot . 논리 슬롯의 경우 슬롯이 생성 된 동일한 데이터베이스에 연결된 상태에서 호출해야합니다.
|
pg_create_logical_replication_slot ( slot_name 이름 , 플러그인 이름 [, 임시 부울 ]) →레코드 ( slot_name 이름 , LSN PG_LSN )
새로운 논리적 (디코딩) 복제 슬롯을 만듭니다slot_name 출력 플러그인 사용플러그인 . 선택적 세 번째 매개 변수임시 , true로 설정되면 슬롯이 디스크에 영구적으로 저장되어서는 안되며 현재 세션에서만 사용하기위한 것임을 지정합니다. 임시 슬롯도 오류에 따라 해제됩니다.create_replication_slot ... logical .
|
PG_COPY_PHYSICAL_REPLICATION_SLOT ( src_slot_name 이름 , DST_SLOT_NAME 이름 [, 임시 부울 ]) →레코드 ( slot_name 이름 , LSN PG_LSN )
기존의 물리적 복제 슬롯이라는 사본src_slot_name 물리적 복제 슬롯에 명명 된DST_SLOT_NAME . 복사 된 물리적 슬롯은 동일한 곳에서 WAL을 예약하기 시작합니다LSN소스 슬롯으로임시 선택 사항입니다. 만약에임시 생략, 소스 슬롯과 동일한 값이 사용됩니다.
|
pg_copy_logical_replication_slot ( src_slot_name 이름 , DST_SLOT_NAME 이름 [, 임시 부울 [, 플러그인 이름 ]]) →레코드 ( slot_name 이름 , LSN PG_LSN )
기존 논리적 복제 슬롯이라는 사본src_slot_name 논리적 복제 슬롯에 명명 된DST_SLOT_NAME , 선택적으로 출력 플러그인과 지속성을 변경합니다. 복사 된 논리적 슬롯은 동일하게 시작됩니다LSN소스 논리 슬롯으로. 둘 다임시 and플러그인 선택 사항입니다. 생략되면 소스 슬롯의 값이 사용됩니다.
|
PG_LOGICAL_SLOT_GET_CHANGES ( slot_name 이름 , upto_lsn PG_LSN , upto_nchanges Integer , variadic 옵션 텍스트 [] ) →Setof Record ( LSN PG_LSN , xid xid , 데이터 텍스트 )
슬롯의 변경 사항을 반환slot_name , 변경 사항이 마지막으로 소비 된 지점에서 시작합니다. 만약에upto_lsn andupto_nchanges NULL, WAL이 끝날 때까지 논리적 디코딩이 계속됩니다. 만약에upto_lsn 는 널이없고 디코딩에는 지정된 LSN 이전에 저지른 거래 만 포함됩니다. 만약에upto_nchanges 는 널이없고 디코딩으로 생성 된 행의 수가 지정된 값을 초과 할 때 디코딩이 중지됩니다. 그러나이 한계는 각각의 새로운 트랜잭션 커밋을 해독 할 때 생성 된 행을 추가 한 후에 만 확인되므로 반환 된 실제 행 수는 더 클 수 있습니다..
|
PG_LOGICAL_SLOT_PEEK_CHANGES ( slot_name 이름 , upto_lsn PG_LSN , upto_nchanges Integer , variadic 옵션 텍스트 [] ) →Setof Record ( LSN PG_LSN , xid xid , 데이터 텍스트 )
똑같이 행동pg_logical_slot_get_changes () 변경 사항이 소비되지 않는 경우를 제외하고 토토 핫; 즉, 향후 전화로 다시 반환됩니다.
|
pg_logical_slot_get_binary_changes ( slot_name 이름 , upto_lsn PG_LSN , upto_nchanges Integer , variadic 옵션 텍스트 [] ) →Setof Record ( LSN PG_LSN , xid xid , 데이터 BYTEA )
똑같이 행동pg_logical_slot_get_changes () 변경 사항을 제외하고는BYTEA .
|
pg_logical_slot_peek_binary_changes ( slot_name 이름 , upto_lsn PG_LSN , upto_nchanges Integer , variadic 옵션 텍스트 [] ) →Setof Record ( LSN PG_LSN , xid xid , 데이터 BYTEA )
똑같이 행동PG_LOGICAL_SLOT_PEEK_CHANGES () 변경 사항을 제외하고는BYTEA .
|
pg_replication_slot_advance ( slot_name 이름 , upto_lsn PG_LSN ) →레코드 ( slot_name 이름 , end_lsn PG_LSN )
replication replication 슬롯의 현재 확인 된 위치를 발전시킵니다slot_name . 슬롯은 뒤로 이동하지 않으며 현재 삽입 위치를 넘어서지 않습니다.
|
pg_replication_origin_create ( node_name 텍스트 ) →OID
지정된 외부 이름으로 복제 원점을 생성하고 지정된 내부 ID를 반환합니다.
|
pg_replication_origin_drop ( node_name 텍스트 ) →void
관련 재생 진행을 포함하여 이전에 제작 된 복제 원점을 삭제합니다.
|
pg_replication_origin_oid ( node_name 텍스트 ) →OID
이름으로 복제 원점을 찾아 내부 ID를 반환합니다. 그러한 복제 원점이 발견되지 않으면NULL 반환됩니다.
|
pg_replication_origin_session_setup ( node_name 텍스트 ) →void
현재 세션을 주어진 원점에서 재생하는 것으로 표시하여 재생 진행을 추적 할 수 있습니다. 현재 원점이 선택되지 않은 경우에만 사용할 수 있습니다.pg_replication_origin_session_reset 실행 취소.
|
pg_replication_origin_session_reset () →void
의 효과를 취소합니다pg_replication_origin_session_setup () .
|
pg_replication_origin_session_is_setup () →부울
현재 세션에서 복제 원점이 선택된 경우 true를 반환합니다.
|
pg_replication_origin_session_progress ( 플러시 부울 ) →PG_LSN
현재 세션에서 선택한 복제 원점의 재생 위치를 반환합니다. 매개 변수플러시 해당 지역 거래가 디스크로 플러시되었는지 여부를 결정합니다.
|
pg_replication_origin_xact_setup ( origin_lsn PG_LSN , origin_timestamp 시간대가있는 타임 스탬프 ) →void
현재 트랜잭션을 주어진 거래에서 저지른 거래를 재생하는 것으로 표시LSN및 타임 스탬프. 복제 원점을 사용하여 선택한 경우에만 호출 할 수 있습니다.pg_replication_origin_session_setup .
|
pg_replication_origin_xact_reset () →void
의 효과를 취소합니다pg_replication_origin_xact_setup () .
|
pg_replication_origin_advance ( node_name 텍스트 , LSN PG_LSN ) →void
지정된 노드에 대한 복제 진행을 주어진 위치로 설정합니다. 이는 주로 초기 위치를 설정하거나 구성 변경 및 이와 유사한 후 새 위치를 설정하는 데 유용합니다.
|
pg_replication_origin_progress ( node_name 텍스트 , 플러시 부울 ) →PG_LSN
주어진 복제 원점의 재생 위치를 반환합니다. 매개 변수플러시 해당 지역 거래가 디스크로 플러시되었는지 여부를 결정합니다.
|
PG_LOGICAL_EMIT_MESSAGE ( 트랜잭션 부울 , prefix 텍스트 , 컨텐츠 텍스트 ) →PG_LSN
PG_LOGICAL_EMIT_MESSAGE ( 트랜잭션 부울 , prefix 텍스트 , 컨텐츠 BYTEA ) →PG_LSN
논리적 디코딩 메시지를 제출합니다. 이것은 WAL을 통해 일반 메시지를 논리 디코딩 플러그인으로 전달하는 데 사용할 수 있습니다.트랜잭션 매개 변수는 메시지가 현재 트랜잭션의 일부 여야하는지 또는 논리적 디코더가 레코드를 읽 자마자 즉시 작성하고 디코딩 해야하는지 지정합니다. 그만큼prefix 매개 변수는 논리적 디코딩 플러그인에서 사용할 수있는 텍스트 접두사입니다. 그만큼컨텐츠 매개 변수는 텍스트 또는 이진 양식에 주어진 메시지의 내용입니다.
|
표 9.90데이터베이스 개체의 디스크 공간 사용량을 계산하거나 사용 결과를 제시하는 데 도움을줍니다. 이러한 모든 기능은 바이트로 측정 된 크기를 반환합니다.NULL
반환됩니다.
표 9.90. 데이터베이스 객체 크기 기능
function
설명
|
pg_column_size ( "Any" ) →Integer
개별 데이터 값을 저장하는 데 사용되는 바이트 수를 보여줍니다. 테이블 열 값에 직접 적용되면 수행 된 압축이 반영됩니다.
|
pg_database_size ( 이름 ) →bigint
pg_database_size ( OID ) →bigint
데이터베이스에서 사용하는 총 디스크 공간을 지정된 이름 또는 OID로 계산합니다. 이 기능을 사용하려면Connect 지정된 데이터베이스 (기본적으로 부여됨)의 권한이 있거나PG_READ_ALL_STATS 역할.
|
pg_indexes_size ( RegClass ) →bigint
지정된 표에 첨부 된 인덱스에 의해 사용되는 총 디스크 공간을 계산합니다.
|
pg_relation_size ( 관계 RegClass [, 포크 텍스트 ]) →bigint
하나가 사용하는 디스크 공간을 계산합니다“포크”66182_66293PG_TOTAL_RELATION_SIZE 또는pg_table_size , 모든 포크의 크기를 합산합니다.) 하나의 인수와 함께, 이것은 관계의 기본 데이터 포크의 크기를 반환합니다. 두 번째 인수는 검사 할 포크를 지정하기 위해 제공 될 수 있습니다.
|
pg_size_bytes ( 텍스트 ) →bigint
크기를 사람이 읽을 수있는 형식으로 변환합니다 (recepedpg_size_pretty ) 바이트로.
|
pg_size_pretty ( bigint ) →텍스트
pg_size_pretty ( 숫자 ) →텍스트
크기를 크기 단위 (바이트, KB, MB, GB 또는 TB)와 함께 인간이 읽을 수있는보다 쉽게 읽을 수있는 형식으로 바이트로 변환합니다. 장치는 10의 전력이 아닌 2의 전력이므로 1KB는 1024 바이트이고 1MB는 1024입니다.2= 1048576 바이트 등.
|
pg_table_size ( RegClass ) →bigint
지정된 테이블에서 사용하는 디스크 공간을 인덱스를 제외하고 (그러나 그 경우 토스트 테이블, 여유 공간 맵 및 가시성 맵 포함)를 계산합니다..
|
pg_tablespace_size ( 이름 ) →bigint
pg_tablespace_size ( OID ) →bigint
테이블 스페이스에 사용 된 총 디스크 공간을 지정된 이름 또는 OID로 계산합니다. 이 기능을 사용하려면생성 지정된 테이블 스페이스의 권한이거나PG_READ_ALL_STATS 현재 데이터베이스의 기본 테이블 스페이스가 아닌 한 역할.
|
PG_TOTAL_RELATION_SIZE ( RegClass ) →bigint
모든 인덱스 및를 포함하여 지정된 테이블에서 사용하는 총 디스크 공간을 계산합니다.토스트데이터. 결과는와 같습니다.pg_table_size + pg_indexes_size .
|
테이블 또는 인덱스에서 작동하는 위의 기능은 a를 허용합니다.RegClass
인수, 이것은 단순히 테이블 또는 인덱스의 OID입니다pg_class
시스템 카탈로그. 그러나 이후로 Oid를 직접 찾을 필요는 없습니다.RegClass
Data Type의 입력 변환기가 귀하를 위해 작업을 수행합니다. 문자 그대로 상수처럼 보이도록 단일 따옴표로 둘러싸인 테이블 이름을 작성하십시오.SQL이름, 테이블 이름 주위에 이중 인용문이 포함되어 있지 않으면 문자열이 소문자로 변환됩니다.
표 9.91데이터베이스 개체와 관련된 특정 디스크 파일을 식별하는 데 도움이됩니다.
표 9.91. 데이터베이스 객체 위치 함수
function
설명
|
PG_RELATION_FILENODE ( 관계 RegClass ) →OID
반환“filenode”현재 지정된 관계에 할당 된 번호. Filenode는 관계에 사용되는 파일 이름의 기본 구성 요소입니다 (참조PostgreSQL : 문서 : 13 : 69.1. 데이터베이스 토토 사이트 순위 레이아웃자세한 내용은). 대부분의 관계에서 결과는와 동일합니다.pg_class .relfilenode 그러나 특정 시스템 카탈로그의 경우relfilenode | 제로 이며이 함수는 올바른 값을 얻으려면 사용해야합니다. 뷰와 같이 스토리지가없는 관계를 전달하면 함수가 NULL을 반환합니다.
|
PG_RELATION_FILEPATH ( 관계 RegClass ) →텍스트
전체 파일 경로 이름을 반환합니다 (데이터베이스 클러스터의 데이터 디렉토리와 관련하여pgdata ) 관계의.
|
PG_FILENODE_RELATION ( 테이블 스페이스 OID , filenode OID ) →RegClass
아래에 저장된 테이블 스페이스 OID와 Filenode가 주어지면 관계의 OID를 반환합니다. 이것은 본질적으로의 역 매핑입니다.PG_RELATION_FILEPATH . 데이터베이스의 기본 테이블 스페이스의 관계의 경우 테이블 스페이스를 0으로 지정할 수 있습니다.NULL 현재 데이터베이스의 관계가 주어진 값과 관련이없는 경우.
|
표 9.92콜라주를 관리하는 데 사용되는 토토 핫을 나열합니다.
표 9.92. Collation Management Functions
function
설명
|
pg_collation_actual_version ( OID ) →텍스트
현재 운영 체제에 설치된대로 Collation Object의 실제 버전을 반환합니다. 이것이 값과 다르면PG_COLLATION .64703_64714 , 콜라이트에 따라 객체를 재건해야 할 수도 있습니다. 참조 참조Alter Collation.
|
pg_import_system_collations ( 스키마 regnamespace ) →Integer
시스템 카탈로그에 콜라이트 추가PG_COLLATION 운영 체제에서 발견되는 모든 로케일을 기반으로합니다. 이게initdb 용도; 보다섹션 23.2.2자세한 내용은. 나중에 추가 로케일이 운영 체제에 설치되면이 토토 핫을 다시 실행하여 새 로케일에 대한 콜로레이션을 추가 할 수 있습니다.PG_COLLATION 건너 뜁니다. (그러나 운영 체제에 더 이상 존재하지 않는 로케일을 기반으로 한 콜레이션 객체는이 토토 핫에 의해 제거되지 않습니다.)스키마 매개 변수는 일반적으로PG_CATALOG , 그러나 그것은 요구 사항이 아닙니다. 콜라이트는 다른 스키마에도 설치 될 수 있습니다.
|
표 9.93분할 된 테이블의 구조에 대한 정보를 제공하는 토토 핫을 나열합니다.
표 9.93. 정보 기능 분할
function
설명
|
PG_PARTITION_TREE ( RegClass ) →Setof Record ( Relid RegClass , Parentrelid RegClass , isleaf 부울 , 레벨 Integer )
주어진 파티션 테이블 또는 분할 된 인덱스의 파티션 트리에 테이블 또는 인덱스가 각 파티션에 대해 하나의 행을 나열합니다. 제공된 정보에는 파티션의 OID, 직계 부모의 OID, 파티션이 잎인지 알려주는 부울 가치, 계층 구조에서 수준을 지시하는 정수가 포함됩니다.
|
PG_PARTITION_ANCESSTORS ( RegClass ) →regclass 세트
관계 자체를 포함하여 주어진 파티션의 조상 관계를 나열합니다. 관계가 존재하지 않거나 파티션 또는 분할 된 테이블이 아닌 경우 행을 반환하지 않습니다.
|
PG_PARTITION_ROOT ( RegClass ) →RegClass
주어진 관계가 속한 파티션 트리의 가장 상위 부모를 반환합니다. 보고NULL 관계가 존재하지 않거나 파티션 또는 분할 된 테이블이 아닌 경우.
|
예를 들어, 분할 된 테이블에 포함 된 데이터의 총 크기를 확인하려면측정
, 다음 쿼리를 사용할 수 있습니다.
pg_size_pretty (sum (pg_relation_size (relid)))를 total_size로 선택하십시오
표 9.94인덱스 유지 보수 작업에 사용 가능한 기능을 표시합니다. (이러한 유지 보수 작업은 일반적으로 Autovacuum에 의해 자동으로 수행됩니다. 이러한 기능의 사용은 특별한 경우에만 필요합니다.) 이러한 기능은 복구 중에 실행할 수 없습니다.
표 9.94. 색인 유지 관리 기능
function
설명
|
brin_summarize_new_values ( index RegClass ) →Integer
지정된 브린 색인을 스캔하여 현재 인덱스에 의해 요약되지 않은 기본 테이블에서 페이지 범위를 찾습니다. 이러한 범위의 경우 테이블 페이지를 스캔하여 새로운 요약 인덱스 튜플을 만듭니다.
|
brin_summarize_range ( index RegClass , BlockNumber bigint ) →Integer
아직 요약되지 않은 경우 주어진 블록을 포함하는 페이지 범위를 요약합니다. 이것은 같다brin_summarize_new_values 주어진 테이블 블록 번호를 다루는 페이지 범위 만 처리한다는 점을 제외하고
|
brin_desummarize_range ( index RegClass , BlockNumber bigint ) →void
주어진 테이블 블록이있는 경우 주어진 테이블 블록을 덮는 페이지 범위를 요약 한 브린 인덱스 튜플을 제거합니다.
|
gin_clean_pending_list ( index RegClass ) →bigint
정리“보류 중”기본 진 데이터 구조로 대량으로 항목을 이동시킴으로써 지정된 진 인덱스 목록. 보류중인 목록에서 제거 된 페이지 수를 반환합니다.Fastupdate 옵션 비활성화, 정리가 발생하지 않으며 결과는 0입니다. 보다섹션 66.4.1and무지개 토토 PostgreSQL : 문서 : 13 : 66.5. 진 팁과 요령보류중인 목록에 대한 자세한 내용 및Fastupdate 옵션.
|
표 9.95서버를 호스팅하는 컴퓨터의 파일에 기본 액세스를 제공합니다. 데이터베이스 클러스터 디렉토리 및 내의 파일 만log_directory
사용자가 슈퍼업자가 아니거나 역할이 부여되지 않는 한 액세스 할 수 있습니다PG_READ_SERVER_FILES
. 클러스터 디렉토리의 파일에 상대 경로를 사용하고와 일치하는 경로를 사용하십시오.log_directory
로그 파일의 구성 설정.
사용자에게 실행 권한을 부여하는 것입니다.pg_read_file ()
또는 관련 함수는 데이터베이스 서버 프로세스를 읽을 수있는 서버의 파일을 읽을 수 있습니다. 이 기능은 모든 다이베이스 권한 점검을 우회합니다.pg_authid
인증 정보가 저장된 테이블뿐만 아니라 데이터베이스의 테이블 데이터를 읽습니다. 따라서 이러한 기능에 대한 액세스 권한을 부여하는 것은 신중하게 고려되어야합니다.
이러한 토토 핫 중 일부는 선택 사항을 취합니다Missing_ok
81920_82005true
, 함수는 반환NULL
또는 적절한 빈 결과 세트. 만약에거짓
, 오류가 발생합니다. 기본값은거짓
.
표 9.95. 일반 파일 액세스 함수
function
설명
|
PG_LS_DIR ( Dirname 텍스트 [, Missing_ok 부울 , include_dot_dirs 부울 ]) →텍스트 설정
지정된 디렉토리에서 모든 파일 (및 디렉토리 및 기타 특수 파일)의 이름을 반환합니다. 그만큼include_dot_dirs 매개 변수는를 나타냅니다.“.”and“..”결과 세트에 포함됩니다. 기본값은 그것들을 배제하는 것입니다.Missing_ok istrue , 빈 디렉토리를 존재하지 않는 디렉토리와 구별하려면
이 토토 핫은 기본적으로 슈퍼 사용자로 제한되지만 다른 사용자는 함수를 실행하도록 실행할 수 있습니다.
|
PG_LS_LOGDIR () →Setof Record ( 이름 텍스트 , size bigint , 수정 시간대가있는 타임 스탬프 )
서버의 로그 디렉토리에있는 각 일반 파일의 이름, 크기 및 마지막 수정 시간 (mtime)을 반환합니다. 도트, 디렉토리 및 기타 특수 파일로 시작하는 파일 이름은 제외됩니다.
이 함수는 슈퍼업자 및 멤버로 제한됩니다pg_monitor 기본적으로 역할을 수행하지만 다른 사용자는 함수를 실행하도록 실행할 수 있습니다.
|
PG_LS_WALDIR () →Setof Record ( 이름 텍스트 , size bigint , 수정 시간대가있는 타임 스탬프 )
서버의 WAL (Writ 도트, 디렉토리 및 기타 특수 파일로 시작하는 파일 이름은 제외됩니다.
이 함수는 슈퍼업자 및 멤버로 제한됩니다pg_monitor 기본적으로 역할을 수행하지만 다른 사용자는 함수를 실행하도록 실행할 수 있습니다.
|
PG_LS_ARCHIVE_STATUSDIR () →Setof Record ( 이름 텍스트 , size bigint , 수정 시간대가있는 타임 스탬프 )
서버의 WAL 아카이브 상태 디렉토리 (에있는 각 일반 파일의 이름, 크기 및 마지막 수정 시간 (mtime)을 반환합니다.pg_wal/archive_status ). 도트, 디렉토리 및 기타 특수 파일로 시작하는 파일 이름은 제외됩니다.
이 함수는 슈퍼업자 및 멤버로 제한됩니다pg_monitor 기본적으로 역할을 수행하지만 다른 사용자는 함수를 실행하도록 실행할 수 있습니다.
|
PG_LS_TMPDIR ([테이블 스페이스 OID ]) →Setof Record ( 이름 텍스트 , size bigint , 수정 시간대가있는 타임 스탬프 )
지정된의 임시 파일 디렉토리에있는 각 일반 파일의 이름, 크기 및 마지막 수정 시간 (mtime)을 반환합니다.테이블 스페이스 . 만약에테이블 스페이스 제공되지 않습니다.pg_default 테이블 스페이스가 검사됩니다. 도트, 디렉토리 및 기타 특수 파일로 시작하는 파일 이름은 제외됩니다.
이 함수는 슈퍼업자 및 멤버로 제한됩니다pg_monitor 기본적으로 역할을 수행하지만 다른 사용자는 함수를 실행하도록 실행할 수 있습니다.
|
PG_READ_FILE ( filename 텍스트 [, 오프셋 bigint , 길이 bigint [, Missing_ok 부울 ]]) →텍스트
주어진 바이트에서 시작하여 텍스트 파일의 전부 또는 일부를 반환합니다오프셋 , 최대 반환길이 바이트 (파일 끝에 먼저 도달하면 적음). 만약에오프셋 는 음수입니다. 파일의 끝과 관련이 있습니다. 만약에오프셋 and길이 생략되면 전체 파일이 반환됩니다. 파일에서 읽은 바이트는 데이터베이스의 인코딩에서 문자열로 해석됩니다.
이 토토 핫은 기본적으로 슈퍼 사용자로 제한되지만 다른 사용자는 함수를 실행하도록 실행할 수 있습니다.
|
PG_READ_BINARY_FILE ( filename 텍스트 [, 오프셋 bigint , 길이 bigint [, Missing_ok 부울 ]]) →BYTEA
파일의 전부 또는 일부를 반환합니다. 이 기능은 동일합니다PG_READ_FILE 임의의 이진 데이터를 읽을 수 있다는 점을 제외하고 결과를 다시 반환합니다BYTEA not텍스트 ; 따라서 인코딩 점검은 수행되지 않습니다.
이 토토 핫은 기본적으로 슈퍼 사용자로 제한되지만 다른 사용자는 함수를 실행하도록 실행할 수 있습니다.
와 함께convert_from 함수,이 기능을 사용하여 지정된 인코딩에서 텍스트 파일을 읽고 데이터베이스의 인코딩으로 변환 할 수 있습니다.
convert_from (pg_read_binary_file ( 'file_in_utf8.txt'), 'utf8');를 선택하십시오.
|
PG_STAT_FILE ( filename 텍스트 [, Missing_ok 부울 ]) →레코드 ( size bigint , Access 시간대가있는 타임 스탬프 , 수정 시간대가있는 타임 스탬프 , 변경 시간대가있는 타임 스탬프 , 창조 시간대가있는 타임 스탬프 , isdir 부울 )
파일 크기, 마지막 액세스 시간 스탬프, 마지막 수정 시간 스탬프, 마지막 파일 상태 변경 시간 스탬프 (Unix 플랫폼 만 해당), 파일 생성 시간 스탬프 (Windows 만) 및 디렉토리인지를 나타내는 플래그가 포함 된 레코드를 반환합니다..
이 토토 핫은 기본적으로 슈퍼 사용자로 제한되지만 다른 사용자는 함수를 실행하도록 실행할 수 있습니다.
|
표 9.96자문 잠금 관리. 이러한 토토 핫의 적절한 사용에 대한 자세한 내용은 참조하십시오.섹션 13.3.5.
이러한 모든 기능은 응용 프로그램 정의 리소스를 잠그는 데 사용되며, 이는 단일 64 비트 키 값 또는 두 개의 32 비트 키 값으로 식별 할 수 있습니다 (이 두 가지 주요 공간은 겹치지 않습니다). 다른 세션이 이미 동일한 리소스 식별자에 대한 충돌 잠금 장치를 보유한 경우, 기능은 리소스를 사용할 수있게 될 때까지 대기하거나 A를 반환합니다.거짓
함수에 적합한 결과. 잠금 장치는 공유 또는 배타적 일 수 있습니다. 공유 잠금 장치는 동일한 자원의 다른 공유 잠금 장치와 충돌하지 않으며 독점 잠금 장치만으로는 충돌하지 않습니다.
표 9.96. 자문 잠금 기능
function
설명
|
pg_advisory_lock ( 키 bigint ) →void
pg_advisory_lock ( key1 Integer , key2 Integer ) →void
필요한 경우 대기하는 독점 세션 수준의 자문 잠금을 얻습니다.
|
pg_advisory_lock_shared ( 키 bigint ) →void
pg_advisory_lock_shared ( key1 Integer , key2 Integer ) →void
필요한 경우 대기하는 공유 세션 수준의 자문 잠금을 얻습니다.
|
pg_advisory_unlock ( 키 bigint ) →부울
pg_advisory_unlock ( key1 Integer , key2 Integer ) →부울
이전에 획득 한 독점 세션 수준의 자문 잠금을 출시합니다. 보고true 잠금이 성공적으로 해제 된 경우. 자물쇠가 유지되지 않으면거짓 반환되고 서버에서 SQL 경고 가보고됩니다.
|
pg_advisory_unlock_all () →void
현재 세션에서 보유한 모든 세션 레벨 자문 잠금 장치를 출시합니다. (이 기능은 클라이언트가 끊임없이 끊어 지더라도 세션 종료시 암시 적으로 호출됩니다.)
|
pg_advisory_unlock_shared ( 키 bigint ) →부울
pg_advisory_unlock_shared ( key1 Integer , key2 Integer ) →부울
이전에 획득 한 공유 세션 수준의 자문 잠금을 출시합니다. 보고true 잠금이 성공적으로 해제 된 경우. 자물쇠가 유지되지 않으면거짓 반환되고 서버에서 SQL 경고 가보고됩니다.
|
pg_advisory_xact_lock ( 키 bigint ) →void
pg_advisory_xact_lock ( key1 Integer , key2 Integer ) →void
필요한 경우 대기하는 독점 거래 수준의 자문 잠금을 얻습니다.
|
pg_advisory_xact_lock_shared ( 키 bigint ) →void
pg_advisory_xact_lock_shared ( key1 Integer , key2 Integer ) →void
필요한 경우 대기하는 공유 거래 수준의 자문 잠금을 얻습니다.
|
PG_TRY_ADVISORY_LOCK ( 키 bigint ) →부울
PG_TRY_ADVISORY_LOCK ( key1 Integer , key2 Integer ) →부울
사용 가능한 경우 독점 세션 레벨 자문 잠금을 얻습니다. 이것은 즉시 잠금을 얻고 반환합니다true 또는 return거짓 잠금을 즉시 얻을 수없는 경우 대기하지 않고.
|
pg_try_advisory_lock_shared ( 키 bigint ) →부울
pg_try_advisory_lock_shared ( key1 Integer , key2 Integer ) →부울
가능한 경우 공유 세션 수준 자문 잠금을 얻습니다. 이것은 즉시 잠금을 얻고 반환합니다true 또는 return거짓 잠금을 즉시 얻을 수없는 경우 대기하지 않고.
|
PG_TRY_ADVISORY_XACT_LOCK ( 키 bigint ) →부울
PG_TRY_ADVISORY_XACT_LOCK ( key1 Integer , key2 Integer ) →부울
사용 가능한 경우 독점 거래 수준 자문 잠금을 얻습니다. 이것은 즉시 잠금을 얻고 반환합니다true 또는 return거짓 잠금을 즉시 얻을 수없는 경우 대기하지 않고.
|
pg_try_advisory_xact_lock_shared ( 키 bigint ) →부울
pg_try_advisory_xact_lock_shared ( key1 Integer , key2 Integer ) →부울
가능한 경우 공유 거래 수준 자문 잠금을 얻습니다. 이것은 즉시 잠금을 얻고 반환합니다true 또는 return거짓 잠금을 즉시 얻을 수없는 경우 대기하지 않고.
|