PostgreSQL 9.0.23 문서화 | ||||
---|---|---|---|---|
토토 사이트 추천 PostgreSQL : 문서 : 9.0 : 시스템 정보 기능 | up | 9 장. 토토 캔 및 운영자 | PostgreSQL : 문서 : 9.0 : 토토 사이트 추천 함수 |
테이블 9-55쿼리 및 변경에 사용 가능한 토토 캔을 표시합니다 런타임 구성 매개 변수.
표 9-55. 구성 설정 토토 캔
이름 | 반환 유형 | 설명 |
---|---|---|
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-56다른 서버 프로세스로 제어 신호를 전송합니다. 사용 이러한 토토 캔은 슈퍼업자로 제한됩니다.
표 9-56. 서버 신호 토토 캔
이름 | 반환 유형 | 설명 |
---|---|---|
pg_cancel_backend (PID int) |
부울 | 백엔드의 현재 쿼리 취소 |
pg_terminate_backend (PID int) |
부울 | 백엔드 종료 |
pg_reload_conf () |
부울 | 서버 프로세스가 구성을 다시로드하도록합니다 파일 |
pg_rotate_logfile () |
부울 | 서버의 로그 파일 회전 |
이러한 각 함수는 반환true성공하고거짓그렇지 않으면.
pg_cancel_backend
andpg_terminate_backend
신호 전송
(Sigint또는Sigterm각각) 백엔드 프로세스
프로세스 ID로 식별. 활성 백엔드의 프로세스 ID는 할 수 있습니다
에서 찾을 수 있습니다.procpid열의
그만큼pg_stat_activity보기 또는
목록Postgres서버 (사용PSon unix 또는작업 관리자onWindows).
pg_reload_conf
a 보내기SIGHUP서버에 대한 신호,
모든 서버에서 구성 파일을 다시로드하게합니다
프로세스.
pg_rotate_logfile
신호
로그 파일 관리자는 즉시 새 출력 파일로 전환합니다. 이것
works only when the built-in log collector is running, since
그렇지 않으면 로그 파일 관리자 하위 프로세스가 없습니다.
테이블 9-57온라인 백업을 지원합니다. 이러한 토토 캔은 할 수 없습니다 회복 중에 실행됩니다. 처음 세 토토 캔의 사용은 다음과 같습니다 슈퍼업자로 제한됩니다.
표 9-57. 백업 제어 토토 캔
이름 | 반환 유형 | 설명 |
---|---|---|
pg_start_backup (레이블 텍스트[, 빠른
부울]) |
텍스트 | 온라인 백업 수행 준비 |
pg_stop_backup () |
텍스트 | 온라인 백업 수행 완료 |
pg_switch_xlog () |
텍스트 | 새 트랜잭션 로그 파일로 전환 |
pg_current_xlog_location () |
텍스트 | 현재 트랜잭션 받기 로그 쓰기 위치 |
pg_current_xlog_insert_location () |
텍스트 | 현재 트랜잭션 가져 오기 로그 삽입 위치 |
pg_xlogfile_name_offset (위치 텍스트) |
텍스트, Integer | 트랜잭션 로그 위치 문자열을 파일 이름으로 변환합니다 및 파일 내 소수점 바이트 오프셋 |
pg_xlogfile_name (위치 텍스트) |
텍스트 | 트랜잭션 로그 위치 문자열을 파일로 변환합니다 이름 |
PG_START_BACKUP
백업을위한 임의의 사용자 정의 레이블. (일반적으로 이것은
백업 덤프 파일이 될 이름이 될 것입니다.
저장.) 함수는 백업 레이블 파일을 씁니다 (backup_label) 데이터베이스 클러스터의 데이터로
디렉토리는 체크 포인트를 수행 한 다음 백업을 반환합니다
트랜잭션 시작 로그 위치를 텍스트로 시작합니다. 사용자는 무시할 수 있습니다
이 결과 값이지만 유용한 경우에 제공됩니다.
postgres =# 선택 pg_start_backup ( 'label_goes_here'); pg_start_backup ------------------ 0/D4445B8 (1 행)
유형의 선택적 두 번째 매개 변수가 있습니다부울. 만약에True, It
실행 지정PG_START_BACKUP
가능한 빨리. 이것은 즉각적인 체크 포인트를 강요합니다
I/O 운영이 급증하여 동시에 속도가 느려집니다.
쿼리 실행.
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
트랜잭션 로그 파일 이름 만 추출합니다. 주어진 경우
트랜잭션 로그 위치는 정확히 트랜잭션 로그 파일에 있습니다.
경계,이 두 기능은 선행의 이름을 반환합니다.
트랜잭션 로그 파일. 이것은 일반적으로 원하는 행동입니다
전례 이후 트랜잭션 로그 아카이빙 동작 관리
파일은 현재 보관 해야하는 마지막 파일입니다.
이러한 토토 캔의 적절한 사용에 대한 자세한 내용은 참조토토 캔 : 문서 : 9.0 : 연속 토토 캔 및 시점 복구 (PITR).
테이블 9-58현재 상태에 대한 정보를 제공합니다 대기. 이러한 토토 캔은 복구 중에 실행될 수 있습니다 정상적인 달리기에서.
표 9-58. 복구 정보 토토 캔
이름 | 반환 유형 | 설명 |
---|---|---|
PG_IS_IN_RECOVERY () |
bool | 회복이 아직 진행중인 경우 진실. |
pg_last_xlog_receive_location () |
텍스트 | 수신 및 동기화 된 마지막 트랜잭션 로그 위치를 얻으십시오 복제 스트리밍으로 디스크로. 스트리밍하는 동안 복제가 진행 중입니다 단조로. 그러나 스트리밍 할 때 복제는입니다 다시 시작하면 복제 시작으로 되돌아갑니다 위치, 일반적으로 WAL 파일의 시작입니다 현재 재생 위치를 포함합니다. 회복이 있다면 완료된 것은 마지막 WAL 레코드가 수신되어 디스크로 동기화되었습니다 회복. 스트리밍 복제가 비활성화 된 경우 또는 경우 아직 시작되지 않았고 함수는 NULL을 반환합니다. |
pg_last_xlog_replay_location () |
텍스트 | 마지막 트랜잭션 로그 위치가 재생되었습니다 회복. 회복이 여전히 진행 중이면 이것은 이것이 가능합니다 단조롭게 증가하십시오. 회복이 완료된 경우 이 값은 마지막 값으로 정적으로 유지됩니다. WAL 레코드는 해당 복구 중에 적용되었습니다. 서버시 기능을 복구하지 않고 정상적으로 시작되었습니다 NULL을 반환합니다. |
표 9-59데이터베이스 개체의 디스크 공간 사용량 계산.
표 9-59. 데이터베이스 객체 크기 기능
이름 | 반환 유형 | 설명 |
---|---|---|
pg_column_size (Any) |
int | 특정 값을 저장하는 데 사용되는 바이트 수 (아마도 압축) |
PG_TOTAL_RELATION_SIZE (regclass) |
bigint | 지정된 테이블에서 사용하는 총 디스크 공간 모든 색인 및를 포함한 OID 또는 이름토스트데이터 |
pg_table_size (Regclass) |
bigint | 지정된 OID와 함께 테이블에서 사용하는 디스크 공간 또는 인덱스를 제외한 이름 (그러나 토스트 포함, 무료 우주지도 및 가시성 맵) |
pg_indexes_size (RegClass) |
bigint | 첨부 된 인덱스에 사용되는 총 디스크 공간 지정된 OID 또는 이름이있는 테이블 |
pg_database_size (OID) |
bigint | 지정된 데이터베이스에서 사용하는 디스크 공간 OID |
pg_database_size (이름) |
bigint | 지정된 데이터베이스에서 사용하는 디스크 공간 이름 |
pg_tablespace_size (OID) |
bigint | 지정된 테이블 스페이스에서 사용하는 디스크 공간 OID |
pg_tablespace_size (이름) |
bigint | 지정된 테이블 스페이스에서 사용하는 디스크 공간 이름 |
pg_relation_size (관계 RegClass,
포크 텍스트) |
bigint | 지정된 포크가 사용하는 디스크 공간 ('main', 'FSM'또는'vm'28962_29028 |
pg_relation_size (관계 Regclass) |
bigint | 속기pg_relation_size (..., 'main') |
pg_size_pretty (bigint) |
텍스트 | 크기를 바이트로 인간 읽을 수있는 형식으로 변환합니다 크기 단위 |
PG_COLUMN_SIZE
공간을 보여줍니다
개별 데이터 값을 저장하는 데 사용됩니다.
PG_TOTAL_RELATION_SIZE
수락
테이블 또는 토스트 테이블의 OID 또는 이름을 반환합니다.
모든 관련을 포함하여 해당 테이블에 사용되는 온 디스크 공간
인덱스. 이 기능은와 같습니다.pg_table_size
+
pg_indexes_size
.
pg_table_size
OID를 수락합니다
테이블의 이름과 해당 테이블에 필요한 디스크 공간을 반환합니다.
인덱스 제외. (토스트 우주, 여유 공간지도 및
가시성 맵이 포함되어 있습니다.)
pg_indexes_size
OID를 수락합니다
또는 테이블 이름과 모두가 사용하는 총 디스크 공간을 반환합니다.
해당 테이블에 첨부 된 인덱스.
PG_DATABASE_SIZE
andpg_tablespace_size
OID를 수락하십시오
또는 데이터베이스 또는 테이블 스페이스의 이름과 총 디스크를 반환합니다.
거기에 사용 된 공간. 사용하려면pg_database_size
, 당신은 있어야합니다Connect지정된 데이터베이스의 권한
(기본적으로 부여됨). 사용하려면pg_tablespace_size
, 당신은Create지정된 테이블 스페이스의 허가,
현재 데이터베이스의 기본 테이블 스페이스가 아니라면
pg_relation_size
OID를 수락합니다
또는 테이블, 인덱스 또는 토스트 테이블의 이름을 사용하여 온 디스크를 반환합니다.
그 관계의 한 포크의 바이트 크기. (대부분의 경우
목적 고급 기능을 사용하는 것이 더 편리합니다PG_TOTAL_RELATION_SIZE
또는pg_table_size
모든 포크 중.) 하나의 논쟁으로, 그것은 메인의 크기를 반환합니다.
관계의 데이터 포크. 두 번째 인수는 제공 될 수 있습니다
검사 할 포크 지정 :
'main'크기를 반환합니다 관계의 주요 데이터 포크.
'FSM'크기를 반환합니다 여유 공간지도 (참조섹션 54.3) 관계와 관련이 있습니다.
'vm'크기를 반환합니다 가시성 맵 (와이즈 토토 : 문서 : 9) 관계와 관련이 있습니다.
pg_size_pretty
익숙해 질 수 있습니다
다른 함수 중 하나의 결과를
KB, MB, GB 또는 TB를 적절하게 사용하는 사람이 읽을 수있는 방법.
표 9-60관련된 특정 디스크 파일을 식별하는 데 도움이됩니다 데이터베이스 개체.
표 9-60. 데이터베이스 개체 위치 기능
이름 | 반환 유형 | 설명 |
---|---|---|
PG_RELATION_FILENODE (관계 Regclass) |
OID | 지정된 관계의 필레 노드 번호 OID 또는 이름 |
PG_RELATION_FILEPATH (관계 regclass) |
텍스트 | 지정된 OID와의 관계의 파일 경로 이름 또는 이름 |
PG_RELATION_FILENODE
테이블의 OID 또는 이름, 색인, 시퀀스 또는 토스트 테이블 및
반환"Filenode"번호
현재 할당되었습니다. 필레 노드는의 기본 구성 요소입니다
관계에 사용되는 파일 이름 (참조섹션 54.1더 많은 경우
정보). 대부분의 테이블의 경우 결과는와 동일합니다.PG_CLASS.relfilenode그러나 특정 시스템 카탈로그의 경우relfilenode는 0입니다
올바른 값을 얻으려면 기능을 사용해야합니다. 기능
저장소가없는 관계를 통과하면 NULL을 반환합니다.
보기와 같은.
PG_RELATION_FILEPATH
비슷합니다
에게pg_relation_filenode
, 그러나 그것은
전체 파일 경로 이름을 반환합니다 (데이터베이스에 대해
클러스터의 데이터 디렉토리pgdata)의
관계.
표 9-61서버를 호스팅하는 컴퓨터의 파일에 대한 기본 액세스를 제공합니다. 데이터베이스 클러스터 디렉토리 및 내의 파일 만log_directory액세스 할 수 있습니다. a 클러스터 디렉토리의 파일에 대한 상대 경로 및 경로 일치log_directory구성 로그 파일 설정. 이러한 토토 캔의 사용은 제한됩니다 슈퍼업자.
표 9-61. 일반 파일 액세스 함수
이름 | 반환 유형 | 설명 |
---|---|---|
PG_LS_DIR (Dirname
텍스트) |
텍스트 설정 | 디렉토리의 내용 목록 |
pg_read_file (filename 텍스트,
오프셋 bigint, 길이
bigint) |
텍스트 | 텍스트 파일의 내용을 반환 |
pg_stat_file (filename 텍스트) |
레코드 | 파일에 대한 정보 반환 |
PG_LS_DIR
모든 이름을 반환합니다
특수 항목을 제외한 지정된 디렉토리에서"."and"..".
PG_READ_FILE
a의 일부를 반환합니다
텍스트 파일, 주어진에서 시작오프셋, 최대 반환길이바이트 (파일 끝에 도달하면 적습니다
첫 번째). 만약에오프셋부정적입니다
파일의 끝과 관련이 있습니다.
PG_STAT_FILE
레코드를 반환합니다
파일 크기, 마지막으로 액세스 된 타임 스탬프, 마지막 수정
타임 스탬프, 마지막 파일 상태 변경 타임 스탬프 (UNIX 플랫폼
전용), 파일 생성 타임 스탬프 (Windows 만) 및 A부울디렉토리인지를 나타냅니다. 전형적인
사용법은 다음과 같습니다.
선택 *에서 pg_stat_file ( 'filename'); 선택 (pg_stat_file ( 'filename')). 수정;
표 9-62자문 잠금 관리. 이것들의 적절한 사용에 대한 자세한 내용은 토토 캔, 참조섹션 13.3.4.
표 9-62. 자문 잠금 기능
이름 | 반환 유형 | 설명 |
---|---|---|
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 비트 키 값 (
두 개의 주요 공간이 겹치지 않습니다). 핵심 유형은에 지정되어 있습니다.pg_locks.objid. 다른 세션 인 경우
이미 동일한 자원에 잠금 장치를 보유하고 있으며 토토 캔이 대기합니다.
리소스를 사용할 수있을 때까지. 자물쇠는 독점적입니다.
다중 잠금 요청이 스택을 요청하여 동일한 자원이
세 번 잠긴 경우에는 세 번 잠금을 해제해야합니다.
다른 세션의 사용을 위해 출시되었습니다.
pg_advisory_lock_shared
작품
동일pg_advisory_lock
,
자물쇠를 제외하고는 다른 세션과 공유 할 수 있습니다.
공유 잠금. 독점적 인 사물함 만 잠겨 있습니다.
PG_TRY_ADVISORY_LOCK
비슷합니다
에게pg_advisory_lock
를 제외하고
함수가 잠금을 사용할 수있을 때까지 대기하지 않습니다. 그것은 할 것입니다
즉시 잠금을 얻고 반환true또는 returnfalseif
자물쇠는 즉시 획득 할 수 없습니다.
pg_try_advisory_lock_shared
PG_TRY_ADVISORY_LOCK
독점적 인 자물쇠보다는 공유를 얻습니다.
pg_advisory_unlock
릴리스됩니다
이전에 획득 한 독점 자문 잠금. 반환True잠금이 성공적으로 인 경우
출시된. 자물쇠가 유지되지 않으면 반환됩니다false, 또한 SQL 경고가 있습니다
서버에 의해 제기.
pg_advisory_unlock_shared
작품
동일pg_advisory_unlock
,
공유 자문 잠금 장치를 출시 한 경우를 제외하고
pg_advisory_unlock_all
의지
현재 세션에서 보유한 모든 자문 잠금 장치를 해제하십시오. (이것
클라이언트가 있더라도 토토 캔이 세션 종료시 암시 적으로 호출됩니다.
끊임없이 연결을 끊습니다.)