이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 9.28. 시스템 관리 스포츠 토토 베이 사이트버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

9.23. 시스템 관리 기능

테이블 9-51쿼리 및 변경에 사용 가능한 토토 베이을 표시합니다 런타임 구성 매개 변수.

표 9-51. 구성 설정 토토 베이

이름 반환 유형 설명
current_setting(setting_name) 텍스트 현재 설정의 현재 값
set_config (setting_name, new_value, is_local) 텍스트 매개 변수 설정 및 새 값을 반환

함수current_setting설정의 현재 값을 생성setting_name. 그것은에 해당합니다.SQL명령show. 예 :

select current_setting ( 'datestyle');

 current_setting
------------------
 ISO, MDY
(1 행)

set_config매개 변수 설정setting_nametonew_value. 만약에is_localistrue, 새로운 가치는 현재 거래에만 적용됩니다. 원한다면 현재 세션에 신청할 새로운 값, 사용거짓대신. 함수는 SQL에 해당합니다 명령SET. 예 :

set_config ( 'log_statement_stats', 'off', false);

 set_config
------------
 끄다
(1 행)

테이블 9-52다른 서버 프로세스로 제어 신호를 전송합니다. 사용 이러한 토토 베이은 슈퍼업자로 제한됩니다.

표 9-52. 서버 신호 토토 베이

이름 반환 유형 설명
pg_cancel_backend(PID int) 부울 백엔드의 현재 쿼리 취소
pg_reload_conf() 부울 서버 프로세스가 구성을 다시로드하도록합니다 파일
pg_rotate_logfile() 부울 서버의 로그 파일 회전

이러한 각 함수가 반환true성공하고거짓그렇지 않으면.

pg_cancel_backend쿼리를 보냅니다 취소 (Sigint) 신호 a 프로세스 ID로 식별 된 백엔드 프로세스. an의 프로세스 ID 활성 백엔드는에서 찾을 수 있습니다.procpid열의 열pg_stat_activity보기 또는 목록Postgres서버의 프로세스PS.

pg_reload_confa 보내기Sighup서버에 대한 신호, 모든 서버에서 구성 파일을 다시로드하게합니다. 프로세스.

pg_rotate_logfile신호 로그 파일 관리자는 즉시 새 출력 파일로 전환합니다. 이것 내장 로그 수집기가 실행 중일 때만 작동합니다. 그렇지 않으면 로그 파일 관리자 하위 프로세스가 없습니다.

테이블 9-53온라인 백업을 지원합니다. 처음 세 가지 사용 함수는 슈퍼업자로 제한됩니다.

표 9-53. 백업 제어 토토 베이

이름 반환 유형 설명
PG_START_BACKUP(레이블 텍스트) 텍스트 온라인 백업 수행을위한 설정
PG_STOP_BACKUP() 텍스트 온라인 백업 수행 완료
PG_SWITCH_XLOG() 텍스트 새로운 트랜잭션 로그 파일로 전환
pg_current_xlog_location() 텍스트 현재 트랜잭션 받기 로그 쓰기 위치
pg_current_xlog_insert_location() 텍스트 현재 트랜잭션 가져 오기 로그 삽입 위치
PG_XLOGFILE_NAME_OFFSET(위치 텍스트) 텍스트, 정수 트랜잭션 로그 위치 문자열을 파일 이름으로 변환합니다 및 파일 내 소수점 바이트 오프셋
pg_xlogfile_name(위치 텍스트) 텍스트 트랜잭션 로그 위치 문자열을 파일로 변환합니다 이름

PG_START_BACKUP싱글을 수락합니다 매개 변수는 임의의 사용자 정의 레이블입니다 지원. (일반적으로 이것은 백업이있는 이름입니다. 덤프 파일이 저장됩니다.) 함수는 백업 레이블을 씁니다. 데이터베이스 클러스터의 데이터 디렉토리에 파일을 파일 한 다음 반환합니다. 백업의 트랜잭션 시작 로그 위치는 텍스트입니다. 사용자 이 결과 값에주의를 기울일 필요는 없지만 사용중인 경우 제공됩니다.

postgres =# 선택 pg_start_backup ( 'label_goes_here');
 pg_start_backup
------------------
 0/D4445B8
(1 행)

PG_STOP_BACKUP레이블을 제거합니다 에 의해 생성 된 파일PG_START_BACKUP, 대신 트랜잭션 로그에서 백업 기록 파일을 만듭니다. 아카이브 영역. 히스토리 파일에는에 주어진 레이블이 포함되어 있습니다.PG_START_BACKUP, 시작 및 백업 및 시작을위한 트랜잭션 로그 위치 종료 그리고 백업의 끝 시간. 반환 값은 백업입니다 종료 트랜잭션 로그 위치 (다시는 거의 없을 수 있습니다. 관심). 결말 위치에 주목 한 후 현재 트랜잭션 로그 삽입 지점이 자동으로 진행됩니다 다음 트랜잭션 로그 파일, 종료 트랜잭션 로그가 백업을 완료하기 위해 파일을 즉시 보관할 수 있습니다.

PG_SWITCH_XLOG다음으로 이동합니다 트랜잭션 로그 파일, 현재 파일을 보관할 수 있습니다. (연속 아카이브를 사용하고 있다고 가정). 결과는입니다 결국 트랜잭션 로그 위치 + 1 방금 완성 된 내에 트랜잭션 로그 파일. 트랜잭션 로그가없는 경우 마지막 트랜잭션 로그 스위치 이후 활동PG_SWITCH_XLOG아무것도하지 않고 반환합니다 현재 사용중인 트랜잭션 로그 파일의 위치를 ​​시작합니다.

pg_current_xlog_location현재 트랜잭션 로그 쓰기 위치를 동일하게 표시합니다. 위의 함수에 의해 사용되는 형식. 비슷하게,pg_current_xlog_insert_location표시를 표시합니다 현재 트랜잭션 로그 삽입 지점. 삽입 지점은입니다 그만큼"논리"거래 종료 쓰기 위치는 무엇의 끝이지만 모든 순간에 로그인 실제로 서버의 내부 버퍼에서 작성되었습니다. 쓰기 위치는 검사 할 수있는 끝입니다. 서버 외부, 일반적으로 당신이 원하는 경우 부분 완료 트랜잭션 로그 파일을 보관하는 데 관심이 있습니다. 삽입 지점은 주로 서버 용으로 제공됩니다 디버깅 목적. 이들은 모두 읽기 전용 작업이며 수행합니다 슈퍼 사용자 권한이 필요하지 않습니다.

사용할 수 있습니다pg_xlogfile_name_offset추출 해당 트랜잭션 로그 파일 이름 및 바이트 오프셋에서 위의 기능 중 하나의 결과. 예를 들어:

postgres =# select * from pg_xlogfile_name_offset (pg_stop_backup ());
        file_name | file_offset 
---------------------------------------------
 00000001000000000000000D |     4039624
(1 행)

마찬가지로pg_xlogfile_name트랜잭션 로그 파일 이름 만 추출합니다. 주어진 경우 트랜잭션 로그 위치는 정확히 트랜잭션 로그 파일에 있습니다. 경계,이 두 기능은 선행의 이름을 반환합니다. 트랜잭션 로그 파일. 이것은 일반적으로 원하는 행동입니다 전례 이후 트랜잭션 로그 아카이빙 동작 관리 파일은 현재 보관 해야하는 마지막 파일입니다.

이러한 토토 베이의 적절한 사용에 대한 자세한 내용은 참조PostgreSQL : 문서 : 8.3 : 연속 보관 및 시점 토토 꽁 머니 (PITR).

에 표시된 토토 베이표 9-54데이터베이스의 실제 디스크 공간 사용량을 계산합니다 사물.

표 9-54. 데이터베이스 객체 크기 기능

이름 반환 유형 설명
pg_column_size(Any) int 특정 값을 저장하는 데 사용되는 바이트 수 (아마도 압축)
PG_DATABASE_SIZE(OID) bigint 지정된 데이터베이스에서 사용하는 디스크 공간 OID
pg_database_size(이름) bigint 지정된 데이터베이스에서 사용하는 디스크 공간 이름
pg_relation_size(OID) bigint 테이블 또는 인덱스에서 사용하는 디스크 공간 지정된 OID
pg_relation_size(텍스트) bigint 테이블 또는 인덱스에서 사용하는 디스크 공간 지정된 이름. 테이블 이름은 a 스키마 이름
pg_size_pretty(bigint) 텍스트 크기를 바이트로 인간 읽을 수있는 형식으로 변환합니다 크기 단위
pg_tablespace_size(OID) bigint 지정된 테이블 스페이스에서 사용하는 디스크 공간 OID
pg_tablespace_size(이름) bigint 지정된 테이블 스페이스에서 사용하는 디스크 공간 이름
PG_TOTAL_RELATION_SIZE(OID) bigint 지정된 테이블에서 사용하는 총 디스크 공간 인덱스 및 구운 데이터를 포함한 OID
PG_TOTAL_RELATION_SIZE(텍스트) bigint 지정된 테이블에서 사용하는 총 디스크 공간 인덱스 및 구운 데이터를 포함한 이름. 테이블 이름 스키마 이름으로 자격이있을 수 있습니다

pg_column_size공간을 보여줍니다 개별 데이터 값을 저장하는 데 사용됩니다.

pg_database_sizeandpg_tablespace_sizeOID를 수락하십시오 또는 데이터베이스 또는 테이블 스페이스의 이름과 총 디스크를 반환합니다. 여기에 사용 된 공간.

pg_relation_sizeOID를 수락합니다 또는 테이블, 인덱스 또는 토스트 테이블의 이름으로 크기를 반환합니다. 바이트.

pg_size_pretty익숙해 질 수 있습니다 다른 함수 중 하나의 결과를 KB, MB, GB 또는 TB를 적절하게 사용하는 사람이 읽을 수있는 방법.

PG_TOTAL_RELATION_SIZE수락 테이블 또는 토스트 테이블의 OID 또는 이름을 반환합니다. 데이터의 바이트 및 모든 관련 인덱스 및 토스트 테이블.

표 9-55섬기는 사람. 데이터베이스 클러스터 디렉토리 및 내의 파일 만log_directory액세스 할 수 있습니다. a 클러스터 디렉토리 내의 파일의 상대 경로 및 경로 일치log_directory구성 로그 파일 설정. 이러한 토토 베이의 사용은 제한됩니다 슈퍼업자.

표 9-55. 일반 파일 액세스 함수

이름 반환 유형 설명
PG_LS_DIR(dirname 텍스트) 텍스트 설정 디렉토리의 내용 목록
PG_READ_FILE(filename 텍스트, 오프셋 bigint, 길이 bigint) 텍스트 텍스트 파일의 내용 반환
PG_STAT_FILE(filename 텍스트) 레코드 파일에 대한 정보 반환

PG_LS_DIR모든 이름을 반환합니다 특수 항목을 제외한 지정된 디렉토리에서".""..".

PG_READ_FILEa의 일부를 반환합니다 텍스트 파일, 주어진에서 시작오프셋, 최대 반환길이바이트 (파일 끝에 도달하면 적습니다 첫 번째). 만약에오프셋부정적입니다 파일의 끝과 관련이 있습니다.

PG_STAT_FILE레코드를 반환합니다 파일 크기, 마지막으로 액세스 된 타임 스탬프, 마지막 수정 타임 스탬프, 마지막 파일 상태 변경 타임 스탬프 (UNIX 플랫폼 전용), 파일 생성 타임 스탬프 (Windows 만) 및 A부울디렉토리인지를 나타냅니다. 전형적인 사용법은 다음과 같습니다.

선택 *에서 pg_stat_file ( 'filename');
선택 (pg_stat_file ( 'filename')). 수정;

표 9-56자문 잠금 관리. 이들의 적절한 사용에 대한 자세한 내용 토토 베이, 참조섹션 13.3.4.

표 9-56. 자문 잠금 기능

이름 반환 유형 설명
pg_advisory_lock( bigint) void 독점 자문 잠금 획득
pg_advisory_lock(key1 int, key2 int) void 독점 자문 잠금 획득
pg_advisory_lock_shared( bigint) void 공유 자문 획득
pg_advisory_lock_shared(key1 int, key2 int) void 공유 자문 획득
PG_TRY_ADVISORY_LOCK( bigint) 부울 사용 가능한 경우 독점 자문 잠금 획득
PG_TRY_ADVISORY_LOCK(key1 int, key2 int) 부울 사용 가능한 경우 독점 자문 잠금 획득
pg_try_advisory_lock_shared( bigint) 부울 사용 가능한 경우 공유 자문 잠금 획득
pg_try_advisory_lock_shared(key1 int, key2 int) 부울 가능한 경우 공유 자문 잠금을 얻습니다
pg_advisory_unlock( bigint) 부울 독점 자문 잠금 릴리스
pg_advisory_unlock(key1 int, key2 int) 부울 독점 자문 잠금 릴리스
pg_advisory_unlock_shared( bigint) 부울 공유 자문 잠금 해제
pg_advisory_unlock_shared(key1 int, key2 int) 부울 공유 자문 잠금 해제
pg_advisory_unlock_all() void 현재에서 보유한 모든 자문 잠금 장치를 릴리스합니다 세션

pg_advisory_lock잠금 an 응용 프로그램 정의 리소스 단일 64 비트 키 값 또는 두 개의 32 비트 키 값 ( 두 개의 주요 공간이 겹치지 않습니다). 다른 세션이 이미 보유된다면 동일한 자원에 대한 잠금, 함수는 리소스를 사용할 수있게됩니다. 자물쇠는 독점적입니다. 다중 잠금 동일한 리소스가 잠겨 있으면 스택을 요청하여 스택을 요청합니다. 릴리스하려면 3 번 잠금을 해제해야합니다. 기타 세션의 사용.

pg_advisory_lock_shared작품 동일pg_advisory_lock, 자물쇠를 제외하고는 다른 세션과 공유 할 수 있습니다. 공유 잠금. 독점적 인 사물함 만 잠겨 있습니다 밖으로.

PG_TRY_ADVISORY_LOCK비슷합니다 에게pg_advisory_lock를 제외하고 함수가 잠금을 사용할 수있을 때까지 대기하지 않습니다. 그것은 할 것입니다 즉시 잠금을 얻고 반환True또는 return거짓if 자물쇠는 지금 획득 할 수 없습니다.

pg_try_advisory_lock_shared|PG_TRY_ADVISORY_LOCK독점적 인 잠금보다는 공유 된 획득.

pg_advisory_unlock릴리스됩니다 이전에 획득 한 독점 자문 잠금. 돌아올 것입니다true잠금이 성공적으로 인 경우 출시된. 자물쇠가 실제로 유지되지 않으면 반환됩니다거짓, 또한 SQL 경고 서버에 의해 높아집니다.

pg_advisory_unlock_shared작품 동일pg_advisory_unlock, 공유 자문 잠금을 해제하는 것을 제외하고

pg_advisory_unlock_all의지 현재 세션에서 보유한 모든 자문 잠금 장치를 해제하십시오. (이것 클라이언트가 있더라도 토토 베이이 세션 종료시 암시 적으로 호출됩니다. 끊임없이 연결을 끊습니다.)