이 섹션에 설명된 배트맨 토토은 다음을 제어하고 모니터링하는 데 사용됩니다.포스트그레SQL설치.
  
    
    표 9.87런타임 구성 매개변수를 쿼리하고 변경하는 데 사용할 수 있는 함수를 표시합니다.
    
      표 9.87. 구성 설정 배트맨 토토
      
        
          
            
          
          
            
              | 
                 배트맨 토토 
                설명 
                예 
               | 
            
          
          
            
              | 
                  현재_설정 ( 설정_이름 텍스트 [, missing_ok 부울 ] ) → 텍스트 
                설정의 현재 값을 반환합니다.설정_이름. 해당 설정이 없는 경우,현재_설정다음이 아니면 오류가 발생합니다.missing_ok제공되며사실(이 경우 NULL이 반환됨). 이 함수는 다음과 같습니다.SQL명령표시. 
                현재_설정('날짜 스타일') → ISO, MDY 
               | 
            
            
              | 
                  set_config ( 설정_이름 텍스트, new_value 텍스트, is_local 부울 ) → 텍스트 
                매개변수를 설정합니다설정_이름에new_value, 해당 값을 반환합니다. 만약에is_local이다참, 새 값은 현재 트랜잭션 중에만 적용됩니다. 현재 세션의 나머지 부분에 새 값을 적용하려면 다음을 사용하세요.거짓대신. 이 함수는 SQL 명령에 해당합니다.SET. 
                set_config('log_statement_stats', 'off', false) → 꺼짐 
               | 
            
          
        
       
     
   
  
    
    다음에 표시된 배트맨 토토표 9.88다른 서버 프로세스에 제어 신호를 보냅니다. 이러한 배트맨 토토의 사용은 기본적으로 수퍼유저로 제한되어 있지만 다음을 사용하여 다른 사람에게도 액세스 권한을 부여할 수 있습니다.그랜트, 명시된 예외가 있음.
    이러한 각 함수는 다음을 반환합니다.참신호가 성공적으로 전송된 경우거짓신호 전송이 실패한 경우.
    
      표 9.88. 서버 신호 배트맨 토토
      
        
          
            
          
          
            
              | 
                 배트맨 토토 
                설명 
               | 
            
          
          
            
              | 
                  pg_cancel_backend ( pid 정수 ) → 부울 
                백엔드 프로세스가 지정된 프로세스 ID를 가지고 있는 세션의 현재 쿼리를 취소합니다. 이는 호출 역할이 백엔드가 취소되는 역할의 구성원이거나 호출 역할에 다음 권한이 있는 경우에도 허용됩니다.pg_signal_backend그러나 슈퍼유저만 슈퍼유저 백엔드를 취소할 수 있습니다. 
               | 
            
            
              | 
                  pg_log_backend_memory_contexts ( pid 정수 ) → 부울 
                지정된 프로세스 ID를 사용하여 백엔드의 메모리 컨텍스트를 기록하도록 요청합니다. 이 배트맨 토토은 로거를 제외한 백엔드 및 보조 프로세스에 요청을 보낼 수 있습니다. 이러한 메모리 컨텍스트는 다음 위치에 기록됩니다.로그메시지 수준. 로그 구성 세트에 따라 서버 로그에 표시됩니다(참조토토 캔 PostgreSQL : 문서 : 15 : 20.8. 오류보고 및 로깅자세한 내용은), 다음과 관계없이 클라이언트로 전송되지 않습니다.client_min_messages. 
               | 
            
            
              | 
                  pg_reload_conf () → 부울 
                다음의 모든 프로세스를 유발합니다.PostgreSQL서버가 구성 파일을 다시 로드합니다. (이것은 다음을 전송하여 시작됩니다.SIGHUP포스트마스터 프로세스에 신호를 보내고, 그 결과 전송됩니다.SIGHUP각 하위 항목에 적용됩니다.) 다음을 사용할 수 있습니다.pg_file_settings, pg_hba_file_rules및pg_ident_file_mappings다시 로드하기 전에 구성 파일에서 가능한 오류를 확인하는 보기입니다. 
               | 
            
            
              | 
                  pg_rotate_logfile () → 부울 
                로그 파일 관리자에게 즉시 새 출력 파일로 전환하라는 신호를 보냅니다. 이는 내장 로그 수집기가 실행 중일 때만 작동합니다. 그렇지 않으면 로그 파일 관리자 하위 프로세스가 없기 때문입니다. 
               | 
            
            
              | 
                  pg_terminate_backend ( pid 정수, 시간 초과 비긴트 기본값 0 ) → 부울 
                백엔드 프로세스가 지정된 프로세스 ID를 가진 세션을 종료합니다. 이는 호출 역할이 백엔드가 종료되는 역할의 구성원이거나 호출 역할에 다음 권한이 있는 경우에도 허용됩니다.pg_signal_backend그러나 슈퍼유저만 슈퍼유저 백엔드를 종료할 수 있습니다. 
                만약시간 초과이 지정되지 않았거나 0이면 이 함수는 다음을 반환합니다.참프로세스가 실제로 종료되는지 여부, 신호 전송이 성공했다는 것만 나타냅니다. 만약시간 초과이 지정되고(밀리초 단위) 0보다 큰 경우, 함수는 프로세스가 실제로 종료되거나 지정된 시간이 경과할 때까지 기다립니다. 프로세스가 종료되면 함수는 다음을 반환합니다.참. 시간 초과 시 경고가 발생하고거짓반환되었습니다. 
               | 
            
          
        
       
     
    pg_cancel_backend그리고pg_terminate_backend신호 보내기 (SIGINT또는SIGTERM각각)을 프로세스 ID로 식별된 백엔드 프로세스에 추가합니다. 활성 백엔드의 프로세스 ID는 다음에서 찾을 수 있습니다.pid열pg_stat_activity보기 또는 목록을 통해포스트그레스서버의 프로세스(사용psUnix 또는작업 관리자켜짐윈도우). 활성 백엔드의 역할은 다음에서 찾을 수 있습니다.사용자 이름열pg_stat_activity보기.
    pg_log_backend_memory_contexts백엔드 프로세스의 메모리 컨텍스트를 기록하는 데 사용할 수 있습니다. 예를 들어:
    postgres=# SELECT pg_log_backend_memory_contexts(pg_backend_pid());
 pg_log_backend_memory_contexts
--------------------------------
 티
(1행)
    각 메모리 컨텍스트에 대해 하나의 메시지가 기록됩니다. 예를 들어:
    LOG: PID 10377의 메모리 컨텍스트 로깅
명령문: SELECT pg_log_backend_memory_contexts(pg_backend_pid());
로그: 레벨: 0; TopMemoryContext: 6개 블록에 총 80800개; 14432 무료(5개 청크); 66368 사용됨
로그: 레벨: 1; pgstat TabStatusArray 조회 해시 테이블: 1블록에 총 8192개; 1408 무료(청크 0개); 6784 사용됨
로그: 레벨: 1; TopTransactionContext: 1블록에 총 8192개; 7720 무료(1 청크); 472 사용됨
로그: 레벨: 1; RowDescriptionContext: 1블록에 총 8192개; 6880 무료(청크 0개); 1312 사용됨
로그: 레벨: 1; MessageContext: 2개 블록에 총 16384개; 5152 무료(0 청크); 11232 사용됨
로그: 레벨: 1; 오퍼레이터 클래스 캐시: 1블록에 총 8192개; 512 무료(청크 0개); 7680 사용됨
로그: 레벨: 1; smgr 관계 테이블: 2개 블록에 총 16384개; 4544 무료(3개 청크); 11840 사용됨
로그: 레벨: 1; TransactionAbortContext: 1블록에 총 32768개; 32504 무료(0 청크); 264 사용됨
...
로그: 레벨: 1; ErrorContext: 1블록에 총 8192개; 7928 무료(3개 청크); 264 사용됨
로그: 총계: 201개 블록에 1651920바이트; 622360 무료(88개 청크); 1029560 사용됨
    동일한 상위 아래에 100개 이상의 하위 컨텍스트가 있는 경우 처음 100개의 하위 컨텍스트가 나머지 컨텍스트의 요약과 함께 기록됩니다. 이 함수를 자주 호출하면 많은 수의 로그 메시지가 생성될 수 있으므로 상당한 오버헤드가 발생할 수 있습니다.
   
  
    
    다음에 표시된 배트맨 토토표 9.89온라인 백업을 돕습니다. 복구 중에는 이러한 배트맨 토토을 실행할 수 없습니다(예외pg_backup_start, pg_backup_stop및pg_wal_lsn_diff).
    이 배트맨 토토의 올바른 사용법에 대한 자세한 내용은 다음을 참조하세요.토토 사이트 PostgreSQL : 문서 : 15 : 26.3. 연속 보관 및 시점 복구 (PITR).
    
      표 9.89. 백업 제어 배트맨 토토
      
        
          
            
          
          
            
              | 
                 배트맨 토토 
                설명 
               | 
            
          
          
            
              | 
                  pg_create_restore_point ( 이름 텍스트 ) → pg_lsn 
                나중에 복구 대상으로 사용할 수 있는 미리 쓰기 로그에 명명된 마커 레코드를 생성하고 해당 미리 쓰기 로그 위치를 반환합니다. 그런 다음 주어진 이름을 다음과 함께 사용할 수 있습니다.복구_대상_이름복구가 진행될 지점을 지정합니다. 이름이 복구 대상과 일치하는 첫 번째 지점에서 복구가 중지되므로 동일한 이름으로 여러 복원 지점을 생성하지 마십시오. 
                이 배트맨 토토은 기본적으로 슈퍼유저로 제한되어 있지만 다른 사용자에게 EXECUTE 권한을 부여하여 배트맨 토토을 실행할 수 있습니다. 
               | 
            
            
              | 
                  pg_current_wal_flush_lsn () → pg_lsn 
                현재 미리 쓰기 로그 플러시 위치를 반환합니다(아래 참고 참조). 
               | 
            
            
              | 
                  pg_current_wal_insert_lsn () → pg_lsn 
                현재 미리 쓰기 로그 삽입 위치를 반환합니다(아래 참고 참조). 
               | 
            
            
              | 
                  pg_current_wal_lsn () → pg_lsn 
                현재 미리 쓰기 로그 쓰기 위치를 반환합니다(아래 참고 참조). 
               | 
            
            
              | 
                  pg_backup_start ( 라벨 텍스트 [, 빠르게 부울 ] ) → pg_lsn 
                온라인 백업을 시작하기 위해 서버를 준비합니다. 유일한 필수 매개변수는 백업에 대한 임의의 사용자 정의 레이블입니다. (일반적으로 이는 백업 덤프 파일이 저장될 이름입니다.) 선택적 두 번째 매개변수가 다음과 같이 제공되는 경우참, 실행을 지정합니다.pg_backup_start가능한 한 빨리. 이로 인해 I/O 작업이 급증하고 동시에 실행되는 쿼리가 느려지는 즉시 체크포인트가 강제 실행됩니다. 
                이 배트맨 토토은 기본적으로 슈퍼유저로 제한되어 있지만 다른 사용자에게 EXECUTE 권한을 부여하여 배트맨 토토을 실행할 수 있습니다. 
               | 
            
            
              | 
                  pg_backup_stop ( [wait_for_archive 부울 ] ) → 기록 ( lsn pg_lsn, 라벨파일 텍스트, spcmap파일 텍스트 ) 
                온라인 백업 수행을 완료합니다. 백업 레이블 파일과 테이블스페이스 맵 파일의 원하는 내용이 함수 결과의 일부로 반환되므로 백업 영역의 파일에 기록해야 합니다. 이러한 파일은 라이브 데이터 디렉터리에 기록되어서는 안 됩니다. 그렇게 하면 충돌 발생 시 PostgreSQL이 다시 시작되지 않습니다. 
                유형의 선택적 매개변수가 있습니다.부울. false인 경우 WAL이 보관될 때까지 기다리지 않고 백업이 완료된 후 즉시 함수가 반환됩니다. 이 동작은 WAL 보관을 독립적으로 모니터링하는 백업 소프트웨어에만 유용합니다. 그렇지 않으면 백업 일관성을 유지하는 데 필요한 WAL이 누락되어 백업이 쓸모 없게 될 수 있습니다. 기본적으로 또는 이 매개변수가 true인 경우,pg_backup_stop아카이브가 활성화되면 WAL이 아카이브될 때까지 기다립니다. (대기 상태에서는 다음 경우에만 대기한다는 의미입니다.archive_mode = 항상. 기본에 대한 쓰기 활동이 낮은 경우 다음을 실행하는 것이 유용할 수 있습니다.pg_switch_wal즉시 세그먼트 전환을 트리거하기 위해 기본에서.) 
                기본에서 실행될 때 이 함수는 미리 쓰기 로그 아카이브 영역에 백업 기록 파일도 생성합니다. 기록 파일에는 다음과 같은 레이블이 포함됩니다.pg_backup_start, 백업의 미리 쓰기 시작 및 종료 로그 위치, 백업의 시작 및 종료 시간. 종료 위치를 기록한 후 현재 미리 쓰기 로그 삽입 지점이 자동으로 다음 미리 쓰기 로그 파일로 진행되므로 종료 미리 쓰기 로그 파일을 즉시 보관하여 백업을 완료할 수 있습니다. 
                함수 결과는 단일 레코드입니다. 그만큼lsn열은 백업의 종료 미리 쓰기 로그 위치를 보유합니다(다시 무시할 수 있음). 두 번째 열은 백업 레이블 파일의 내용을 반환하고, 세 번째 열은 테이블스페이스 맵 파일의 내용을 반환합니다. 이는 백업의 일부로 저장되어야 하며 복원 프로세스의 일부로 필요합니다. 
                이 배트맨 토토은 기본적으로 슈퍼유저로 제한되어 있지만 다른 사용자에게 EXECUTE 권한을 부여하여 배트맨 토토을 실행할 수 있습니다. 
               | 
            
            
              | 
                  pg_switch_wal () → pg_lsn 
                서버가 새로운 미리 쓰기 로그 파일로 전환하도록 강제하여 현재 파일을 보관할 수 있도록 합니다(연속 보관을 사용한다고 가정). 결과는 종료된 미리 쓰기 로그 위치에 방금 완료된 미리 쓰기 로그 파일 내 1을 더한 값입니다. 마지막 미리 쓰기 로그 전환 이후 미리 쓰기 로그 활동이 없는 경우,pg_switch_wal아무 것도 하지 않고 현재 사용 중인 미리 쓰기 로그 파일의 시작 위치를 반환합니다. 
                이 배트맨 토토은 기본적으로 슈퍼유저로 제한되어 있지만 다른 사용자에게 EXECUTE 권한을 부여하여 이 배트맨 토토을 실행할 수 있습니다. 
               | 
            
            
              | 
                  pg_walfile_name ( lsn pg_lsn ) → 텍스트 
                미리 쓰기 로그 위치를 해당 위치를 보유한 WAL 파일의 이름으로 변환합니다. 
               | 
            
            
              | 
                  pg_walfile_name_offset ( lsn pg_lsn ) → 기록 ( 파일_이름 텍스트, file_offset 정수 ) 
                미리 쓰기 로그 위치를 WAL 파일 이름 및 해당 파일 내의 바이트 오프셋으로 변환합니다. 
               | 
            
            
              | 
                  pg_wal_lsn_diff ( lsn1 pg_lsn, lsn2 pg_lsn ) → 숫자 
                바이트 단위의 차이를 계산합니다(lsn1 - lsn2) 두 개의 미리 쓰기 로그 위치 사이에 있습니다. 이것은 다음과 함께 사용할 수 있습니다.pg_stat_replication또는 다음에 표시된 일부 배트맨 토토표 9.89복제 지연을 가져옵니다. 
               | 
            
          
        
       
     
    pg_current_wal_lsn현재 미리 쓰기 로그 쓰기 위치를 위 함수에서 사용하는 것과 동일한 형식으로 표시합니다. 비슷하게,pg_current_wal_insert_lsn현재 미리 쓰기 로그 삽입 위치를 표시하고pg_current_wal_flush_lsn현재 미리 쓰기 로그 플러시 위치를 표시합니다. 삽입 위치는“논리적”미리 쓰기 로그는 언제든지 종료됩니다. 쓰기 위치는 서버의 내부 버퍼에서 실제로 쓰여진 내용의 끝이고 플러시 위치는 내구성 있는 저장소에 기록된 것으로 알려진 마지막 위치입니다. 쓰기 위치는 서버 외부에서 검사할 수 있는 위치의 끝이며 부분적으로 완료된 미리 쓰기 로그 파일을 보관하려는 경우 일반적으로 원하는 위치입니다. 삽입 및 플러시 위치는 주로 서버 디버깅 목적으로 사용할 수 있습니다. 이는 모두 읽기 전용 작업이며 슈퍼유저 권한이 필요하지 않습니다.
    당신은 사용할 수 있습니다pg_walfile_name_offseta에서 해당 미리 쓰기 로그 파일 이름과 바이트 오프셋을 추출합니다.pg_lsn값. 예를 들어:
    postgres=# SELECT * FROM pg_walfile_name_offset((pg_backup_stop()).lsn);
        파일이름 | 파일_오프셋
-------------+---------------
 00000001000000000000000D |     4039624
(1행)
    마찬가지로,pg_walfile_name미리 쓰기 로그 파일 이름만 추출합니다. 지정된 미리 쓰기 로그 위치가 정확히 미리 쓰기 로그 파일 경계에 있는 경우 두 함수 모두 이전 미리 쓰기 로그 파일의 이름을 반환합니다. 이는 일반적으로 미리 쓰기 로그 보관 동작을 관리하기 위해 바람직한 동작입니다. 이전 파일이 현재 보관해야 하는 마지막 파일이기 때문입니다.
   
  
    
    다음에 표시된 배트맨 토토표 9.90대기 서버의 현재 상태에 대한 정보를 제공합니다. 이러한 배트맨 토토은 복구 중 및 정상 실행 중 모두 실행될 수 있습니다.
    
      표 9.90. 복구 정보 배트맨 토토
      
        
          
            
          
          
            
              | 
                 배트맨 토토 
                설명 
               | 
            
          
          
            
              | 
                  pg_is_in_recovery () → 부울 
                복구가 아직 진행 중이면 참을 반환합니다. 
               | 
            
            
              | 
                  pg_last_wal_receive_lsn () → pg_lsn 
                스트리밍 복제를 통해 수신되어 디스크에 동기화된 마지막 미리 쓰기 로그 위치를 반환합니다. 스트리밍 복제가 진행되는 동안 이는 단조롭게 증가합니다. 복구가 완료되면 이는 수신된 마지막 WAL 레코드 위치에 정적으로 유지되고 복구 중에 디스크에 동기화됩니다. 스트리밍 복제가 비활성화되었거나 아직 시작되지 않은 경우 함수는 다음을 반환합니다.NULL. 
               | 
            
            
              | 
                  pg_last_wal_replay_lsn () → pg_lsn 
                복구 중 재생된 마지막 미리 쓰기 로그 위치를 반환합니다. 복구가 아직 진행 중인 경우 이는 단조롭게 증가합니다. 복구가 완료되면 복구 중에 적용된 마지막 WAL 레코드 위치에 정적으로 유지됩니다. 복구하지 않고 서버가 정상적으로 시작되면 함수가 반환됩니다.NULL. 
               | 
            
            
              | 
                  pg_last_xact_replay_timestamp () → 시간대가 포함된 타임스탬프 
                복구 중 재생된 마지막 트랜잭션의 타임스탬프를 반환합니다. 해당 트랜잭션에 대한 커밋 또는 중단 WAL 레코드가 기본에서 생성된 시간입니다. 복구 중에 트랜잭션이 재생되지 않은 경우 함수는 다음을 반환합니다.NULL. 그렇지 않고 복구가 계속 진행 중인 경우 이는 단조롭게 증가합니다. 복구가 완료되면 복구 중에 마지막 트랜잭션이 적용된 시점에 정적인 상태로 유지됩니다. 복구하지 않고 서버가 정상적으로 시작되면 함수가 반환됩니다.NULL. 
               | 
            
            
              | 
                  pg_get_wal_resource_managers () → 레코드 집합 ( rm_id 정수, rm_name 텍스트, rm_buildin 부울 ) 
                시스템에 현재 로드된 WAL 리소스 관리자를 반환합니다. 칼럼rm_buildin내장 리소스 관리자인지 아니면 확장 프로그램에 의해 로드된 사용자 정의 리소스 관리자인지를 나타냅니다. 
               | 
            
          
        
       
     
    다음에 표시된 배트맨 토토표 9.91복구 진행 상황을 제어합니다. 이 배트맨 토토은 복구 중에만 실행될 수 있습니다.
    
      표 9.91. 복구 제어 배트맨 토토
      
        
          
            
          
          
            
              | 
                 배트맨 토토 
                설명 
               | 
            
          
          
            
              | 
                  pg_is_wal_replay_paused () → 부울 
                복구 일시 중지가 요청되면 참을 반환합니다. 
               | 
            
            
              | 
                  pg_get_wal_replay_pause_state () → 텍스트 
                복구 일시중지 상태를 반환합니다. 반환 값은 다음과 같습니다.일시중지되지 않음일시 중지가 요청되지 않은 경우,일시중지 요청됨일시 중지가 요청되었지만 복구가 아직 일시 중지되지 않은 경우 및일시중지됨복구가 실제로 일시 중지된 경우. 
               | 
            
            
              | 
                  pg_promote ( 잠깐만요 부울 기본값 참, wait_seconds 정수 기본값 60 ) → 부울 
                대기 서버를 기본 상태로 승격합니다. 와 함께잠깐만요다음으로 설정됨참(기본값), 함수는 승격이 완료될 때까지 기다립니다. 또는wait_seconds초가 지나서 돌아옵니다참승격이 성공하고거짓그렇지 않으면. 만약에잠깐만요다음으로 설정됨거짓, 함수가 반환됨참a를 보낸 직후SIGUSR1우체국장에게 승격을 요청하는 신호를 보냅니다. 
                이 배트맨 토토은 기본적으로 슈퍼유저로 제한되어 있지만 다른 사용자에게 EXECUTE 권한을 부여하여 배트맨 토토을 실행할 수 있습니다. 
               | 
            
            
              | 
                  pg_wal_replay_pause () → 무효 
                복구 일시 중지를 요청합니다. 요청이 있다고 해서 복구가 즉시 중지되는 것은 아닙니다. 복구가 실제로 일시 중지되었음을 보장하려면 다음에서 반환된 복구 일시 중지 상태를 확인해야 합니다.pg_get_wal_replay_pause_state(). 참고하세요pg_is_wal_replay_paused()요청이 이루어졌는지 여부를 반환합니다. 복구가 일시 중지되는 동안에는 더 이상 데이터베이스 변경 사항이 적용되지 않습니다. 상시 대기가 활성화된 경우 모든 새 쿼리에는 데이터베이스의 동일하고 일관된 스냅샷이 표시되며 복구가 재개될 때까지 더 이상 쿼리 충돌이 생성되지 않습니다. 
                이 배트맨 토토은 기본적으로 슈퍼유저로 제한되어 있지만 다른 사용자에게 EXECUTE 권한을 부여하여 배트맨 토토을 실행할 수 있습니다. 
               | 
            
            
              | 
                  pg_wal_replay_resume () → 무효 
                일시중지된 경우 복구를 다시 시작합니다. 
                이 배트맨 토토은 기본적으로 슈퍼유저로 제한되어 있지만 다른 사용자에게 EXECUTE 권한을 부여하여 배트맨 토토을 실행할 수 있습니다. 
               | 
            
          
        
       
     
    pg_wal_replay_pause그리고pg_wal_replay_resume프로모션이 진행되는 동안에는 실행할 수 없습니다. 복구가 일시중지된 동안 프로모션이 트리거되면 일시중지된 상태가 종료되고 프로모션이 계속됩니다.
    스트리밍 복제가 비활성화된 경우 일시 중지된 상태는 문제 없이 무기한 지속될 수 있습니다. 스트리밍 복제가 진행 중인 경우 WAL 레코드는 계속 수신되며, 이는 일시 중지 기간, WAL 생성 속도 및 사용 가능한 디스크 공간에 따라 결국 사용 가능한 디스크 공간을 채울 것입니다.
   
  
    
    PostgreSQL데이터베이스 세션이 스냅샷을 동기화할 수 있도록 허용합니다. 에이스냅샷스냅샷을 사용하는 트랜잭션에 표시되는 데이터를 결정합니다. 두 개 이상의 세션이 데이터베이스에서 동일한 콘텐츠를 확인해야 하는 경우 동기화된 스냅샷이 필요합니다. 두 세션이 독립적으로 트랜잭션을 시작하는 경우 두 세션 실행 사이에 세 번째 트랜잭션이 커밋될 가능성이 항상 있습니다.거래 시작한 세션에서는 해당 트랜잭션의 효과를 볼 수 있고 다른 세션에서는 볼 수 없도록 명령합니다.
    이 문제를 해결하려면,PostgreSQL거래를 허용합니다내보내기사용 중인 스냅샷입니다. 수출 거래가 열려 있는 한 다른 거래도 가능합니다.가져오기스냅샷을 볼 수 있으며 이를 통해 첫 번째 트랜잭션이 보는 것과 정확히 동일한 데이터베이스 뷰를 볼 수 있음이 보장됩니다. 그러나 커밋되지 않은 트랜잭션에 의해 수행된 변경 사항과 마찬가지로 이러한 트랜잭션 중 하나에 의해 수행된 데이터베이스 변경 사항은 다른 트랜잭션에 표시되지 않습니다. 따라서 트랜잭션은 기존 데이터와 관련하여 동기화되지만 자체 변경 사항에 대해서는 정상적으로 작동합니다.
    스냅샷은 다음을 사용하여 내보내집니다.pg_export_snapshot함수, 다음에 표시됨표 9.92, 다음으로 가져옴거래 설정명령.
    
      표 9.92. 스냅샷 동기화 배트맨 토토
      
        
          
            
          
          
            
              | 
                 배트맨 토토 
                설명 
               | 
            
          
          
            
              | 
                  pg_export_snapshot () → 텍스트 
                트랜잭션의 현재 스냅샷을 저장하고 다음을 반환합니다.텍스트스냅샷을 식별하는 문자열입니다. 이 문자열은 스냅샷을 가져오려는 클라이언트에 데이터베이스 외부로 전달되어야 합니다. 스냅샷은 이를 내보낸 트랜잭션이 종료될 때까지만 가져올 수 있습니다. 
                트랜잭션은 필요한 경우 둘 이상의 스냅샷을 내보낼 수 있습니다. 그렇게 하는 것은 다음 경우에만 유용합니다.읽어 커밋됨거래, 이후반복 가능한 읽기및 더 높은 격리 수준에서는 트랜잭션이 전체 수명 동안 동일한 스냅샷을 사용합니다. 트랜잭션이 스냅샷을 내보낸 후에는 준비할 수 없습니다.거래 준비. 
               | 
            
          
        
       
     
   
  
    
    다음에 표시된 배트맨 토토표 9.93복제 배트맨 토토을 제어하고 상호작용하는 데 사용됩니다. 보다섹션 27.2.5, 섹션 27.2.6및43토토 사이트30기본 배트맨 토토에 대한 정보를 확인하세요. 복제 원본에 대한 배트맨 토토 사용은 기본적으로 슈퍼유저에게만 허용되지만, 다른 사용자에게는를 사용하여 허용할 수도 있습니다.부여명령. 복제 슬롯에 대한 배트맨 토토 사용은 슈퍼유저와 사용자로 제한됩니다.복제특권.
    이러한 배트맨 토토 중 다수는 복제 프로토콜에 동일한 명령을 가지고 있습니다. 보다PostgreSQL : 문서 : 15 : 55.4. 사설 토토 사이트 복제 프로토콜.
    다음에 설명된 배트맨 토토섹션 9.27.3, 섹션 9.27.4및섹션 9.27.5복제에도 관련이 있습니다.
    
      표 9.93. 복제 관리 배트맨 토토
      
        
          
            
          
          
            
              | 
                 배트맨 토토 
                설명 
               | 
            
          
          
            
              | 
                  pg_create_physical_replication_slot ( slot_name 이름 [, immediately_reserve 부울, 임시 부울 ] ) → 기록 ( slot_name 이름, lsn pg_lsn ) 
                이름이 새로운 물리적 복제 슬롯을 생성합니다.slot_name. 선택적인 두 번째 매개변수인 경우,참, 다음을 지정합니다.LSN이 복제 슬롯은 즉시 예약되어야 합니다. 그렇지 않으면LSN은 스트리밍 복제 클라이언트의 첫 번째 연결 시 예약되어 있습니다. 물리적 슬롯의 변경 사항 스트리밍은 스트리밍 복제 프로토콜을 통해서만 가능합니다. — 참조PostgreSQL : 문서 : 15 : 55.4. 사설 토토 사이트 복제 프로토콜. 선택적인 세 번째 매개변수,임시는 true로 설정된 경우 슬롯이 디스크에 영구적으로 저장되지 않고 현재 세션에서만 사용되도록 지정됩니다. 오류 발생 시 임시 슬롯도 해제됩니다. 이 배트맨 토토은 복제 프로토콜 명령에 해당합니다.CREATE_REPLICATION_SLOT ... 물리적. 
               | 
            
            
              | 
                  pg_drop_replication_slot ( slot_name 이름 ) → 무효 
                이름이 지정된 물리적 또는 논리적 복제 슬롯을 삭제합니다.slot_name. 복제 프로토콜 명령과 동일DROP_REPLICATION_SLOT. 
               | 
            
            
              | 
                  pg_create_logical_replication_slot ( 슬롯_이름 이름, 플러그인 이름 [, 임시 부울, 2단계 부울 ] ) → 기록 ( slot_name 이름, lsn pg_lsn ) 
                이름이 새로운 논리적(디코딩) 복제 슬롯을 생성합니다.slot_name출력 플러그인 사용플러그인. 선택적인 세 번째 매개변수,임시은 true로 설정된 경우 슬롯이 디스크에 영구적으로 저장되어서는 안 되며 현재 세션에서만 사용하도록 지정됩니다. 오류 발생 시 임시 슬롯도 해제됩니다. 선택적인 네 번째 매개변수인2단계가 true로 설정된 경우 이 슬롯에 대해 준비된 트랜잭션의 디코딩이 활성화되도록 지정합니다. 이 함수에 대한 호출은 복제 프로토콜 명령과 동일한 효과를 갖습니다.CREATE_REPLICATION_SLOT ... 논리. 
               | 
            
            
              | 
                  pg_copy_physical_replication_slot ( src_slot_name 이름, dst_slot_name 이름 [, 임시 부울 ] ) → 기록 ( 슬롯_이름 이름, lsn pg_lsn ) 
                이름이 기존 물리적 복제 슬롯 복사src_slot_name이름이 지정된 물리적 복제 슬롯에dst_slot_name. 복사된 물리적 슬롯은 동일한 것에서 WAL을 예약하기 시작합니다.LSN소스 슬롯으로.임시선택사항입니다. 만약에임시생략 시 소스 슬롯과 동일한 값이 사용됩니다. 
               | 
            
            
              | 
                  pg_copy_logical_replication_slot ( src_slot_name 이름, dst_slot_name 이름 [, 임시 부울 [, 플러그인 이름 ]] ) → 기록 ( 슬롯_이름 이름, lsn pg_lsn ) 
                다음 이름의 기존 논리적 복제 슬롯을 복사합니다.src_slot_name이름이 지정된 논리적 복제 슬롯에dst_slot_name, 선택적으로 출력 플러그인 및 지속성을 변경합니다. 복사된 논리적 슬롯은 동일한 슬롯에서 시작됩니다.LSN소스 논리 슬롯으로. 둘 다임시그리고플러그인선택사항입니다. 생략되면 소스 슬롯의 값이 사용됩니다. 
               | 
            
            
              | 
                  pg_logical_slot_get_changes ( 슬롯_이름 이름, upto_lsn pg_lsn, upto_nchanges 정수, VARIADIC 옵션 텍스트[] ) → 레코드 집합 ( lsn pg_lsn, xid xid, 데이터 텍스트 ) 
                슬롯의 변경 사항을 반환합니다.slot_name, 변경 사항이 마지막으로 소비된 지점부터 시작됩니다. 만약에upto_lsn그리고upto_nchanges이 NULL이면 WAL이 끝날 때까지 논리적 디코딩이 계속됩니다. 만약에upto_lsn는 NULL이 아니며 디코딩에는 지정된 LSN 이전에 커밋된 트랜잭션만 포함됩니다. 만약에upto_nchanges은 NULL이 아니며, 디코딩으로 생성된 행 수가 지정된 값을 초과하면 디코딩이 중지됩니다. 그러나 반환되는 실제 행 수는 더 클 수 있습니다. 이 제한은 각 새 트랜잭션 커밋을 디코딩할 때 생성된 행을 추가한 후에만 확인되기 때문입니다. 
               | 
            
            
              | 
                  pg_logical_slot_peek_changes ( 슬롯_이름 이름, upto_lsn pg_lsn, upto_nchanges 정수, VARIADIC 옵션 텍스트[] ) → 레코드 세트 ( lsn pg_lsn, xid xid, 데이터 텍스트 ) 
                다음과 같이 행동합니다pg_logical_slot_get_changes()함수. 단, 변경사항은 소비되지 않습니다. 즉, 향후 호출에서 다시 반환됩니다. 
               | 
            
            
              | 
                  pg_logical_slot_get_binary_changes ( 슬롯_이름 이름, upto_lsn pg_lsn, upto_nchanges 정수, VARIADIC 옵션 텍스트[] ) → 레코드 집합 ( lsn pg_lsn, xid xid, 데이터 바이테아 ) 
                다음과 같이 행동합니다pg_logical_slot_get_changes()함수, 변경 사항은 다음과 같이 반환된다는 점 제외바이테아. 
               | 
            
            
              | 
                  pg_logical_slot_peek_binary_changes ( slot_name 이름, upto_lsn pg_lsn, upto_nchanges 정수, VARIADIC 옵션 텍스트[] ) → 레코드 세트 ( lsn pg_lsn, xid xid, 데이터 바이테아 ) 
                다음과 같이 행동합니다pg_logical_slot_peek_changes()함수(변경 사항이 다음과 같이 반환된다는 점 제외)바이테아. 
               | 
            
            
              | 
                  pg_replication_slot_advance ( 슬롯_이름 이름, upto_lsn pg_lsn ) → 기록 ( 슬롯_이름 이름, end_lsn pg_lsn ) 
                이름이 지정된 복제 슬롯의 현재 확인된 위치를 전진시킵니다.slot_name. 슬롯은 뒤로 이동되지 않으며 현재 삽입 위치 이상으로 이동되지 않습니다. 슬롯의 이름과 슬롯이 진행된 실제 위치를 반환합니다. 업데이트된 슬롯 위치 정보는 진행이 완료되면 다음 체크포인트에서 기록됩니다. 따라서 충돌이 발생하는 경우 슬롯이 이전 위치로 돌아갈 수 있습니다. 
               | 
            
            
              | 
                  pg_replication_origin_create ( 노드_이름 텍스트 ) → oid 
                주어진 외부 이름으로 복제 원본을 생성하고 여기에 할당된 내부 ID를 반환합니다. 
               | 
            
            
              | 
                  pg_replication_origin_drop ( 노드_이름 텍스트 ) → 공허 
                관련 재생 진행 상황을 포함하여 이전에 생성된 복제 원본을 삭제합니다. 
               | 
            
            
              | 
                  pg_replication_origin_oid ( 노드_이름 텍스트 ) → oid 
                복제 원본을 이름으로 조회하고 내부 ID를 반환합니다. 그러한 복제 원본이 발견되지 않으면,NULL반환되었습니다. 
               | 
            
            
              | 
                  pg_replication_origin_session_setup ( 노드_이름 텍스트 ) → 무효 
                현재 세션을 지정된 원본에서 재생 중인 것으로 표시하여 재생 진행 상황을 추적할 수 있습니다. 현재 선택된 원점이 없는 경우에만 사용할 수 있습니다. 사용pg_replication_origin_session_reset실행 취소합니다. 
               | 
            
            
              | 
                  pg_replication_origin_session_reset () → 공허 
                효과를 취소합니다.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 시간대가 포함된 타임스탬프 ) → 공허 
                현재 트랜잭션을 주어진 시점에 커밋된 트랜잭션을 재생하는 것으로 표시LSN및 타임스탬프. 다음을 사용하여 복제 원본을 선택한 경우에만 호출할 수 있습니다.pg_replication_origin_session_setup. 
               | 
            
            
              | 
                  pg_replication_origin_xact_reset () → 무효 
                효과를 취소합니다.pg_replication_origin_xact_setup(). 
               | 
            
            
              | 
                  pg_replication_origin_advance ( 노드_이름 텍스트, lsn pg_lsn ) → 무효 
                주어진 노드의 복제 진행을 주어진 위치로 설정합니다. 이는 주로 초기 위치를 설정하거나 구성 변경 후 새 위치를 설정하는 데 유용합니다. 이 배트맨 토토을 부주의하게 사용하면 데이터가 일관되지 않게 복제될 수 있다는 점에 유의하세요. 
               | 
            
            
              | 
                  pg_replication_origin_progress ( 노드_이름 텍스트, 플러시 부울 ) → pg_lsn 
                주어진 복제 원본에 대한 재생 위치를 반환합니다. 매개변수플러시해당 로컬 트랜잭션이 디스크에 플러시되었는지 여부를 결정합니다. 
               | 
            
            
              | 
                  pg_logical_emit_message ( 트랜잭션 부울, 접두사 텍스트, 내용 텍스트 ) → pg_lsn 
                pg_logical_emit_message ( 트랜잭션 부울, 접두사 텍스트, 내용 바이테아 ) → pg_lsn 
                논리적 디코딩 메시지를 내보냅니다. 이는 WAL을 통해 일반 메시지를 논리적 디코딩 플러그인에 전달하는 데 사용될 수 있습니다. 그만큼트랜잭션매개변수는 메시지가 현재 트랜잭션의 일부여야 하는지, 아니면 즉시 작성하고 논리적 디코더가 레코드를 읽는 즉시 디코딩해야 하는지를 지정합니다. 그만큼접두사매개변수는 논리적 디코딩 플러그인에서 흥미로운 메시지를 쉽게 인식하는 데 사용할 수 있는 텍스트 접두사입니다. 그만큼내용매개변수는 텍스트 또는 바이너리 형식으로 제공되는 메시지의 내용입니다. 
               | 
            
          
        
       
     
   
  
    
      
        
          
9.27.7. 데이터베이스 객체 관리 배트맨 토토
        
       
     
    다음에 표시된 배트맨 토토표 9.94데이터베이스 개체의 디스크 공간 사용량을 계산하거나 사용 결과의 표시 또는 이해를 돕습니다.비긴트결과는 바이트 단위로 측정됩니다. 기존 객체를 나타내지 않는 OID가 이러한 함수 중 하나에 전달되는 경우,NULL반환되었습니다.
    
      표 9.94. 데이터베이스 개체 크기 함수
      
        
          
            
          
          
            
              | 
                 배트맨 토토 
                설명 
               | 
            
          
          
            
              | 
                  pg_column_size ( "아무거나" ) → 정수 
                개별 데이터 값을 저장하는 데 사용된 바이트 수를 표시합니다. 테이블 열 값에 직접 적용되는 경우 이는 수행된 모든 압축을 반영합니다. 
               | 
            
            
              | 
                  pg_column_compression ( "아무거나" ) → 텍스트 
                개별 가변 길이 값을 압축하는 데 사용된 압축 알고리즘을 표시합니다. 보고NULL값이 압축되지 않은 경우. 
               | 
            
            
              | 
                  pg_database_size ( 이름 ) → 비긴트 
                pg_database_size ( oid ) → 비긴트 
                지정된 이름 또는 OID를 가진 데이터베이스가 사용하는 총 디스크 공간을 계산합니다. 이 배트맨 토토을 사용하려면 다음이 필요합니다.연결지정된 데이터베이스에 대한 권한(기본적으로 부여됨) 또는 다음의 권한을 갖습니다.pg_read_all_stats역할. 
               | 
            
            
              | 
                  pg_indexes_size ( regclass ) → 비긴트 
                지정된 테이블에 연결된 인덱스가 사용하는 총 디스크 공간을 계산합니다. 
               | 
            
            
              | 
                  pg_relation_size ( 관계 regclass [, 포크 텍스트 ] ) → 비긴트 
                하나가 사용하는 디스크 공간을 계산“포크”지정된 관계의. (대부분의 경우 상위 수준 배트맨 토토을 사용하는 것이 더 편리합니다.pg_total_relation_size또는pg_table_size, 모든 분기의 크기를 합산합니다.) 하나의 인수를 사용하면 관계의 기본 데이터 분기 크기를 반환합니다. 검사할 포크를 지정하기 위해 두 번째 인수를 제공할 수 있습니다. 
                
               | 
            
            
              | 
                  pg_size_bytes ( 텍스트 ) → 비긴트 
                사람이 읽을 수 있는 형식으로 크기를 변환합니다(다음에 의해 반환됨).pg_size_pretty)을 바이트로 변환합니다. 
               | 
            
            
              | 
                  pg_size_pretty ( 비긴트 ) → 텍스트 
                pg_size_pretty ( 숫자 ) → 텍스트 
                바이트 단위의 크기를 크기 단위(해당하는 경우 바이트, kB, MB, GB, TB 또는 PB)를 사용하여 사람이 더 쉽게 읽을 수 있는 형식으로 변환합니다. 단위는 10의 거듭제곱이 아니라 2의 거듭제곱이므로 1kB는 1024바이트이고 1MB는 1024입니다.2= 1048576바이트 등. 
               | 
            
            
              | 
                  pg_table_size ( regclass ) → 비긴트 
                인덱스를 제외하고 지정된 테이블에서 사용하는 디스크 공간을 계산합니다(그러나 TOAST 테이블이 있는 경우 여유 공간 맵 및 가시성 맵 포함). 
               | 
            
            
              | 
                  pg_tablespace_size ( 이름 ) → 비긴트 
                pg_tablespace_size ( oid ) → 비긴트 
                지정된 이름 또는 OID를 가진 테이블스페이스에서 사용된 총 디스크 공간을 계산합니다. 이 배트맨 토토을 사용하려면 다음이 필요합니다.생성지정된 테이블스페이스에 대한 권한 또는 다음의 권한을 가짐pg_read_all_stats역할(현재 데이터베이스의 기본 테이블스페이스가 아닌 경우). 
               | 
            
            
              | 
                  pg_total_relation_size ( regclass ) → 비긴트 
                모든 인덱스를 포함하여 지정된 테이블이 사용하는 총 디스크 공간을 계산합니다.토스트데이터. 결과는 다음과 같습니다.pg_table_size + pg_indexes_size. 
               | 
            
          
        
       
     
    테이블이나 인덱스에서 작동하는 위의 함수는 다음을 허용합니다.regclass인수, 이는 단순히 테이블 또는 인덱스의 OID입니다.pg_class시스템 카탈로그. 그러나 OID를 직접 찾을 필요는 없습니다.regclass데이터 유형의 입력 변환기가 대신 작업을 수행합니다. 보다섹션 8.19자세한 내용은.
    다음에 표시된 배트맨 토토표 9.95데이터베이스 개체와 연관된 특정 디스크 파일을 식별하는 데 도움을 줍니다.
    
      표 9.95. 데이터베이스 개체 위치 배트맨 토토
      
        
          
            
          
          
            
              | 
                 배트맨 토토 
                설명 
               | 
            
          
          
            
              | 
                  pg_relation_filenode ( 관계 regclass ) → oid 
                다음을 반환합니다“파일 노드”현재 지정된 관계에 할당된 번호입니다. 파일 노드는 관계에 사용되는 파일 이름의 기본 구성 요소입니다(참조)PostgreSQL : 문서 : 15 : 73.1. 데이터베이스 윈 토토 레이아웃자세한 내용은). 대부분의 관계에서 결과는 다음과 같습니다.pg_class.relfilenode, 그러나 특정 시스템 카탈로그의 경우relfilenode는 0이며 올바른 값을 얻으려면 이 함수를 사용해야 합니다. 뷰와 같이 저장 공간이 없는 관계를 전달하면 함수는 NULL을 반환합니다. 
               | 
            
            
              | 
                  pg_relation_filepath ( 관계 regclass ) → 텍스트 
                전체 파일 경로 이름을 반환합니다(데이터베이스 클러스터의 데이터 디렉터리에 상대적).PGDATA) 관계의. 
               | 
            
            
              | 
                  pg_filenode_relation ( 테이블스페이스 oid, 파일 노드 oid ) → regclass 
                테이블스페이스 OID 및 해당 관계가 저장된 파일 노드를 고려하여 관계의 OID를 반환합니다. 이는 본질적으로 다음의 역 매핑입니다.pg_relation_filepath. 데이터베이스의 기본 테이블스페이스에 있는 관계의 경우 테이블스페이스를 0으로 지정할 수 있습니다. 보고NULL현재 데이터베이스에 주어진 값과 연관된 관계가 없는 경우. 
               | 
            
          
        
       
     
    표 9.96데이터 정렬을 관리하는 데 사용되는 배트맨 토토을 나열합니다.
    
      표 9.96. 데이터 정렬 관리 배트맨 토토
      
        
          
            
          
          
            
              | 
                 배트맨 토토 
                설명 
               | 
            
          
          
            
              | 
                  pg_collation_actual_version ( oid ) → 텍스트 
                현재 운영 체제에 설치된 데이터 정렬 개체의 실제 버전을 반환합니다. 의 값과 다른 경우pg_collation.콜버전이면 데이터 정렬에 따라 개체를 다시 작성해야 할 수도 있습니다. 또한 참조하세요조합 변경. 
               | 
            
            
              | 
                  pg_database_collation_actual_version ( oid ) → 텍스트 
                현재 운영 체제에 설치된 데이터베이스 데이터 정렬의 실제 버전을 반환합니다. 의 값과 다른 경우pg_database.datcollversion이면 데이터 정렬에 따라 개체를 다시 작성해야 할 수도 있습니다. 또한 참조하세요데이터베이스 변경. 
               | 
            
            
              | 
                  pg_import_system_collations ( 스키마 regnamespace ) → 정수 
                시스템 카탈로그에 데이터 정렬을 추가합니다pg_collation운영 체제에서 찾은 모든 로케일을 기반으로 합니다. 이것이 바로initdb사용; 보다섹션 24.2.294540_94742pg_collation건너뛰게 됩니다. (그러나 운영 체제에 더 이상 존재하지 않는 로캘 기반의 데이터 정렬 개체는 이 함수로 제거되지 않습니다.)스키마매개변수는 일반적으로 다음과 같습니다.pg_catalog, 하지만 필수 사항은 아닙니다. 데이터 정렬은 다른 스키마에도 설치될 수 있습니다. 이 함수는 생성된 새 데이터 정렬 개체의 수를 반환합니다. 이 배트맨 토토의 사용은 슈퍼유저로 제한됩니다. 
               | 
            
          
        
       
     
    표 9.97분할된 테이블의 구조에 대한 정보를 제공하는 함수를 나열합니다.
    
      표 9.97. 파티션 정보 배트맨 토토
      
        
          
            
          
          
            
              | 
                 배트맨 토토 
                설명 
               | 
            
          
          
            
              | 
                  pg_partition_tree ( regclass ) → 레코드 세트 ( 렐리드 regclass, 부모렐리드 regclass, isleaf 부울, 레벨 정수 ) 
                주어진 파티션된 테이블 또는 파티션된 인덱스의 파티션 트리에 있는 테이블 또는 인덱스를 각 파티션당 하나의 행으로 나열합니다. 제공되는 정보에는 파티션의 OID, 직계 부모의 OID, 파티션이 리프인지 알려주는 부울 값, 계층 구조의 수준을 알려주는 정수가 포함됩니다. 레벨 값은 입력 테이블 또는 인덱스의 경우 0, 직계 하위 파티션의 경우 1, 해당 파티션의 경우 2 등입니다. 관계가 존재하지 않거나 파티션 또는 파티션된 테이블이 아닌 경우 행을 반환하지 않습니다. 
               | 
            
            
              | 
                  pg_partition_ancestors ( regclass ) → regclass 집합 
                관계 자체를 포함하여 주어진 파티션의 상위 관계를 나열합니다. 관계가 존재하지 않거나 파티션 또는 파티션된 테이블이 아닌 경우 행을 반환하지 않습니다. 
               | 
            
            
              | 
                  pg_partition_root ( regclass ) → regclass 
                주어진 관계가 속한 파티션 트리의 최상위 상위를 반환합니다. 보고NULL관계가 존재하지 않거나 파티션 또는 파티션된 테이블이 아닌 경우. 
               | 
            
          
        
       
     
    예를 들어 파티션을 나눈 테이블에 포함된 데이터의 전체 크기를 확인하려는 경우측정, 다음 쿼리를 사용할 수 있습니다.
    SELECT pg_size_pretty(sum(pg_relation_size(relid))) AS total_size
  pg_partition_tree('측정');에서
   
  
    
    표 9.98인덱스 유지 관리 작업에 사용할 수 있는 배트맨 토토을 보여줍니다. (이러한 유지 관리 작업은 일반적으로 autovacuum에 의해 자동으로 수행됩니다. 이러한 배트맨 토토은 특별한 경우에만 사용해야 합니다.) 이러한 배트맨 토토은 복구 중에는 실행할 수 없습니다. 이 배트맨 토토의 사용은 수퍼유저와 해당 인덱스의 소유자로 제한됩니다.
    
      표 9.98. 인덱스 유지관리 배트맨 토토
      
        
          
            
          
          
            
              | 
                 배트맨 토토 
                설명 
               | 
            
          
          
            
              | 
                  brin_summarize_new_values ( 색인 regclass ) → 정수 
                지정된 BRIN 색인을 스캔하여 현재 색인에 의해 요약되지 않은 기본 테이블의 페이지 범위를 찾습니다. 그러한 범위에 대해 해당 테이블 페이지를 스캔하여 새로운 요약 인덱스 튜플을 생성합니다. 색인에 삽입된 새 페이지 범위 요약의 수를 반환합니다. 
               | 
            
            
              | 
                  brin_summarize_range ( 색인 regclass, 블록번호 bigint ) → 정수 
                아직 요약되지 않은 경우 해당 블록을 포함하는 페이지 범위를 요약합니다. 이것은 마치brin_summarize_new_values단, 주어진 테이블 블록 번호를 포함하는 페이지 범위만 처리한다는 점은 다릅니다. 
               | 
            
            
              | 
                  brin_desummarize_range ( 색인 regclass, 블록번호 bigint ) → 무효 
                주어진 테이블 블록을 포함하는 페이지 범위를 요약하는 BRIN 인덱스 튜플이 있는 경우 제거합니다. 
               | 
            
            
              | 
                  gin_clean_pending_list ( 색인 regclass ) → bigint 
                정리“보류 중”지정된 GIN 색인의 항목을 대량으로 기본 GIN 데이터 구조로 이동하여 목록을 만듭니다. 보류 목록에서 제거된 페이지 수를 반환합니다. 인수가로 작성된 GIN 인덱스인 경우빠른 업데이트옵션이 비활성화되어 있으며 색인에 보류 목록이 없기 때문에 정리가 발생하지 않으며 결과는 0입니다. 보다섹션 70.4.1그리고메이저 토토 사이트 PostgreSQL : 문서 : 15 : 70.5. 진 팁과 요령보류 목록에 대한 자세한 내용 및빠른 업데이트옵션. 
               | 
            
          
        
       
     
   
  
    
    다음에 표시된 배트맨 토토표 9.99서버를 호스팅하는 시스템의 파일에 대한 기본 액세스를 제공합니다. 데이터베이스 클러스터 디렉터리 내의 파일만 및log_directory사용자가 수퍼유저이거나 역할이 부여되지 않은 경우 액세스할 수 있습니다.pg_read_server_files. 클러스터 디렉터리에 있는 파일의 상대 경로와 일치하는 경로를 사용하세요.log_directory로그 파일 구성 설정.
    사용자에게 다음에 대한 EXECUTE 권한을 부여한다는 점에 유의하세요.pg_read_file()또는 관련 함수를 사용하면 데이터베이스 서버 프로세스가 읽을 수 있는 서버의 모든 파일을 읽을 수 있습니다. 이러한 배트맨 토토은 모든 데이터베이스 내 권한 검사를 우회합니다. 이는 예를 들어 해당 액세스 권한이 있는 사용자가 다음의 내용을 읽을 수 있음을 의미합니다.pg_authid인증 정보가 저장되는 테이블이며 데이터베이스의 모든 테이블 데이터를 읽습니다. 따라서 이러한 배트맨 토토에 대한 액세스 권한을 부여하는 것은 신중하게 고려해야 합니다.
    이러한 배트맨 토토 중 일부는 선택사항을 취합니다.missing_ok매개변수 - 파일이나 디렉터리가 존재하지 않을 때의 동작을 지정합니다. 만약에사실, 함수가 반환됨NULL또는 적절하다면 빈 결과 세트. 만약에거짓, 오류가 발생합니다. 기본값은거짓.
    
      표 9.99. 일반 파일 액세스 배트맨 토토
      
        
          
            
          
          
            
              | 
                 배트맨 토토 
                설명 
               | 
            
          
          
            
              | 
                  pg_ls_dir ( dirname 텍스트 [, missing_ok 부울, include_dot_dirs 부울 ] ) → 텍스트 집합 
                지정된 디렉토리에 있는 모든 파일(및 디렉토리 및 기타 특수 파일)의 이름을 반환합니다. 그만큼include_dot_dirs매개변수는 다음 여부를 나타냅니다.“.”그리고“..”결과 세트에 포함됩니다. 기본값은 제외하는 것입니다. 다음과 같은 경우에 이를 포함하면 유용할 수 있습니다.missing_okis사실, 빈 디렉토리와 존재하지 않는 디렉토리를 구별합니다. 
                이 배트맨 토토은 기본적으로 슈퍼유저로 제한되어 있지만 다른 사용자에게 EXECUTE 권한을 부여하여 배트맨 토토을 실행할 수 있습니다. 
               | 
            
            
              | 
                  pg_ls_logdir () → 레코드 세트 ( 이름 텍스트, 크기 bigint, 수정 시간대가 포함된 타임스탬프 ) 
                서버의 로그 디렉토리에 있는 각 일반 파일의 이름, 크기 및 마지막 수정 시간(mtime)을 반환합니다. 점으로 시작하는 파일명, 디렉터리, 기타 특수 파일은 제외됩니다. 
                이 배트맨 토토은 수퍼유저와 다음 권한을 가진 역할로 제한됩니다.pg_monitor역할은 기본적으로 있지만 다른 사용자에게 EXECUTE 권한을 부여하여 함수를 실행할 수 있습니다. 
               | 
            
            
              | 
                  pg_ls_waldir () → 레코드 세트 ( 이름 텍스트, 크기 bigint, 수정 시간대가 포함된 타임스탬프 ) 
                서버의 미리 쓰기 로그(WAL) 디렉토리에 있는 각 일반 파일의 이름, 크기 및 마지막 수정 시간(mtime)을 반환합니다. 점으로 시작하는 파일명, 디렉터리, 기타 특수 파일은 제외됩니다. 
                이 배트맨 토토은 수퍼유저와 다음 권한을 가진 역할로 제한됩니다.pg_monitor역할은 기본적으로 있지만 다른 사용자에게 EXECUTE 권한을 부여하여 함수를 실행할 수 있습니다. 
               | 
            
            
              | 
                  pg_ls_logicalmapdir () → 레코드 집합 ( 이름 텍스트, 크기 bigint, 수정 시간대가 포함된 타임스탬프 ) 
                서버에 있는 각 일반 파일의 이름, 크기 및 마지막 수정 시간(mtime)을 반환합니다.pg_logical/mappings디렉토리. 점으로 시작하는 파일명, 디렉터리, 기타 특수 파일은 제외됩니다. 
                이 배트맨 토토은 수퍼유저 및 회원으로 제한됩니다.pg_monitor역할은 기본적으로 있지만 다른 사용자에게 EXECUTE 권한을 부여하여 함수를 실행할 수 있습니다. 
               | 
            
            
              | 
                  pg_ls_logicalsnapdir () → 레코드 세트 ( 이름 텍스트, 크기 bigint, 수정 시간대가 포함된 타임스탬프 ) 
                서버에 있는 각 일반 파일의 이름, 크기 및 마지막 수정 시간(mtime)을 반환합니다.pg_logical/스냅샷디렉토리. 점으로 시작하는 파일명, 디렉터리, 기타 특수 파일은 제외됩니다. 
                이 배트맨 토토은 수퍼유저와 회원으로 제한됩니다.pg_monitor역할은 기본적으로 있지만 다른 사용자에게 EXECUTE 권한을 부여하여 함수를 실행할 수 있습니다. 
               | 
            
            
              | 
                  pg_ls_replslotdir ( slot_name 텍스트 ) → 레코드 세트 ( 이름 텍스트, 크기 bigint, 수정 시간대가 포함된 타임스탬프 ) 
                서버에 있는 각 일반 파일의 이름, 크기 및 마지막 수정 시간(mtime)을 반환합니다.pg_replslot/slot_name디렉토리, 여기서slot_name은 함수의 입력으로 제공되는 복제 슬롯의 이름입니다. 점으로 시작하는 파일명, 디렉터리, 기타 특수 파일은 제외됩니다. 
                이 배트맨 토토은 수퍼유저와 회원으로 제한됩니다.pg_monitor역할은 기본적으로 있지만 다른 사용자에게 EXECUTE 권한을 부여하여 함수를 실행할 수 있습니다. 
               | 
            
            
              | 
                  pg_ls_archive_statusdir () → 레코드 세트 ( 이름 텍스트, 크기 bigint, 수정 시간대가 포함된 타임스탬프 ) 
                서버의 WAL 아카이브 상태 디렉토리에 있는 각 일반 파일의 이름, 크기 및 마지막 수정 시간(mtime)을 반환합니다(pg_wal/archive_status). 점으로 시작하는 파일명, 디렉터리, 기타 특수 파일은 제외됩니다. 
                이 배트맨 토토은 수퍼유저와 회원으로 제한됩니다.pg_monitor역할은 기본적으로 있지만 다른 사용자에게 EXECUTE 권한을 부여하여 함수를 실행할 수 있습니다. 
               | 
            
            
              | 
                  pg_ls_tmpdir ( [ 테이블스페이스 oid ] ) → 레코드 세트 ( 이름 텍스트, 크기 비긴트, 수정 시간대가 포함된 타임스탬프 ) 
                지정된 임시 파일 디렉터리에 있는 각 일반 파일의 이름, 크기 및 마지막 수정 시간(mtime)을 반환합니다.테이블스페이스. 만약에테이블스페이스제공되지 않습니다.pg_default테이블스페이스가 검사됩니다. 점으로 시작하는 파일명, 디렉터리, 기타 특수 파일은 제외됩니다. 
                이 배트맨 토토은 수퍼유저와 회원으로 제한됩니다.pg_monitor역할은 기본적으로 있지만 다른 사용자에게 EXECUTE 권한을 부여하여 함수를 실행할 수 있습니다. 
               | 
            
            
              | 
                  pg_read_file ( 파일 이름 텍스트 [, 오프셋 bigint, 길이 bigint [, missing_ok 부울 ]] ) → 텍스트 
                주어진 바이트에서 시작하여 텍스트 파일의 전부 또는 일부를 반환합니다.오프셋, 최대 반환길이바이트(파일 끝에 먼저 도달하면 더 적음). 만약에오프셋은 음수이며 파일 끝을 기준으로 합니다. 만약에오프셋그리고길이생략되면 전체 파일이 반환됩니다. 파일에서 읽은 바이트는 데이터베이스 인코딩의 문자열로 해석됩니다. 해당 인코딩에서 유효하지 않으면 오류가 발생합니다. 
                이 배트맨 토토은 기본적으로 슈퍼유저로 제한되어 있지만 다른 사용자에게 EXECUTE 권한을 부여하여 해당 배트맨 토토을 실행할 수 있습니다. 
               | 
            
            
              | 
                  pg_read_binary_file ( 파일 이름 텍스트 [, 오프셋 bigint, 길이 bigint [, missing_ok 부울 ]] ) → 바이테아 
                파일 전체 또는 일부를 반환합니다. 이 배트맨 토토은 다음과 동일합니다.pg_read_file단, 임의의 바이너리 데이터를 읽을 수 있고 결과를 다음과 같이 반환할 수 있다는 점은 제외바이테아아님텍스트; 따라서 인코딩 확인이 수행되지 않습니다. 
                이 배트맨 토토은 기본적으로 슈퍼유저로 제한되어 있지만 다른 사용자에게 EXECUTE 권한을 부여하여 배트맨 토토을 실행할 수 있습니다. 
                다음과 결합하여convert_from함수, 이 함수는 지정된 인코딩으로 텍스트 파일을 읽고 데이터베이스의 인코딩으로 변환하는 데 사용할 수 있습니다. 
                SELECT Convert_from(pg_read_binary_file('file_in_utf8.txt'), 'UTF8');
               | 
            
            
              | 
                  pg_stat_file ( 파일 이름 텍스트 [, missing_ok 부울 ] ) → 기록 ( 크기 bigint, 액세스 시간대가 포함된 타임스탬프, 수정 시간대가 포함된 타임스탬프, 변경 시간대가 포함된 타임스탬프, 생성 시간대가 포함된 타임스탬프, isdir 부울 ) 
                파일 크기, 마지막 액세스 타임스탬프, 마지막 수정 타임스탬프, 마지막 파일 상태 변경 타임스탬프(Unix 플랫폼에만 해당), 파일 생성 타임스탬프(Windows에만 해당) 및 디렉터리인지 여부를 나타내는 플래그가 포함된 레코드를 반환합니다. 
                이 배트맨 토토은 기본적으로 슈퍼유저로 제한되어 있지만 다른 사용자에게 EXECUTE 권한을 부여하여 해당 배트맨 토토을 실행할 수 있습니다. 
               | 
            
          
        
       
     
   
  
    
    다음에 표시된 배트맨 토토표 9.100권고 잠금을 관리합니다. 이러한 배트맨 토토의 올바른 사용에 대한 자세한 내용은 다음을 참조하세요.섹션 13.3.5.
    이러한 모든 함수는 단일 64비트 키 값 또는 두 개의 32비트 키 값으로 식별할 수 있는 애플리케이션 정의 리소스를 잠그는 데 사용하기 위한 것입니다(이 두 키 공간은 겹치지 않음). 다른 세션이 이미 동일한 리소스 식별자에 대해 충돌하는 잠금을 보유하고 있는 경우 함수는 리소스를 사용할 수 있을 때까지 기다리거나거짓결과, 함수에 적합합니다. 잠금은 공유되거나 배타적일 수 있습니다. 공유 잠금은 동일한 리소스의 다른 공유 잠금과 충돌하지 않으며 배타적 잠금과만 충돌합니다. 잠금은 세션 수준(해제되거나 세션이 종료될 때까지 유지) 또는 트랜잭션 수준(현재 트랜잭션이 끝날 때까지 유지되며 수동 해제에 대한 규정은 없음)에서 수행될 수 있습니다. 여러 세션 수준 잠금 요청이 스택되므로 동일한 리소스 식별자가 세 번 잠긴 경우 세션이 끝나기 전에 리소스를 해제하기 위해 세 번의 잠금 해제 요청이 있어야 합니다.
    
      표 9.100. 권고 잠금 배트맨 토토
      
        
          
            
          
          
            
              | 
                 배트맨 토토 
                설명 
               | 
            
          
          
            
              | 
                  pg_advisory_lock ( 키 bigint ) → 공허 
                pg_advisory_lock ( 키1 정수, 키2 정수 ) → 무효 
                독점적인 세션 수준 권고 잠금을 획득하고 필요한 경우 대기합니다. 
               | 
            
            
              | 
                  pg_advisory_lock_shared ( 키 bigint ) → 무효 
                pg_advisory_lock_shared ( 키1 정수, 키2 정수 ) → 무효 
                공유 세션 수준 권고 잠금을 획득하고 필요한 경우 대기합니다. 
               | 
            
            
              | 
                  pg_advisory_unlock ( 키 bigint ) → 부울 
                pg_advisory_unlock ( 키1 정수, 키2 정수 ) → 부울 
                이전에 획득한 독점 세션 수준 권고 잠금을 해제합니다. 보고참잠금이 성공적으로 해제된 경우. 잠금이 유지되지 않은 경우,거짓이 반환되며, 추가로 서버에서 SQL 경고가 보고됩니다. 
               | 
            
            
              | 
                  pg_advisory_unlock_all () → 무효 
                현재 세션이 보유하고 있는 모든 세션 수준 권고 잠금을 해제합니다. (이 함수는 클라이언트가 비정상적으로 연결을 끊더라도 세션 종료 시 암시적으로 호출됩니다.) 
               | 
            
            
              | 
                  pg_advisory_unlock_shared ( 키 bigint ) → 부울 
                pg_advisory_unlock_shared ( 키1 정수, 키2 정수 ) → 부울 
                이전에 획득한 공유 세션 수준 권고 잠금을 해제합니다. 보고사실잠금이 성공적으로 해제된 경우. 잠금이 유지되지 않은 경우,거짓이 반환되고 추가로 서버에서 SQL 경고가 보고됩니다. 
               | 
            
            
              | 
                  pg_advisory_xact_lock ( 키 bigint ) → 무효 
                pg_advisory_xact_lock ( 키1 정수, 키2 정수 ) → 무효 
                독점적인 트랜잭션 수준 권고 잠금을 획득하고 필요한 경우 대기합니다. 
               | 
            
            
              | 
                  pg_advisory_xact_lock_shared ( 키 bigint ) → 공허 
                pg_advisory_xact_lock_shared ( 키1 정수, 키2 정수 ) → 무효 
                공유 트랜잭션 수준 권고 잠금을 획득하고 필요한 경우 대기합니다. 
               | 
            
            
              | 
                  pg_try_advisory_lock ( 키 bigint ) → 부울 
                pg_try_advisory_lock ( 키1 정수, 키2 정수 ) → 부울 
                가능한 경우 독점적인 세션 수준 권고 잠금을 얻습니다. 그러면 즉시 잠금을 획득하고 반환됩니다.참또는 반환거짓잠금을 즉시 획득할 수 없는 경우 기다리지 않고. 
               | 
            
            
              | 
                  pg_try_advisory_lock_shared ( 키 bigint ) → 부울 
                pg_try_advisory_lock_shared ( 키1 정수, 키2 정수 ) → 부울 
                가능한 경우 공유 세션 수준 권고 잠금을 얻습니다. 그러면 즉시 잠금을 획득하고 반환됩니다.참또는 반환거짓잠금을 즉시 획득할 수 없는 경우 기다리지 않고. 
               | 
            
            
              | 
                  pg_try_advisory_xact_lock ( 키 bigint ) → 부울 
                pg_try_advisory_xact_lock ( 키1 정수, 키2 정수 ) → 부울 
                가능한 경우 독점적인 트랜잭션 수준 권고 잠금을 얻습니다. 그러면 즉시 잠금을 획득하고 반환됩니다.참또는 반환거짓잠금을 즉시 획득할 수 없는 경우 기다리지 않고. 
               | 
            
            
              | 
                  pg_try_advisory_xact_lock_shared ( 키 bigint ) → 부울 
                pg_try_advisory_xact_lock_shared ( 키1 정수, 키2 정수 ) → 부울 
                가능한 경우 공유 트랜잭션 수준 권고 잠금을 얻습니다. 그러면 즉시 잠금을 획득하고 반환됩니다.참또는 반환거짓잠금을 즉시 획득할 수 없는 경우 기다리지 않고. 
               |