이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 9.28. 시스템 관리 스포츠 토토 사이트버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

9.26. 시스템 관리 기능

이 섹션에 설명된 기능은 다음을 제어하는 데 사용됩니다. 그리고 모니터하세요 a포스트그레SQL설치.

9.26.1. 구성 설정 기능

표 9-58런타임을 쿼리하고 변경하는 데 사용할 수 있는 함수를 표시합니다. 구성 매개변수입니다.

표 9-58. 구성 설정 기능

이름 반환 유형 설명
현재_설정(설정_이름) 텍스트 현재 설정 값 가져오기
set_config(설정_이름, new_value, is_local) 텍스트 매개변수 설정 및 새 값 반환

함수현재_설정설정의 현재 값을 산출설정_이름. 에 해당합니다.SQL명령표시. 예:

SELECT current_setting('날짜 스타일');

 현재_설정
-----------------
 ISO, MDY
(1행)

set_config매개변수 설정설정_이름new_value. 만일is_localis, 새로운 값은 현재 거래에만 적용됩니다. 당신이 현재 세션에 새 값을 적용하려면거짓대신. 기능 SQL 명령에 해당합니다.SET. 안 예:

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

 세트_구성
------------
 떨어져서
(1행)

9.26.2. 서버 시그널링 기능

다음에 표시된 기능테이블 9-59다른 서버 프로세스에 제어 신호를 보냅니다. 사용 이러한 기능은 일반적으로 다음과 같이 수퍼유저로 제한됩니다. 예외.

표 9-59. 서버 신호 토토 사이트 추천

이름 반환 유형 설명
pg_cancel_backend(pid int) 부울 백엔드의 현재 쿼리를 취소합니다. 실행할 수 있습니다 이는 정확히 동일한 다른 백엔드에 대한 것입니다. 함수를 호출하는 사용자로서의 역할. 다른 모든 것에는 경우에는 슈퍼유저여야 합니다.
pg_reload_conf() 부울 서버 프로세스가 다시 로드되도록 함 구성 파일
pg_rotate_logfile() 부울 서버의 로그 파일 순환
pg_terminate_backend(pid int) 부울 백엔드를 종료합니다. 당신은 이것을 실행할 수 있습니다 백엔드와 정확히 동일한 역할을 하는 다른 백엔드 사용자가 함수를 호출합니다. 다른 모든 경우에는 다음을 수행해야 합니다. 슈퍼유저가 되세요.

이러한 각 함수는 다음을 반환합니다.성공하면거짓그렇지 않으면.

pg_cancel_backend그리고pg_terminate_backend신호 보내기 (SIGINT또는SIGTERM각각)을 백엔드 프로세스에 프로세스 ID로 식별됩니다. 활성 백엔드의 프로세스 ID 에서 찾을 수 있습니다.pid열 의pg_stat_activity보기 또는 작성자 다음을 나열합니다.포스트그레스프로세스 서버(사용 중psUnix 또는작업 관리자켜짐윈도우). 역할은 활성 백엔드는에서 찾을 수 있습니다.사용자 이름pg_stat_activity보기.

pg_reload_conf보냄SIGHUP서버에 신호를 보내고, 모든 서버에서 구성 파일을 다시 로드하게 함 프로세스.

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

9.26.3. 백업 제어 기능

다음에 표시된 기능테이블 9-60온라인 백업을 지원합니다. 이러한 기능 복구 중에는 실행할 수 없습니다(예외pg_xlog_location_diff).

표 9-60. 백업 제어 토토 사이트 추천

이름 반환 유형 설명
pg_create_restore_point(이름 텍스트) 텍스트 복원 수행을 위해 명명된 지점 생성 (수퍼유저로 제한됨)
pg_current_xlog_insert_location() 텍스트 현재 트랜잭션 로그 삽입 위치 가져오기
pg_current_xlog_location() 텍스트 현재 트랜잭션 로그 쓰기 위치 가져오기
pg_start_backup(라벨 텍스트 [, 빠르게 부울 ]) 텍스트 온라인 백업 수행 준비(제한됨) 슈퍼유저 또는 복제 역할)
pg_stop_backup() 텍스트 온라인 백업 수행 완료(다음으로 제한됨) 슈퍼유저 또는 복제 역할)
pg_switch_xlog() 텍스트 새 트랜잭션 로그 파일로 강제 전환 (수퍼유저로 제한됨)
pg_xlog파일_이름(위치 텍스트) 텍스트 트랜잭션 로그 위치 문자열을 파일로 변환 이름
pg_xlogfile_name_offset(위치 텍스트) 텍스트, 정수 트랜잭션 로그 위치 문자열을 파일로 변환 파일 내 이름 및 10진수 바이트 오프셋
pg_xlog_location_diff(위치 텍스트, 위치 텍스트) 숫자 두 거래의 차이를 계산하세요 로그 위치

pg_start_backup수락 백업에 대한 임의의 사용자 정의 레이블입니다. (일반적으로 이 백업 덤프 파일의 이름이 됩니다. 저장됩니다.) 이 함수는 백업 라벨 파일()을 작성합니다.backup_label)를 데이터베이스 클러스터의 데이터에 디렉터리를 검사하고 체크포인트를 수행한 다음 백업의 트랜잭션 로그 위치를 텍스트로 시작합니다. 사용자는 무시할 수 있습니다 이 결과 값이지만 유용할 경우를 위해 제공됩니다.

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

유형의 선택적 두 번째 매개변수가 있습니다.부울. 만일, 그거 실행을 지정합니다pg_start_backup가능한 한 빨리. 이 I/O의 급증을 일으키는 즉각적인 체크포인트를 강제합니다. 동시에 실행되는 쿼리 속도가 느려집니다.

pg_stop_backup제거 에 의해 생성된 라벨 파일pg_start_backup, 백업 기록을 생성합니다. 트랜잭션 로그 아카이브 영역에 있는 파일입니다. 기록 파일 다음에 지정된 라벨을 포함합니다.pg_start_backup, 시작과 끝 백업을 위한 트랜잭션 로그 위치, 시작 및 백업 종료 시간. 반환 값은 백업의 값입니다. 종료 트랜잭션 로그 위치(다시 무시할 수 있음) 종료 위치를 기록한 후 현재 거래 로그 삽입 지점은 자동으로 다음 지점으로 넘어갑니다. 트랜잭션 로그 파일, 종료 트랜잭션 로그 파일 즉시 보관하여 백업을 완료할 수 있습니다.

pg_switch_xlog다음으로 이동합니다. 다음 트랜잭션 로그 파일을 사용하여 현재 파일을 보관됩니다(연속 보관을 사용한다고 가정). 는 반환 값은 종료 트랜잭션 로그 위치 + 1 이내입니다. 방금 완료된 트랜잭션 로그 파일. 만약에 없었다면 마지막 트랜잭션 로그 전환 이후 트랜잭션 로그 활동,pg_switch_xlog아무것도 하지 않고 트랜잭션 로그 파일의 시작 위치를 반환합니다. 현재 사용 중입니다.

pg_create_restore_point다음으로 사용할 수 있는 명명된 트랜잭션 로그 레코드를 생성합니다. 복구 대상을 확인하고 해당 트랜잭션 로그를 반환합니다. 위치. 그런 다음 주어진 이름을 다음과 함께 사용할 수 있습니다.recovery_target_name복구가 진행될 지점을 지정합니다. 피하다 동일한 이름으로 여러 복원 지점을 생성합니다. 이름이 일치하는 첫 번째 항목에서 복구가 중지됩니다. 회복 대상.

pg_current_xlog_location현재 트랜잭션 로그 쓰기 위치를 동일한 위치에 표시합니다. 위 함수에서 사용되는 형식입니다. 마찬가지로,pg_current_xlog_insert_location표시 현재 트랜잭션 로그 삽입 지점입니다. 삽입 지점은 다음과 같습니다."논리적"거래 종료 언제든지 로그를 기록하고 쓰기 위치는 작업의 끝입니다. 실제로 서버 내부에서 기록되었습니다. 버퍼. 쓰기 위치는 검사할 수 있는 것의 끝입니다. 서버 외부에서 접근할 수 있으며 일반적으로 다음과 같은 경우에 원하는 것입니다. 부분적으로 완료된 트랜잭션 로그를 보관하는 데 관심이 있습니다. 파일. 삽입점은 주로 다음 용도로 사용할 수 있습니다. 서버 디버깅 목적. 둘 다 읽기 전용 작업입니다. 슈퍼유저 권한이 필요하지 않습니다.

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

postgres=# SELECT * FROM pg_xlogfile_name_offset(pg_stop_backup());
        파일 이름 | 파일_오프셋 
-------------+---------------
 00000001000000000000000D |     4039624
(1행)

마찬가지로,pg_xlogfile_name트랜잭션 로그 파일 이름만 추출합니다. 주어진 때 트랜잭션 로그 위치가 정확히 트랜잭션 로그 파일에 있습니다. 경계의 경우, 이 두 함수 모두 이전 경계의 이름을 반환합니다. 트랜잭션 로그 파일. 이는 일반적으로 원하는 동작입니다. 트랜잭션 로그 보관 동작을 관리합니다. 이전 파일은 현재 필요한 마지막 파일입니다. 보관되었습니다.

pg_xlog_location_diff두 트랜잭션 로그 간의 바이트 차이를 계산합니다. 위치. 다음과 함께 사용할 수 있습니다.pg_stat_replication또는 일부 기능 표시 에서테이블 9-60복제 지연을 가져옵니다.

이러한 기능의 올바른 사용법에 대한 자세한 내용은 다음을 참조하세요.PostgreSQL : 문서 : 9.2 : 연속 토토 사이트 및 시점 토토 사이트 (PITR).

9.26.4. 복구 제어 기능

다음에 표시된 기능테이블 9-61현재 상태에 대한 정보를 제공합니다. 대기. 이러한 기능은 복구 중에 모두 실행될 수 있습니다. 그리고 정상적으로 실행 중입니다.

표 9-61. 복구 정보 기능

이름 반환 유형 설명
pg_is_in_recovery() 부울 복구가 아직 진행 중이면 True입니다.
pg_last_xlog_receive_location() 텍스트 마지막으로 수신된 트랜잭션 로그 위치를 가져오고 스트리밍 복제를 통해 디스크에 동기화됩니다. 동안 스트리밍 복제가 진행 중입니다. 단조롭게. 복구가 완료되면 마지막 WAL 레코드 값으로 정적으로 유지됩니다. 복구 중에 수신되어 디스크에 동기화됩니다. 만약에 스트리밍 복제가 비활성화되었거나 아직 비활성화되지 않은 경우 시작되면 함수는 NULL을 반환합니다.
pg_last_xlog_replay_location() 텍스트 다음 동안 재생된 마지막 트랜잭션 로그 위치 가져오기 회복. 복구가 아직 진행 중인 경우 단조롭게 증가합니다. 복구가 완료되었다면 이 값은 마지막 값에서 정적으로 유지됩니다. 해당 복구 중에 WAL 레코드가 적용되었습니다. 때 서버가 복구되지 않고 정상적으로 시작되었습니다. 함수는 NULL을 반환합니다.
pg_last_xact_replay_timestamp() 시간대가 포함된 타임스탬프 다음 중 재생된 마지막 거래의 타임스탬프를 가져옵니다. 회복. 커밋 또는 중단이 수행되는 시간입니다. 해당 트랜잭션에 대한 WAL 레코드가 생성되었습니다. 기본. 해당 기간 동안 거래가 재생되지 않은 경우 복구하면 이 함수는 NULL을 반환합니다. 그렇지 않은 경우 복구가 아직 진행 중이므로 증가할 것입니다. 단조롭게. 복구가 완료되면 이 값은 마지막 값에서 정적으로 유지됩니다. 해당 복구 중에 트랜잭션이 적용됩니다. 때 서버가 복구되지 않고 정상적으로 시작되었습니다. 함수는 NULL을 반환합니다.

다음에 표시된 기능테이블 9-62복구 진행 상황을 제어합니다. 이러한 기능은 다음과 같습니다. 복구 중에만 실행됩니다.

표 9-62. 복구 제어 토토 사이트 추천

이름 반환 유형 설명
pg_is_xlog_replay_paused() 부울 복구가 일시 중지된 경우 True입니다.
pg_xlog_replay_pause() 무효 복구를 즉시 일시중지합니다.
pg_xlog_replay_resume() 공허 일시 중지된 경우 복구를 다시 시작합니다.

복구가 일시 중지되는 동안 더 이상 데이터베이스 변경은 없습니다. 적용되었습니다. 상시 대기 상태인 경우 모든 새 쿼리에는 동일한 내용이 표시됩니다. 데이터베이스의 일관된 스냅샷, 추가 쿼리 없음 복구가 재개될 때까지 충돌이 발생합니다.

스트리밍 복제가 비활성화된 경우 일시 중지된 상태가 될 수 있습니다. 문제없이 무기한 계속됩니다. 스트리밍하는 동안 복제가 진행 중입니다. WAL 레코드는 계속 복제됩니다. 결국 사용 가능한 디스크 공간을 채울 것입니다. 일시 중지 기간에 따라 WAL 비율이 달라집니다. 생성 및 사용 가능한 디스크 공간.

9.26.5. 스냅샷 동기화 기능

포스트그레SQL데이터베이스 허용 스냅샷을 동기화하는 세션입니다. 갑스냅샷어떤 데이터가 표시되는지 결정합니다. 스냅샷을 사용하는 트랜잭션입니다. 동기화됨 둘 이상의 세션을 확인해야 할 때 스냅샷이 필요합니다. 데이터베이스의 동일한 콘텐츠. 두 세션이 막 시작되면 독립적으로 거래할 수 있으므로 항상 가능성이 있습니다. 실행 사이에 일부 세 번째 트랜잭션이 커밋됩니다. 둘거래 시작명령이니까 한 세션에서 해당 트랜잭션의 효과를 확인하고 다른 사람은 그렇지 않습니다.

이 문제를 해결하려면,PostgreSQL거래를 허용합니다내보내기사용 중인 스냅샷입니다. 다음과 같이 수출 거래가 열려 있는 한, 기타 거래는 가능가져오기스냅샷, 따라서 동일한 뷰를 볼 수 있도록 보장됩니다. 첫 번째 트랜잭션이 보는 데이터베이스의 하지만 참고하세요 이러한 트랜잭션 중 하나에 의해 발생한 데이터베이스 변경 사항 평소와 같이 다른 거래에는 보이지 않습니다. 커밋되지 않은 트랜잭션으로 인해 발생한 변경 사항입니다. 그래서 거래는 기존 데이터와 동기화되지만 작동하지 않습니다. 일반적으로 스스로 변경하는 경우가 많습니다.

스냅샷은 다음을 사용하여 내보내집니다.pg_export_snapshot함수, 다음에 표시됨표 9-63, 다음으로 가져옴거래 설정명령.

표 9-63. 스냅샷 동기화 기능

이름 반환 유형 설명
pg_export_snapshot() 텍스트 현재 스냅샷을 저장하고 그 스냅샷을 반환합니다. 식별자

함수pg_export_snapshot현재 스냅샷을 저장합니다 그리고 a를 반환합니다.텍스트문자열 식별 스냅샷. 이 문자열은 데이터베이스 외부로 전달되어야 합니다. 스냅샷을 가져오려는 클라이언트. 스냅샷은 해당 거래가 종료될 때까지만 수입이 가능합니다. 내보냈습니다. 트랜잭션은 둘 이상의 스냅샷을 내보낼 수 있습니다. 필요한 경우. 그렇게 하는 것은 다음 경우에만 유용합니다.읽어 커밋됨거래, 이후반복 가능한 읽기및 더 높은 격리 수준, 트랜잭션은 수명 내내 동일한 스냅샷을 사용합니다. 트랜잭션이 스냅샷을 내보낸 후에는 다음을 수행할 수 없습니다. 으로 준비됨PostgreSQL :.

참조PostgreSQL : 문서 : 9.2 : 스포츠 토토 사이트 설정내보낸 스냅샷을 사용하는 방법에 대한 자세한 내용.

9.26.6. 데이터베이스 개체 관리 기능

다음에 표시된 기능표 9-64데이터베이스 개체의 디스크 공간 사용량을 계산합니다.

표 9-64. 데이터베이스 개체 크기 함수

이름 반환 유형 설명
pg_column_size(모든) int 특정 값을 저장하는 데 사용된 바이트 수 (아마도 압축됨)
pg_database_size(oid) bigint 지정된 데이터베이스가 사용하는 디스크 공간 OID
pg_database_size(이름) 비긴트 지정된 데이터베이스가 사용하는 디스크 공간 이름
pg_indexes_size(regclass) 비긴트 다음에 연결된 인덱스가 사용하는 총 디스크 공간 지정된 테이블
pg_relation_size(관계 regclass, 포크 텍스트) 비긴트 지정된 포크가 사용하는 디스크 공간('메인', 'fsm', 'vm'또는'초기화'38365_38412
pg_relation_size(관계 regclass) bigint 약어pg_relation_size(..., '메인')
pg_size_pretty(bigint) 텍스트 64비트로 표현된 크기를 바이트 단위로 변환합니다. 크기가 있는 사람이 읽을 수 있는 형식으로 정수 단위
pg_size_pretty(숫자) 텍스트 숫자로 표현된 크기를 바이트 단위로 변환합니다. 값을 크기 단위로 사람이 읽을 수 있는 형식으로 변환
pg_table_size(regclass) 비긴트 지정된 테이블이 사용하는 디스크 공간, 제외 인덱스(단, TOAST, 여유 공간 맵 및 가시성 지도)
pg_tablespace_size(oid) 비긴트 테이블스페이스가 사용하는 디스크 공간 지정된 OID
pg_tablespace_size(이름) 비긴트 테이블스페이스가 사용하는 디스크 공간 지정된 이름
pg_total_relation_size(regclass) 비긴트 지정된 테이블이 사용하는 총 디스크 공간, 모든 색인을 포함하고토스트데이터

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

pg_total_relation_size수락 테이블이나 토스트 테이블의 OID 또는 이름을 반환합니다. 모든 항목을 포함하여 해당 테이블에 사용된 총 디스크 공간 관련 인덱스. 이 함수는 다음과 같습니다.pg_table_size + pg_indexes_size.

pg_table_sizeOID를 수락합니다 또는 테이블 이름을 입력하고 해당 테이블에 필요한 디스크 공간을 반환합니다. 인덱스를 제외한 테이블. (TOAST 공간, 여유 공간 맵, 가시성 지도가 포함되어 있습니다.)

pg_indexes_size수락합니다 테이블의 OID 또는 이름이며 사용된 총 디스크 공간을 반환합니다. 해당 테이블에 연결된 모든 인덱스.

pg_database_size그리고pg_tablespace_sizeOID를 수락하세요 또는 데이터베이스나 테이블스페이스의 이름을 입력하고 총 디스크를 반환합니다. 그 안에서 사용되는 공간. 사용하려면pg_database_size, 있어야 합니다연결지정된 데이터베이스에 대한 권한 (기본적으로 부여됨) 사용하려면pg_tablespace_size, 반드시 있어야 합니다생성지정된 테이블스페이스에 대한 권한, 현재 테이블스페이스의 기본 테이블스페이스가 아닌 경우 데이터베이스.

pg_relation_size수락합니다 테이블, 인덱스 또는 토스트 테이블의 OID 또는 이름을 반환합니다. 해당 관계의 한 포크에 대한 디스크상의 크기(바이트)입니다. (참고하세요 대부분의 경우 상위 수준을 사용하는 것이 더 편리합니다. 기능pg_total_relation_size또는pg_table_size, 이는 모든 포크의 크기.) 하나의 인수로 다음의 크기를 반환합니다. 관계의 주요 데이터 포크입니다. 두 번째 인수는 다음과 같습니다. 검사할 포크를 지정하기 위해 제공됩니다.

  • '메인'크기를 반환합니다. 관계의 기본 데이터 포크입니다.

  • 'fsm'크기를 반환합니다. 여유 공간 지도(참조섹션 56.3)가 관계와 연결되어 있습니다.

  • 'vm'크기를 반환합니다. 가시성 지도(참조배트맨 토토 : 문서 : 9)이 관계와 연결되어 있습니다.

  • '초기화'크기를 반환합니다. 초기화 포크(있는 경우)(참조섹션 56.5)과 연결됨 관계.

pg_size_pretty다음에 사용할 수 있습니다. 다른 함수 중 하나의 결과 형식을 사람이 읽을 수 있는 방식으로 kB, MB, GB 또는 TB를 적절하게 사용합니다.

테이블이나 인덱스에서 작동하는 위의 함수는 에regclass인수는 단순히 에 있는 테이블 또는 인덱스의 OIDpg_class시스템 카탈로그. 그럴 필요는 없습니다. 그러나 OID를 직접 찾아보십시오.regclass데이터 유형의 입력 변환기는 다음을 수행합니다. 당신을 위해 일하십시오. 단일로 묶인 테이블 이름을 작성하십시오. 문자 그대로의 상수처럼 보이도록 따옴표를 붙입니다. 에 대한 일반 취급과의 호환성SQL이름, 문자열은 다음으로 변환됩니다. 테이블 주위에 큰따옴표가 포함되지 않은 경우 소문자 이름.

기존 개체를 나타내지 않는 OID가 위 함수 중 하나에 인수로 전달되면 NULL은 돌아왔습니다.

다음에 표시된 기능테이블 9-65특정 디스크 파일 식별에 도움 데이터베이스 개체와 연결되어 있습니다.

표 9-65. 데이터베이스 개체 위치 기능

이름 반환 유형 설명
pg_relation_filenode(관계 regclass) oid 지정된 관계의 파일 노드 번호
pg_relation_filepath(관계 regclass) 텍스트 지정된 관계의 파일 경로 이름

pg_relation_filenode수락 테이블, 인덱스, 시퀀스 또는 토스트 테이블의 OID 또는 이름, 그리고 다음을 반환합니다."파일노드"번호 현재 할당되어 있습니다. 파일 노드는 기본 구성 요소입니다. 관계에 사용된 파일 이름(들)(참조섹션 56.1더 보기 정보). 대부분의 테이블에서 결과는 다음과 같습니다.pg_class.relfilenode, 그러나 특정 시스템 카탈로그의 경우relfilenode은 0이고 이것은 올바른 값을 얻으려면 함수를 사용해야 합니다. 기능 저장 공간이 없는 관계가 전달되면 NULL을 반환합니다. 보기와 같은 것입니다.

pg_relation_filepath이다 와 유사pg_relation_filenode, 하지만 전체 파일 경로 이름을 반환합니다( 데이터베이스 클러스터의 데이터 디렉터리PGDATA) 관계의.

9.26.7. 일반 파일 액세스 기능

다음에 표시된 기능테이블 9-66호스팅 시스템의 파일에 대한 기본 액세스 제공 서버. 데이터베이스 클러스터 디렉터리 내의 파일만 그리고log_directory액세스할 수 있습니다. 클러스터 디렉터리에 있는 파일의 상대 경로를 사용하고 와 일치하는 경로log_directory로그 파일 구성 설정. 이러한 토토 사이트 추천의 사용은 슈퍼유저로 제한됩니다.

표 9-66. 일반 파일 액세스 토토 사이트 추천

이름 반환 유형 설명
pg_ls_dir(dirname 텍스트) 텍스트 집합 디렉토리의 내용 나열
pg_read_file(파일 이름 텍스트 [, 오프셋 비긴트, 길이 비긴트]) 텍스트 텍스트 파일의 내용을 반환
pg_read_binary_file(파일 이름 텍스트 [, 오프셋 비긴트, 길이 비긴트]) 바이테아 파일 내용 반환
pg_stat_file(파일 이름 텍스트) 기록 파일에 대한 정보 반환

pg_ls_dir다음을 모두 반환합니다. 특수 항목을 제외한 지정된 디렉토리의 이름"."그리고"..".

pg_read_file의 일부를 반환합니다. 주어진 위치에서 시작하는 텍스트 파일오프셋, 최대 반환길이바이트(파일 끝이 다음인 경우 더 적음) 먼저 도달했습니다). 만일오프셋입니다 음수이면 파일 끝을 기준으로 합니다. 만일오프셋그리고길이생략되면 전체 파일이 반환됩니다. 읽은 바이트 파일은 서버 인코딩에서 문자열로 해석됩니다. 안 해당 인코딩에서 유효하지 않으면 오류가 발생합니다.

pg_read_binary_file비슷합니다 에pg_read_file, 단, 결과는바이테아값; 따라서 아니오 인코딩 검사가 수행됩니다. 와 결합하여convert_from함수, 이 함수를 사용하여 지정된 위치의 파일을 읽을 수 있습니다. 인코딩:

SELECT Convert_from(pg_read_binary_file('file_in_utf8.txt'), 'UTF8');

pg_stat_file기록을 반환합니다. 파일 크기, 마지막으로 액세스한 타임스탬프, 마지막 수정된 타임스탬프, 마지막 파일 상태 변경 타임스탬프(Unix 플랫폼만 해당), 파일 생성 타임스탬프(Windows만 해당) 및 a부울디렉토리인지 여부를 나타냅니다. 일반적인 사용법은 다음과 같습니다:

SELECT * FROM pg_stat_file('파일 이름');
SELECT (pg_stat_file('파일 이름')).수정;

9.26.8. 권고 잠금 기능

다음에 표시된 기능테이블 9-67권고 잠금을 관리합니다. 올바른 사용에 대한 자세한 내용은 이 기능은 참조섹션 13.3.4.

표 9-67. 권고 잠금 토토 사이트 추천

이름 반환 유형 설명
pg_advisory_lock( 비긴트) 무효 독점 세션 수준 권고 잠금 획득
pg_advisory_lock(키1 int, 키2 int) 무효 독점 세션 수준 자문 잠금 획득
pg_advisory_lock_shared( 비긴트) 무효 공유 세션 수준 권고 잠금 획득
pg_advisory_lock_shared(키1 int, 키2 int) 무효 공유 세션 수준 권고 잠금 획득
pg_advisory_unlock( 비긴트) 부울 독점 세션 수준 권고 릴리스 자물쇠
pg_advisory_unlock(키1 int, 키2 int) 부울 독점 세션 수준 권고 릴리스 자물쇠
pg_advisory_unlock_all() 무효 다음이 보유한 모든 세션 수준 권고 잠금을 해제합니다. 현재 세션
pg_advisory_unlock_shared( 비긴트) 부울 공유 세션 수준 권고 잠금 해제
pg_advisory_unlock_shared(키1 int, 키2 int) 부울 공유 세션 수준 권고 잠금 해제
pg_advisory_xact_lock( 비긴트) 무효 독점적인 거래 수준 자문 획득 자물쇠
pg_advisory_xact_lock(키1 int, 키2 int) 무효 독점 거래 수준 자문 획득 자물쇠
pg_advisory_xact_lock_shared( 비긴트) 무효 공유 트랜잭션 수준 자문 잠금 획득
pg_advisory_xact_lock_shared(키1 int, 키2 int) 무효 공유 트랜잭션 수준 자문 잠금 획득
pg_try_advisory_lock( 비긴트) 부울 다음의 경우 독점 세션 수준 권고 잠금을 얻습니다. 사용 가능
pg_try_advisory_lock(키1 int, 키2 int) 부울 다음의 경우 독점 세션 수준 권고 잠금을 얻습니다. 사용 가능
pg_try_advisory_lock_shared( 비긴트) 부울 다음의 경우 공유 세션 수준 권고 잠금을 얻습니다. 사용 가능
pg_try_advisory_lock_shared(키1 int, 키2 int) 부울 다음의 경우 공유 세션 수준 권고 잠금을 얻습니다. 사용 가능
pg_try_advisory_xact_lock( 비긴트) 부울 다음의 경우 독점 거래 수준 권고 잠금을 얻습니다. 사용 가능
pg_try_advisory_xact_lock(키1 int, 키2 int) 부울 다음의 경우 독점 거래 수준 권고 잠금을 얻습니다. 사용 가능
pg_try_advisory_xact_lock_shared( 비긴트) 부울 다음의 경우 공유 트랜잭션 수준 권고 잠금을 얻습니다. 사용 가능
pg_try_advisory_xact_lock_shared(키1 int, 키2 int) 부울 다음 경우에 공유 트랜잭션 수준 권고 잠금을 얻습니다. 사용 가능

pg_advisory_lock잠금 다음 중 하나로 식별할 수 있는 애플리케이션 정의 리소스 단일 64비트 키 값 또는 두 개의 32비트 키 값(참고: 이 두 키 공간은 겹치지 않습니다). 다른 세션의 경우 이미 동일한 리소스 식별자에 대한 잠금을 보유하고 있습니다. 함수는 리소스를 사용할 수 있을 때까지 기다립니다. 는 잠금은 독점적입니다. 여러 잠금 요청이 스택되므로 동일한 리소스가 세 번 잠겨 있으면 잠금을 해제해야 합니다. 다른 세션에서 사용할 수 있도록 세 번 공개됩니다.

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할 것이다 현재 보유하고 있는 모든 세션 수준 권고 잠금을 해제합니다. 세션. (이 함수는 세션 종료 시 암시적으로 호출됩니다. 클라이언트가 비정상적으로 연결이 끊어진 경우에도 마찬가지입니다.)

pg_advisory_xact_lock작동 와 동일pg_advisory_lock, 단, 잠금은 종료 시 자동으로 해제됩니다. 현재 거래이며 명시적으로 해제될 수 없습니다.

pg_advisory_xact_lock_shared다음과 동일하게 작동합니다pg_advisory_lock_shared, 잠금 장치는 제외 현재 거래가 끝나면 자동으로 해제됩니다. 명시적으로 해제할 수 없습니다.

pg_try_advisory_xact_lock다음과 동일하게 작동합니다pg_try_advisory_lock, 잠금 제외, if 획득한 현재 종료 시 자동으로 해제됩니다. 거래이며 명시적으로 해제될 수 없습니다.

pg_try_advisory_xact_lock_shared작동합니다 와 동일pg_try_advisory_lock_shared, 자물쇠 제외, 획득한 경우 종료 시 자동으로 해제됩니다. 현재 거래이며 명시적으로 해제될 수 없습니다.