이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다스포츠 토토 사이트 PostgreSQL : 문서 : 17 : 19.5. 미리 로그 작성버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

18.5. 미리 로그 작성

이 설정 조정에 대한 추가 정보는 참조PostgreSQL : 문서 : 9.5 : 스포츠 토토 사이트 구성.

18.5.1. 설정

Wal_Level(enum)

Wal_levelWAL에 얼마나 많은 정보가 기록되어 있는지 결정합니다. 기본값은입니다.최소, 충돌 또는 즉시 종료롤 토토 복구하는 데 필요한 정보 만 작성합니다.아카이브WAL 아카이브에 필요한 로깅 추가;hot_standby대기 서버롤 토토 읽기 전용 쿼리를 실행하는 데 필요한 정보를 추가합니다. 그리고 마침내논리논리 디코딩을 지원하는 데 필요한 정보가 추가됩니다. 각 레벨에는 모든 낮은 수준으로 기록 된 정보가 포함됩니다. 이 매개 변수는 서버 시작롤 토토만 설정할 수 있습니다.

in최소레벨, 일부 벌크 작업의 월-로깅을 안전하게 건너 뛸 수있어 해당 작업을 훨씬 더 빨리 만들 수 있습니다 (참조섹션 14.4.7). 이 최적화를 적용 할 수있는 작업에는 다음이 포함됩니다.

테이블 작성
색인 생성
클러스터
copy동일한 거래롤 토토 생성되거나 잘린 테이블로
그러나 최소한의 WAL은 기본 백업 및 WAL 로그에서 데이터를 재구성하기에 충분한 정보가 포함되어 있지 않습니다.아카이브이상의 WAL 아카이빙 (을 활성화하려면 사용해야합니다.archive_mode) 및 스트리밍 복제.

inhot_standby레벨, 동일한 정보가 다음과 같이 기록됩니다아카이브, 그리고 WAL롤 토토 거래 실행 상태를 재구성하는 데 필요한 정보와 함께. 대기 서버롤 토토 읽기 전용 쿼리를 활성화하려면Wal_level로 설정해야합니다hot_standby1 차의 상승 및hot_standby대기롤 토토 활성화해야합니다. 사용 사이의 성능 차이는 거의 없다고 생각됩니다hot_standbyand아카이브레벨, 생산 영향이 눈에 띄면 피드백을 환영합니다.

inLogical레벨, 동일한 정보가 다음과 같이 기록됩니다hot_standby, WAL에서 논리적 변경 세트를 추출하는 데 필요한 정보와 함께. 수준 사용Logical특히 많은 테이블이 구성된 경우 WAL 볼륨이 증가합니다.복제 아이덴티티 전체그리고 많은업데이트and삭제진술이 실행되었습니다.

fsync(부울)

이 매개 변수가 켜져 있으면PostgreSQL서버는 업데이트가 디스크에 물리적으로 작성되었는지 확인하여 발행fsync ()시스템 호출 또는 다양한 동등한 방법 (참조Wal_Sync_Method). 이를 통해 운영 체제 또는 하드웨어 충돌 후 데이터베이스 클러스터가 일관된 상태로 복구 할 수 있습니다.

끄는 동안fsync종종 성능 이점이므로 정전 또는 시스템 충돌시 정복 할 수없는 데이터 손상이 발생할 수 있습니다. 따라서 끄는 것이 좋습니다fsync외부 데이터롤 토토 전체 데이터베이스를 쉽게 재현 할 수있는 경우

끄기위한 안전한 상황의 예fsync백업 파일에서 새 데이터베이스 클러스터의 초기로드, 데이터베이스를 처리하기 위해 데이터베이스 클러스터를 사용하여 데이터베이스가 버리고 재현되거나, 자주 재현되고 실패한 데 사용되지 않는 읽기 전용 데이터베이스 클론을 위해 데이터베이스 클러스터를 사용합니다. 고품질 하드웨어만으로는 전원을 끄는 데 충분한 정당성이 아닙니다fsync.

변경시 신뢰할 수있는 복구의 경우fsyncOFF TO ON에서 커널의 모든 수정 된 버퍼를 내구성있는 저장소로 강제해야합니다. 클러스터가 종료 중이거나 FSYNC가 실행중인 상태에서 수행 할 수 있습니다initdb --- 동시 전용, runningsync, 파일 시스템을 마치거나 서버 재부팅.

많은 상황롤 토토 끄기synchronous_commit비정규 거래의 경우 끄는 잠재적 성능 이점의 상당 부분을 제공 할 수 있습니다fsync, 데이터 손상의 승무원 위험없이.

fsync롤 토토만 설정할 수 있습니다postgresql.conf파일 또는 서버 명령 줄에. 이 매개 변수를 끄면 끄기를 고려하십시오full_page_writes.

synchronous_commit(enum)

명령이 a를 반환하기 전에 트랜잭션 커밋이 WAL 레코드가 디스크에 기록 될 때까지 대기할지 여부를 지정합니다."성공"클라이언트에 대한 표시. 유효한 값은on, Remote_write, LocalOFF. 기본값이고 안전한 설정은입니다.on. 언제off, 고객에게 성공이보고 될 때와 트랜잭션이 서버 충돌에 대해 안전 할 때까지 지연 될 수 있습니다. (최대 지연은 세 번Wal_writer_delay.)와 달리fsync,이 매개 변수 설정OFF데이터베이스 불일치의 위험을 초래하지 않습니다. 운영 체제 또는 데이터베이스 충돌로 인해 최근 일부 커미셔닝 된 트랜잭션이 손실 될 수 있지만 데이터베이스 상태는 해당 거래가 깨끗하게 중단 된 경우와 동일합니다. 그래서, 회전synchronous_commitOFF는 거래의 내구성에 대한 정확한 확실성보다 성능이 더 중요한 경우 유용한 대안이 될 수 있습니다. 자세한 내용은 참조PostgreSQL : 문서 : 9.5 : 비동기 메이저 토토 사이트.

ifsynchronous_standby_names가 설정되어 있습니다.이 매개 변수는 트랜잭션 커밋이 트랜잭션의 WAL 레코드가 대기 서버에 복제 될 때까지 기다릴 것인지를 제어합니다. 로 설정된 경우on, Commits는 현재 동기 대기의 답변이 트랜잭션의 커밋 레코드를 수신하여 디스크로 플러시했음을 나타낼 때까지 대기합니다. 이렇게하면 기본 및 대기가 데이터베이스 저장소의 손상을 입지 않으면 트랜잭션이 손실되지 않습니다. 로 설정된 경우Remote_write, Commits는 현재 동기 대기의 답변이 트랜잭션의 커밋 레코드를 수신하고 대기 운영 체제에 기록 할 때까지 기다립니다. 그러나 데이터가 반드시 대기에 내구성있는 스토리지에 도달 할 필요는 없습니다. 이 설정은 대기 인스턴스 인 경우에도 데이터 보존을 보장하기에 충분합니다postgresql충돌이 발생했지만 대기 시스템 수준의 충돌이 발생하는 경우에는 그렇지 않습니다.

동기 복제가 사용되는 경우 일반적으로 로컬 플러시로 디스크로의 플러시 및 WAL 레코드의 복제를 기다리거나 트랜잭션이 비동기 적으로 커밋 할 수 있도록 합리적입니다. 그러나 설정Local는 로컬 플러시로 디스크를 기다릴 때까지 대기하지만 동기식 복제는 아닙니다. 만약에synchronous_standby_names설정되지 않음, 설정on, Remote_writeandLocal모두 동일한 동기화 수준을 제공합니다 : 트랜잭션은 로컬 플러시를 디스크까지 대기 할 때만 대기합니다.

이 매개 변수는 언제든지 변경할 수 있습니다. 하나의 트랜잭션에 대한 동작은 유도 할 때 실제로 설정에 따라 결정됩니다. 그러므로 일부 트랜잭션이 동기식과 다른 트랜잭션을 비동기 적으로 커밋하도록하는 것이 가능하고 유용합니다. 예를 들어, 기본값이 반대 일 때 단일 다중 기능 트랜잭션을 비동력있게 커밋하려면로컬 SYNCHRONOUS_COMMIT 설정거래 내롤 토토.

Wal_Sync_Method(enum)

WAL 업데이트를 디스크로 강제하는 데 사용되는 방법. 만약에fsync꺼져 있다면 WAL 파일 업데이트는 전혀 강제되지 않기 때문에이 설정은 관련이 없습니다. 가능한 가치는 다음과 같습니다.

  • Open_Datasync( 쓰기Open ()옵션O_DSYNC)

  • fdatasync(Callfdatasync ()각 커밋롤 토토)

  • fsync(Callfsync ()각 커밋롤 토토)

  • fsync_writethrough(Callfsync ()각 커밋마다 디스크 쓰기 캐시의 쓰기 말을 강요)

  • Open_Sync(WAL 파일 쓰기Open ()옵션O_SYNC)

theOpen_* 옵션도 사용o_direct사용 가능한 경우. 이러한 모든 선택이 모든 플랫폼에서 사용할 수있는 것은 아닙니다. 기본값은 위의 목록에서 플랫폼에서 지원하는 첫 번째 방법입니다.fdatasync는 Linux의 기본값입니다. 기본값이 반드시 이상적인 것은 아닙니다. 충돌 안전 구성을 만들거나 최적의 성능을 달성하기 위해이 설정 또는 시스템 구성의 다른 측면을 변경해야 할 수도 있습니다. 이러한 측면은에서 논의됩니다.PostgreSQL : 문서 : 9.5 : 사설 토토성. 이 매개 변수는롤 토토만 설정할 수 있습니다.postgresql.conf파일 또는 서버 명령 줄에.

full_page_writes(부울)

이 매개 변수가 켜져 있으면PostgreSQLServer는 체크 포인트 후 해당 페이지의 첫 번째 수정 중에 각 디스크 페이지의 전체 내용을 WAL에 씁니다. 운영 체제 충돌 중에 처리중인 페이지 쓰기가 부분적으로 만 완료 될 수 있으므로 구식 및 새 데이터가 혼합되어있는 온 디스크 페이지로 이어질 수 있기 때문에 이는 필요합니다. WAL에 정상적으로 저장된 행 수준 변경 데이터는 충돌 후 복구 중에 그러한 페이지를 완전히 복원하기에 충분하지 않습니다. 전체 페이지 이미지를 저장하면 페이지를 올바르게 복원 할 수 있지만 WAL에 작성 해야하는 데이터의 양을 인상하는 대가로 보장됩니다. (Wal Replay는 항상 체크 포인트롤 토토 시작하기 때문에 체크 포인트 후 각 페이지의 첫 번째 변경 중에이를 수행하는 것으로 충분합니다. 따라서 전체 페이지 쓰기 비용을 줄이는 한 가지 방법은 체크 포인트 간격 매개 변수를 늘리는 것입니다.).

이 매개 변수를 끄면 정상 작동 속도를 끄려면 시스템 고장 후 복귀 할 수없는 데이터 손상 또는 무음 데이터 손상으로 이어질 수 있습니다. 위험은 끄는 것과 비슷합니다fsync, 더 작지만 해당 매개 변수에 권장되는 것과 동일한 상황에 따라 꺼져야합니다.

이 매개 변수를 끄는 것은 PITR (Point-in-Time Recovery)을위한 WAL 아카이빙의 사용에 영향을 미치지 않습니다 (참조토토 사이트 순위 PostgreSQL : 문서 : 9.5 : 연속 보관 및 시점 복구 (PITR)).

이 매개 변수는롤 토토만 설정할 수 있습니다postgresql.conf파일 또는 서버 명령 줄에. 기본값은on.

Wal_log_hints(부울)

이 매개 변수 일 때on, ThePostgreSQLServer는 체크 포인트 후 해당 페이지의 첫 번째 수정 중에 각 디스크 페이지의 전체 내용을 WAL에 씁니다.

데이터 체크섬이 활성화되면 힌트 비트 업데이트는 항상 월드 로그드 되고이 설정은 무시됩니다. 데이터베이스가 데이터 체크섬을 활성화 한 경우이 설정을 사용하여 추가 월 로깅이 얼마나 발생할 것인지 테스트 할 수 있습니다.

이 매개 변수는 서버 시작시에만 설정할 수 있습니다. 기본값은입니다.OFF.

Wal_compression(부울)

이 매개 변수 일 때on, ThePostgreSQL서버는 WAL에 작성된 전체 페이지 이미지를 압축합니다full_page_writes기본 백업 중 또는 기간 중입니다. WAL 재생 중에 압축 페이지 이미지가 압축 해제됩니다. 기본값은입니다.OFF. 수퍼 유저만이 설정을 변경할 수 있습니다.

이 매개 변수를 켜는이 매개 변수를 켜는 것은 복귀 할 수없는 데이터 손상의 위험을 증가시키지 않으면 서 WAL 볼륨을 줄일 수 있지만 WAL 로깅 중 압축에 소비 된 추가 CPU의 비용으로 WAL 재생 중 압축에 대한 추가 CPU 비용으로..

Wal_buffers(Integer)

아직 디스크에 기록되지 않은 WAL 데이터에 사용되는 공유 메모리의 양. -1의 기본 설정은의 1/32 (약 3%)와 같은 크기를 선택합니다.shared_buffers이지만64KB또는 하나의 WAL 세그먼트의 크기 이상, 일반적으로16MB. 자동 선택이 너무 크거나 너무 작지만이 값은 수동으로 설정할 수 있지만보다 양수 값이32KB32KB. 이 매개 변수는 서버 시작롤 토토만 설정할 수 있습니다.

WAL 버퍼의 내용은 모든 트랜잭션 커밋롤 토토 디스크에 기록되므로 매우 큰 값은 상당한 이점을 제공하지 않을 것입니다. 그러나이 값을 적어도 몇 메가 바이트로 설정하면 많은 고객이 한 번에 커밋하는 바쁜 서버롤 토토 쓰기 성능을 향상시킬 수 있습니다. -1의 기본 설정으로 선택한 자동 조정은 대부분의 경우 합리적인 결과를 제공해야합니다.

Wal_writer_delay(정수)

WAL 작가의 활동 라운드 간의 지연을 지정합니다. 각 라운드에서 작가는 WAL을 디스크로 플러시합니다. 그런 다음Wal_writer_delay밀리 초, 반복. 기본값은 200 밀리 초입니다 (200ms). 많은 시스템에서 수면 지연의 효과적인 해상도는 10 밀리 초입니다. 환경Wal_writer_delay10의 배수가 아닌 값에 대한 값은 다음 높이 다중 10 개로 설정하는 것과 동일한 결과를 가질 수 있습니다.이 매개 변수는롤 토토만 설정할 수 있습니다.postgresql.conf파일 또는 서버 명령 줄에.

Commit_Delay(Integer)

Commit_DelayWAL 플러시가 시작되기 전에 마이크로 초로 측정 된 시간 지연을 추가합니다. 이는 시스템 부하가 주어진 간격 내롤 토토 추가 트랜잭션이 커밋 될 수있을 정도로 높은 경우 단일 월 플러시를 통해 더 많은 수의 트랜잭션이 커밋 할 수 있도록하여 그룹 커밋 처리량을 향상시킬 수 있습니다. 그러나 대기 시간도 최대 증가합니다.Commit_Delay각 월 플러시에 대한 마이크로 초. 다른 거래가 커밋 할 준비가되지 않으면 지연이 낭비되기 때문에 최소한 지연이 수행됩니다.Commit_Siblings플러시가 시작될 때 다른 트랜잭션이 활성화됩니다. 또한 지연이 수행되지 않음fsync비활성화되었습니다. 기본값Commit_Delay는 0입니다 (지연 없음). 수퍼 유저만이 설정을 변경할 수 있습니다.

inPostgreSQL9.3 이전의 릴리스,Commit_Delay다르게 행동하고 훨씬 덜 효과적이었습니다. 모든 월 플러시보다는 커밋에만 영향을 미쳤으며 WAL 플러시가 더 빨리 완료된 경우에도 구성된 전체 지연을 기다렸습니다. 시작PostgreSQL9.3, 구성된 구간을 대기 할 준비가 된 첫 번째 프로세스 인 후속 프로세스는 리더가 플러시 작업을 완료 할 때까지 대기합니다..

Commit_Siblings(Integer)

수행하기 전에 필요한 최소 동시 공개 트랜잭션 수Commit_Delay지연. 값이 커지면 지연 간격 동안 적어도 하나의 다른 트랜잭션이 커밋 할 준비가되어있을 가능성이 높습니다. 기본값은 5 개의 거래입니다.

18.5.2. 검문소

Checkpoint_Timeout(Integer)

자동 WAL 체크 포인트 사이의 최대 시간, 초. 유효한 범위는 30 초롤 토토 1 시간 사이입니다. 기본값은 5 분입니다 (5min). 이 매개 변수를 늘리면 충돌 복구에 필요한 시간이 증가 할 수 있습니다. 이 매개 변수는롤 토토만 설정할 수 있습니다.postgresql.conf파일 또는 서버 명령 줄에.

checkpoint_completion_target(플로팅 포인트)

체크 포인트 사이의 총 시간의 일부로 체크 포인트 완료의 대상을 지정합니다. 기본값은 0.5입니다. 이 매개 변수는롤 토토만 설정할 수 있습니다.postgresql.conf파일 또는 서버 명령 줄에.

Checkpoint_warning(Integer)

체크 포인트 세그먼트 파일의 채우기로 인한 체크 포인트 가이 여러 초보다 더 가깝게 발생하는 경우 서버 로그에 메시지를 작성합니다 (max_wal_size제기해야합니다). 기본값은 30 초입니다 (30S). 0은 경고를 비활성화합니다. 이면 경고가 발생하지 않습니다.Checkpoint_Timeout보다 작습니다Checkpoint_warning. 이 매개 변수는롤 토토만 설정할 수 있습니다.postgresql.conf파일 또는 서버 명령 줄에.

max_wal_size(정수)

자동 체크 포인트 중에 WAL이 성장할 수 있도록 최대 크기. 이것은 소프트 한계입니다. 월 크기를 초과 할 수 있습니다max_wal_size심한 부하와 같은 특수한 상황롤 토토 실패한archive_command또는 HighWal_Keep_Segments설정. 기본값은 1GB입니다. 이 매개 변수를 늘리면 충돌 복구에 필요한 시간이 증가 할 수 있습니다. 이 매개 변수는롤 토토만 설정할 수 있습니다.postgresql.conf파일 또는 서버 명령 줄에.

min_wal_size(정수)

WAL 디스크 사용 이이 설정 아래에 머무르는 한 오래된 WAL 파일은 항상 제거되지 않고 체크 포인트에서 향후 사용하기 위해 재활용됩니다. 예를 들어 대형 배치 작업을 실행할 때 WAL 사용의 스파이크를 처리하기에 충분한 웨일 스페이스가 예약되어 있는지 확인하는 데 사용할 수 있습니다. 기본값은 80MB입니다. 이 매개 변수는롤 토토만 설정할 수 있습니다.postgresql.conf파일 또는 서버 명령 줄에.

18.5.3. 아카이빙

archive_mode(enum)

언제archive_mode활성화되고, 완료된 월 세그먼트가 설정하여 아카이브 스토리지로 전송archive_command. 외에OFF, 비활성화하려면 두 가지 모드가 있습니다.on항상. 정상 작동 중에는 두 모드간에 차이가 없지만로 설정된 경우항상WAL Archiver는 아카이브 복구 또는 대기 모드 중에도 활성화되어 있습니다. 안에항상모드, 아카이브에서 복원되거나 스트리밍 복제로 스트리밍 된 모든 파일이 보관됩니다 (다시). 보다섹션 25.2.9자세한 내용.

archive_modearchive_command별도의 변수이므로archive_command아카이빙 모드를 떠나지 않고 변경할 수 있습니다. 이 매개 변수는 서버 시작롤 토토만 설정할 수 있습니다.archive_mode을 활성화 할 수 없습니다.Wal_level로 설정되었습니다최소.

archive_command(String)

로컬 쉘 명령을 실행하여 완성 된 WAL 파일 세그먼트를 보관합니다. 어느%P문자열의 파일의 경로 이름으로 아카이브로 대체됩니다.%f는 파일 이름 만 대체됩니다. (경로 이름은 서버의 작업 디렉토리, 즉 클러스터의 데이터 디렉토리와 관련이 있습니다.) 사용%%실제를 포함하려면%명령의 문자. 명령이 성공한 경우에만 제로 출구 상태를 반환하는 것이 중요합니다. 자세한 내용은 참조섹션 24.3.1.

이 매개 변수는롤 토토만 설정할 수 있습니다.postgresql.conf파일 또는 서버 명령 줄에. 이 아니라면 무시됩니다.archive_mode서버 스타트롤 토토 활성화되었습니다. 만약에archive_command빈 문자열 (기본값)입니다archive_mode가 활성화되어 있으며, WAL 아카이빙은 일시적으로 비활성화되었지만 서버는 명령이 곧 제공 될 것으로 예상하여 WAL 세그먼트 파일을 계속 축적합니다. 환경archive_command예를 들어 True를 반환하는 것 외에는 아무것도하지 않는 명령으로,/bin/true(remWindows에서)는 효과적으로 아카이브를 비활성화하지만 아카이브 복구에 필요한 책치 파일의 체인을 중단하므로 비정상적인 상황에서만 사용해야합니다.

archive_timeout(Integer)

thearchive_command완성 된 WAL 세그먼트에 대해서만 호출됩니다. 따라서 서버가 WAL 트래픽이 거의 없거나 (또는 ​​그 자체가있는 경우에도 느슨한 기간이있는 경우) 트랜잭션 완료와 아카이브 스토리지에서 안전한 기록 사이에 긴 지연이 발생할 수 있습니다. 구식의 구식 데이터를 제한하려면 설정할 수 있습니다archive_timeout서버가 새로운 WAL 세그먼트 파일로 주기적으로 전환하도록 강제합니다. 이 매개 변수가 0보다 크면 서버는 마지막 세그먼트 파일 스위치 이후 몇 초가 경과 될 때마다 새 세그먼트 파일로 전환되며 단일 체크 포인트를 포함한 데이터베이스 활동이 있습니다. (증가Checkpoint_Timeout유휴 시스템에서 불필요한 체크 포인트를 줄입니다.) 참고 강제 스위치로 인해 조기에 닫힌 아카이브 파일은 여전히 ​​완전 전체 파일과 동일합니다. 따라서 매우 짧은 것을 사용하는 것은 현명하지 않습니다archive_timeout- 아카이브 스토리지를 팽창시킬 것입니다.archive_timeout1 분 정도의 설정은 일반적으로 합리적입니다. 마스터 서버에서 데이터를 그보다 더 빨리 복사하려면 아카이브 대신 스트리밍 복제를 사용하는 것이 좋습니다. 이 매개 변수는롤 토토만 설정할 수 있습니다.postgresql.conf파일 또는 서버 명령 줄에.