테이블 9-51질의 및 변경에 사용할 수 있는 토토 베이을 표시합니다. 런타임 구성 매개변수입니다.
표 9-51. 구성 설정 토토 베이
| 이름 | 반환 유형 | 설명 |
|---|---|---|
현재_설정(설정_이름) |
텍스트 | 현재 설정값 |
set_config(설정_이름, new_value, is_local) |
텍스트 | 매개변수 설정 및 새 값 반환 |
함수현재_설정설정의 현재 값을 산출설정_이름. 에 해당합니다.SQL명령표시. 예:
SELECT current_setting('날짜 스타일');
현재_설정
-----------------
ISO, MDY
(1행)
set_config매개변수 설정설정_이름에new_value. 만일is_local이다참,
새로운 값은 현재 거래에만 적용됩니다. 원한다면
현재 세션에 적용할 새 값, 사용거짓대신. 함수는 SQL에 해당합니다.
명령SET. 예:
SELECT set_config('log_statement_stats', 'off', false);
세트_구성
------------
떨어져서
(1행)
다음에 표시된 기능테이블 9-52다른 서버 프로세스에 제어 신호를 보냅니다. 사용 이 토토 베이은 슈퍼유저에게만 제공됩니다.
표 9-52. 서버 신호 토토 베이
| 이름 | 반환 유형 | 설명 |
|---|---|---|
pg_cancel_backend(pid int) |
부울 | 백엔드의 현재 쿼리 취소 |
pg_reload_conf() |
부울 | 서버 프로세스가 구성을 다시 로드하도록 함 파일 |
pg_rotate_logfile() |
부울 | 서버의 로그 파일 순환 |
이러한 각 함수는 다음을 반환합니다.참성공하고거짓그렇지 않으면.
pg_cancel_backend쿼리를 보냅니다
취소 (SIGINT) 신호를
프로세스 ID로 식별되는 백엔드 프로세스입니다. 프로세스 ID
활성 백엔드는에서 찾을 수 있습니다.procpid열의pg_stat_activity보기 또는 목록을 작성하여포스트그레스서버의 프로세스ps.
pg_reload_conf보냄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=# pg_xlogfile_name_offset(pg_stop_backup())에서 * 선택;
파일 이름 | 파일_오프셋
-------------+---------------
00000001000000000000000D | 4039624
(1행)
마찬가지로,pg_xlogfile_name트랜잭션 로그 파일 이름만 추출합니다. 주어진 때
트랜잭션 로그 위치가 정확히 트랜잭션 로그 파일에 있습니다.
경계의 경우, 이 두 함수 모두 이전 경계의 이름을 반환합니다.
트랜잭션 로그 파일. 이는 일반적으로 원하는 동작입니다.
이전 이후 트랜잭션 로그 보관 동작 관리
파일은 현재 보관해야 하는 마지막 파일입니다.
이러한 토토 베이의 올바른 사용법에 대한 자세한 내용은 참조PostgreSQL : 문서 : 8.3 : 연속 보관 및 시점 토토 꽁 머니 (PITR).
다음에 표시된 기능표 9-54데이터베이스의 실제 디스크 공간 사용량 계산 객체.
표 9-54. 데이터베이스 개체 크기 함수
| 이름 | 반환 유형 | 설명 |
|---|---|---|
pg_column_size(아무거나) |
int | 특정 값을 저장하는 데 사용된 바이트 수 (아마도 압축됨) |
pg_database_size(oid) |
비긴트 | 지정된 데이터베이스가 사용하는 디스크 공간 OID |
pg_database_size(이름) |
비긴트 | 지정된 데이터베이스가 사용하는 디스크 공간 이름 |
pg_relation_size(oid) |
비긴트 | 테이블 또는 인덱스가 사용하는 디스크 공간 지정된 OID |
pg_relation_size(텍스트) |
비긴트 | 테이블 또는 인덱스가 사용하는 디스크 공간 지정된 이름. 테이블 이름은 스키마 이름 |
pg_size_pretty(비긴트) |
텍스트 | 바이트 단위의 크기를 사람이 읽을 수 있는 형식으로 변환합니다. 크기 단위 포함 |
pg_tablespace_size(oid) |
비긴트 | 지정된 테이블스페이스가 사용하는 디스크 공간 OID |
pg_tablespace_size(이름) |
bigint | 지정된 테이블스페이스가 사용하는 디스크 공간 이름 |
pg_total_relation_size(oid) |
비긴트 | 지정된 테이블이 사용하는 총 디스크 공간 인덱스 및 구운 데이터를 포함한 OID |
pg_total_relation_size(텍스트) |
비긴트 | 지정된 테이블이 사용하는 총 디스크 공간 인덱스 및 구운 데이터를 포함한 이름. 테이블 이름 스키마 이름으로 한정될 수 있습니다. |
pg_column_size공간을 보여줍니다
개별 데이터 값을 저장하는 데 사용됩니다.
pg_database_size그리고pg_tablespace_sizeOID를 수락하세요
또는 데이터베이스나 테이블스페이스의 이름을 입력하고 총 디스크를 반환합니다.
거기에 사용되는 공간입니다.
pg_relation_sizeOID를 수락합니다
또는 테이블, 인덱스 또는 토스트 테이블의 이름을 입력하고 크기를 다음 형식으로 반환합니다.
바이트.
pg_size_pretty다음에 사용할 수 있습니다.
다른 함수 중 하나의 결과 형식을
사람이 읽을 수 있는 방식으로 kB, MB, GB 또는 TB를 적절하게 사용합니다.
pg_total_relation_size수락
테이블이나 토스트 테이블의 OID 또는 이름을 반환하고 크기를 반환합니다.
데이터와 모든 관련 인덱스 및 토스트의 바이트 단위
테이블.
다음에 표시된 기능표 9-55호스팅하는 시스템의 파일에 대한 기본 파일 액세스를 제공합니다. 서버. 데이터베이스 클러스터 디렉터리 내의 파일만 및log_directory접근할 수 있습니다. 사용 클러스터 디렉터리 내 파일의 상대 경로 및 경로 일치하는log_directory구성 로그 파일에 대한 설정입니다. 이 기능의 사용은 다음으로 제한됩니다. 슈퍼유저.
표 9-55. 일반 파일 액세스 기능
| 이름 | 반환 유형 | 설명 |
|---|---|---|
pg_ls_dir(dirname 텍스트) |
텍스트 집합 | 디렉토리의 내용 나열 |
pg_read_file(파일 이름 텍스트,
오프셋 비긴트, 길이
비긴트) |
텍스트 | 텍스트 파일의 내용을 반환 |
pg_stat_file(파일 이름 텍스트) |
기록 | 파일에 대한 정보 반환 |
pg_ls_dir모든 이름을 반환합니다.
특수 항목을 제외하고 지정된 디렉토리에"."그리고"..".
pg_read_file의 일부를 반환합니다.
주어진 위치에서 시작하는 텍스트 파일오프셋, 최대 반환길이바이트(파일 끝에 도달하면 더 적음)
먼저). 만일오프셋부정적입니다.
파일 끝을 기준으로 합니다.
pg_stat_file기록을 반환합니다.
파일 크기, 마지막으로 액세스한 타임스탬프, 마지막으로 수정된 내용 포함
타임스탬프, 마지막 파일 상태 변경 타임스탬프(Unix 플랫폼
해당), 파일 생성 타임스탬프(Windows만 해당) 및 a부울디렉토리인지 여부를 나타냅니다. 전형적인
사용법은 다음과 같습니다:
SELECT * FROM pg_stat_file('파일 이름');
SELECT (pg_stat_file('파일 이름')).수정;
다음에 표시된 기능표 9-56권고 잠금을 관리합니다. 올바른 사용법에 대한 자세한 내용은 함수, 참조섹션 13.3.4.
표 9-56. 권고 잠금 기능
| 이름 | 반환 유형 | 설명 |
|---|---|---|
pg_advisory_lock(키 비긴트) |
무효 | 독점적 권고 잠금 획득 |
pg_advisory_lock(키1 int,
키2 int) |
공허 | 독점 자문 잠금 획득 |
pg_advisory_lock_shared(키 bigint) |
공허 | 공유 자문 잠금 획득 |
pg_advisory_lock_shared(키1 int,
키2 int) |
무효 | 공유 권고 잠금 획득 |
pg_try_advisory_lock(키 비긴트) |
부울 | 가능한 경우 독점 권고 잠금 획득 |
pg_try_advisory_lock(키1 int,
키2 int) |
부울 | 가능한 경우 독점 권고 잠금 획득 |
pg_try_advisory_lock_shared(키 bigint) |
부울 | 가능한 경우 공유 권고 잠금 획득 |
pg_try_advisory_lock_shared(키1 int,
키2 int) |
부울 | 가능한 경우 공유 권고 잠금 획득 |
pg_advisory_unlock(키 bigint) |
부울 | 독점적 권고 잠금 해제 |
pg_advisory_unlock(키1 int,
키2 int) |
부울 | 독점적 권고 잠금 해제 |
pg_advisory_unlock_shared(키 비긴트) |
부울 | 공유 권고 잠금 해제 |
pg_advisory_unlock_shared(키1 int,
키2 int) |
부울 | 공유 권고 잠금 해제 |
pg_advisory_unlock_all() |
무효 | 현재 보유하고 있는 모든 권고 잠금을 해제합니다. 세션 |
pg_advisory_lock잠금
다음 중 하나로 식별할 수 있는 애플리케이션 정의 리소스
단일 64비트 키 값 또는 두 개의 32비트 키 값(이
두 개의 키 공간은 겹치지 않습니다). 다른 세션이 이미 진행 중인 경우
동일한 리소스에 대한 잠금이 설정될 때까지 함수는 대기합니다.
리소스를 사용할 수 있게 됩니다. 자물쇠는 독점적입니다. 다중 잠금
요청 스택이 있으므로 동일한 리소스가 3개 잠겨 있으면
여러 번 잠금 해제하려면 세 번 잠금 해제해야 합니다.
다른 세션의 사용.
pg_advisory_lock_shared작동
와 동일pg_advisory_lock,
잠금을 요청하는 다른 세션과 공유할 수 있다는 점만 제외하면
공유 잠금. 전용 사물함만 잠겨있습니다
밖으로.
pg_try_advisory_lock비슷합니다
에pg_advisory_lock, 제외
함수는 잠금이 사용 가능해질 때까지 기다리지 않습니다. 그럴 것이다
즉시 잠금을 획득하고 반환하세요.참또는 반환거짓만일
지금은 잠금을 획득할 수 없습니다.
pg_try_advisory_lock_shared다음과 동일하게 작동합니다pg_try_advisory_lock, 단, 다음을 시도하는 경우는 제외됩니다.
배타적 잠금이 아닌 공유 잠금을 획득합니다.
pg_advisory_unlock출시됩니다
이전에 획득한 독점 권고 잠금입니다. 돌아올 것이다참잠금이 성공적으로 이루어진 경우
출시되었습니다. 잠금이 실제로 유지되지 않은 경우 반환됩니다.거짓및 추가로 SQL 경고
서버에서 발생합니다.
pg_advisory_unlock_shared작동
와 동일pg_advisory_unlock,
공유 권고 잠금을 해제하는 경우는 제외합니다.
pg_advisory_unlock_all할 것이다
현재 세션이 보유하고 있는 모든 권고 잠금을 해제합니다. (이
함수는 클라이언트가 세션 종료 시 암시적으로 호출됩니다.
비정상적으로 연결이 끊어집니다.)