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

18.5. 미리 토토 결과 작성

참조PostgreSQL : 문서 : 9.2 : 토토 결과 구성WAL 및 체크 포인트 튜닝에 대한 세부 사항.

18.5.1. 토토 결과

Wal_level(enum)

Wal_level얼마를 결정합니다 정보는 WAL에 기록됩니다. 기본값은입니다.최소충돌 또는 즉각에서 복구하는 데 필요한 정보 일시 휴업.아카이브로깅 추가 WAL 아카이브에 필요하고hot_standby추가 정보 추가 대기 서버에서 읽기 전용 쿼리를 실행해야합니다. 이 매개 변수는 서버 시작에서만 토토 결과할 수 있습니다.

in최소레벨, 월-로깅 일부 대량 작업 중 안전하게 건너 뛸 수 있습니다. 해당 작업을 훨씬 빨리 만드십시오 (참조섹션 14.4.7). 이 최적화를 적용 할 수있는 작업 포함하다:

테이블 작성
색인 생성
클러스터
COPY테이블로 동일하게 만들어 지거나 잘 렸습니다 거래
그러나 최소한의 WAL에는 충분하지 않습니다 기본 백업에서 데이터를 재구성하는 정보 그리고 Wal Logs, 그래서 어느 쪽이든아카이브또는hot_standby레벨은 활성화하려면 사용해야합니다 월 보관 (archive_mode) 스트리밍 복제.

inhot_standby레벨, the 동일한 정보가로 기록됩니다.아카이브와 정보가 필요합니다 트랜잭션 실행 상태를 재구성합니다 월. 대기 서버에서 읽기 전용 쿼리를 활성화하려면Wal_level로 토토 결과해야합니다hot_standby기본 및hot_standby대기에서 활성화해야합니다. 거기에서 생각됩니다 성능의 차이는 거의 없습니다 사용hot_standbyand아카이브레벨이 있으므로 피드백을 환영합니다 모든 생산 영향이 눈에 띄게됩니다.

fsync(부울)

이 매개 변수가 켜져 있으면토토 결과서버는 만들려고합니다 업데이트는 물리적으로 디스크에 작성됩니다 발행fsync ()시스템 전화 또는 다양한 동등한 방법 (Wal_sync_method). 이것은 데이터베이스 클러스터가 운영 체제 또는 하드웨어 후 일관된 상태 충돌.

끄는 동안fsyncIS 종종 성능 이점으로 인해 발생할 수 있습니다 전원이 발생했을 때 복구 할 수없는 데이터 손상 고장 또는 시스템 충돌. 따라서 그것은 단지 권장됩니다 끄기fsync쉽게 할 수 있다면 외부 데이터에서 전체 데이터베이스를 재현하십시오.

끄기위한 안전한 상황의 예fsync초기 포함 백업 파일에서 새 데이터베이스 클러스터의로드 데이터 배치를 처리하기 위해 데이터베이스 클러스터 사용 그 후 데이터베이스는 버려집니다 재생성 또는 읽기 전용 데이터베이스 클론 용 자주 재현되며 장애 조치에 사용되지 않습니다. 높은 품질 하드웨어만으로는 충분한 정당성이 아닙니다 끄기 위해fsync.

많은 상황에서 끄기synchronous_commit비 임계 거래는 많은 것을 제공 할 수 있습니다 끄는 잠재적 성능 이점fsync, 데이터의 승무원 위험없이 부패.

fsync에서만 토토 결과할 수 있습니다토토 결과.conf파일 또는 서버 명령 줄. 이 매개 변수를 끄면 끄는 고려full_page_writes.

synchronous_commit(enum)

트랜잭션 커밋이 WAL을 기다리는지 여부를 지정합니다 명령이 반환되기 전에 디스크에 기록 될 레코드 에이"성공"고객. 유효한 값은on, Remote_write, LocalOFF. 기본값이고 안전한 토토 결과은입니다.on. 언제OFF, 성공이보고 될 때 사이에 지연이있을 수 있습니다. 클라이언트와 거래가 실제로 보장되는 경우 서버 충돌로부터 안전합니다. (최대 지연은입니다 세 번Wal_writer_delay.) 같지 않은fsync, 토토 결과 이 매개 변수는OFF그렇지 않습니다 데이터베이스 불일치 위험을 만듭니다 : 운영 시스템 또는 데이터베이스 충돌로 인해 최근 일부가 발생할 수 있습니다 추정 된 것으로 추정되는 거래가 손실되었지만 데이터베이스 상태는 거래는 깨끗하게 중단되었습니다. 그래서, 회전synchronous_commitOFF가 될 수 있습니다 성능이 더 중요한 경우 유용한 대안 a의 내구성에 대한 정확한 확실성보다 거래. 자세한 내용은 참조섹션 29.3.

ifsynchronous_standby_names이 매개 변수도 토토 결과되어 있습니다 트랜잭션 저작 여부가 대기 할 것인지 통제합니다 트랜잭션의 WAL 레코드는 복제됩니다 대기 서버. 로 토토 결과된 경우on, 커밋은 현재의 답장이 될 때까지 기다립니다 동기 대기는 커밋을 받았음을 나타냅니다 트랜잭션 기록 및 디스크로 플러시했습니다. 이것 둘 다하지 않으면 거래가 손실되지 않도록합니다 기본 및 대기는 데이터베이스의 손상을 입습니다 저장. 로 설정된 경우Remote_write, Commits는 a까지 기다립니다 현재 동기 대기에서 답장을 표시하면이를 나타냅니다 거래의 커밋 기록을 받았습니다 대기 운영 체제에 기록했지만 데이터는 반드시 안정적인 스토리지에 도달 할 필요는 없습니다 대기. 이 설정은 데이터를 보장하기에 충분합니다 대기 인스턴스에도 보존토토 결과충돌이 있었지만 그렇지 않은 경우 대기는 운영 시스템 수준의 충돌을 겪습니다.

동기 복제가 사용될 때 일반적으로 두 로컬 플러시를 기다릴 때까지 합리적입니다. WAL 레코드의 디스크 및 복제 또는 허용 비동기 적으로 커밋하는 거래. 그러나, 환경Local로컬 플러시 디스크를 기다리기를 원하는 거래, 동기 복제는 아닙니다. 만약에synchronous_standby_names가 토토 결과되지 않았습니다 토토 결과on, Remote_writeandLocal모두 동일한 동기화를 제공합니다 레벨 : 트랜잭션은 로컬 플러시를 기다릴 때만 기다립니다 디스크.

이 매개 변수는 언제든지 변경할 수 있습니다. 그만큼 하나의 거래에 대한 행동은 유입 될 때 실제로 토토 결과. 그러므로 일부 거래를 할 수 있고 유용합니다 동기식과 다른 사람들은 비동기 적으로. 예를 들어 단일 다중 기능 트랜잭션 커밋을 만듭니다 비동기 적으로 기본값이 반대 일 때, 문제로컬 SYNCHRONOUS_COMMIT를 토토 결과하십시오 끄다거래 내에서.

Wal_Sync_Method(enum)

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

  • Open_Datasync(WAR WAL 가있는 파일Open ()옵션O_DSYNC)

  • fdatasync(Callfdatasync ()각각 저지르다)

  • fsync(Callfsync ()각 커밋에서)

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

  • Open_Sync(WAR WAL 가있는 파일Open ()옵션O_SYNC)

theOpen_* 옵션도 사용o_direct사용 가능한 경우. 전부는 아닙니다 이러한 선택 중 모든 플랫폼에서 사용할 수 있습니다. 그만큼 기본값은 위 목록의 첫 번째 메소드입니다. 플랫폼에서 지원합니다.fdatasyncLinux의 기본값입니다. 그만큼 기본값은 반드시 이상적인 것은 아닙니다. 필요할 수도 있습니다 이 설정 또는 시스템의 다른 측면을 변경하려면 충돌 안전을 만들기위한 구성 구성 또는 최적의 성능을 달성합니다. 이것들 측면은에서 논의됩니다.섹션 29.1. 이 매개 변수 에서만 토토 결과할 수 있습니다.토토 결과.conf파일 또는 서버에서 명령 줄.

full_page_writes(부울)

이 매개 변수가 켜져 있으면토토 결과서버 전체를 작성합니다 첫 번째 동안 각 디스크 페이지의 내용 체크 포인트 후 해당 페이지의 수정. 이것은 중이 중에있는 페이지가 작성되기 때문에 필요합니다. 운영 체제 충돌은 부분적으로 만 완료 될 수 있으며 오래된 구형과 새로운 데이터. 줄 수준 변경 데이터는 일반적으로 저장된 데이터입니다 WAL은 그러한 페이지를 완전히 복원하기에 충분하지 않습니다. 충돌 후 회복 중에. 전체 페이지 이미지를 저장합니다 페이지를 올바르게 복원 할 수 있음을 보장하지만 필요한 데이터 금액을 인상하는 대가로 Wal에 기록됩니다. (WAL Replay는 항상 시작하기 때문에 체크 포인트, 체크 포인트 후 각 페이지의 첫 번째 변경. 그러므로, 전체 페이지 쓰기 비용을 줄이는 한 가지 방법은 체크 포인트 간격 매개 변수를 늘리십시오.)

이 매개 변수를 끄기 속도 정상 작동, 그러나 복귀 할 수없는 데이터 손상으로 이어질 수 있습니다. 또는 시스템 고장 후 침묵 데이터 손상. 그만큼 위험은 끄는 것과 비슷합니다fsync는 더 작지만 같은 상황에 따라 꺼져 있습니다 해당 매개 변수에 권장됩니다.

이 매개 변수를 끄는 것은 WAL 사용에 영향을 미치지 않습니다. PITR (Point-in-Time Recovery) 보관 (참조섹션 24.3).

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

Wal_buffers(정수)

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

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

이 매개 변수를 높이면토토 결과더 많은 요청System V공유 메모리 운영 체제의 기본 구성보다 허용. 보다섹션 17.4.1해당 매개 변수를 조정하는 방법에 대한 정보 필요한.

Wal_writer_delay(정수)

활동 라운드 간의 지연을 지정합니다 월 작가. 각 라운드에서 작가는 월을 플러시합니다 디스크. 그런 다음Wal_writer_delaymilliseconds 및 반복. 기본값은 200 밀리 초입니다 (200ms). 많은 사람들에게 주목하십시오 시스템, 수면 지연의 효과적인 해상도는 10입니다 밀리 초; 환경Wal_writer_delay10 명 중 여러 명이 설정과 동일한 결과를 가질 수 있습니다. 다음으로 10의 더 높은 배수로.이 매개 변수는 에서만 설정됩니다.토토 결과.conf파일 또는 서버에서 명령 줄.

Commit_Delay(정수)

트랜잭션에 대한 커밋 데이터가 플러시 될 때 디스크, 그 당시 준비된 추가 커밋도 플러시.Commit_Delay추가 a 트랜잭션 전에 마이크로 초로 토토 결과된 시간 지연 WAL 버퍼를 디스크로 플러시하려고 시도합니다. 0이 아닌 지연으로 인해 더 많은 거래를 할 수 있습니다 시스템 부하가 충분히 높으면 하나의 플러시 작동 만 그 추가 거래는 커밋 할 준비가되었습니다 주어진 간격 내에서. 그러나 지연은 낭비됩니다 다른 거래가 커밋 할 준비가되지 않으면. 따라서 지연은 적어도 만 수행됩니다.Commit_Siblings기타 트랜잭션은 서버의 순간에 활성화됩니다 프로세스는 커밋 기록을 작성했습니다. 기본값Commit_Delay는 0입니다 (지연 없음). 모든 보류중인 커밋 데이터는 매번 작성되므로 이 설정에 관계없이 플러시하면 추가하는 것은 드문 일입니다. 이 매개 변수를 증가시킴으로써 지연이 실제로 향상됩니다 성능.

Commit_Siblings(Integer)

동시 공개 트랜잭션의 최소 수 수행하기 전에Commit_Delay지연. 더 큰 가치가 만듭니다 적어도 하나의 다른 거래가 지연 간격 동안 커밋 할 준비가 되십시오. 그만큼 기본값은 5 개의 거래입니다.

18.5.2. 검문소

Checkpoint_segments(Integer)

자동으로의 로그 파일 세그먼트 수 WAL 체크 포인트 (각 세그먼트는 일반적으로 16 메가 바이트입니다). 기본값은 세 세그먼트입니다. 이 매개 변수를 증가시킵니다 충돌에 필요한 시간을 늘릴 수 있습니다 회복. 이 매개 변수는에서만 토토 결과할 수 있습니다.토토 결과.conf파일 또는 서버 명령 줄.

Checkpoint_Timeout(정수)

자동 WAL 체크 포인트 간의 최대 시간 초. 기본값은 5 분입니다 (5min). 이 매개 변수를 늘릴 수 있습니다 충돌 회복에 필요한 시간을 늘리십시오. 이 매개 변수는에서만 토토 결과할 수 있습니다.토토 결과.conf파일 또는 서버에서 명령 줄.

checkpoint_completion_target(플로팅 포인트)

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

Checkpoint_warning(정수)

체크 포인트 인 경우 서버 토토 결과에 메시지를 작성하십시오 체크 포인트 세그먼트 파일의 채우기 때문에 발생합니다 이 여러 초보다 더 가깝습니다 (이것은 제안합니다 저것Checkpoint_segments제기). 기본값은 30 초입니다 (30S). 0은 경고를 비활성화합니다. 이것 매개 변수는에서만 토토 결과할 수 있습니다.토토 결과.conf파일 또는 서버에서 명령 줄.

18.5.3. 아카이빙

archive_mode(부울)

언제archive_mode활성화, 완성 된 WAL 세그먼트는 아카이브 스토리지로 전송됩니다 환경archive_command. archive_modearchive_command별도의 변수입니다 저것archive_command할 수 있습니다 아카이빙 모드를 떠나지 않고 변경되었습니다. 이 매개 변수 서버 시작시에만 토토 결과할 수 있습니다.archive_mode을 활성화 할 수 없습니다.Wal_level로 토토 결과되었습니다최소.

archive_command(String)

완성 된 A를 보관하기 위해 실행하는 쉘 명령 WAL 파일 세그먼트. 어느%p문자열은 파일의 경로 이름으로 대체됩니다. 아카이브 및 모든%f교체됩니다 파일 이름만으로. (경로 이름은 서버의 작업 디렉토리, 즉 클러스터 데이터 디렉토리.) 사용%%실제%문자 명령. 명령이 0을 반환하는 것이 중요합니다. 성공한 경우에만 상태를 종료하십시오. 자세한 내용은 참조섹션 24.3.1.

이 매개 변수는에서만 토토 결과할 수 있습니다토토 결과.conf파일 또는 서버에서 명령 줄. 이 아니라면 무시됩니다.archive_mode서버 스타트에서 활성화되었습니다. 만약에archive_command비어 있습니다 문자열 (기본값) whilearchive_mode가 활성화되고 Wal 아카이빙은 IS입니다 일시적으로 비활성화되었지만 서버는 계속됩니다 예상대로 월 세그먼트 파일을 축적합니다 명령이 곧 제공됩니다. 환경archive_command명령에 진실로 돌아 오는 것 외에는 아무것도 (예 :/bin/true(remon Windows), 효과적으로 아카이브를 비활성화하지만 깨진다 아카이브 복구에 필요한 WAL 파일의 체인이 있으므로 비정상적인 상황에서만 사용해야합니다.

archive_timeout(정수)

thearchive_command완성 된 WAL 세그먼트에 대해서만 호출됩니다. 따라서 if 서버는 WAL 트래픽이 거의 없거나 느슨해집니다 그것이 그렇게하는 기간), 긴 지연이있을 수 있습니다. 거래 완료와 안전 사이 아카이브 스토리지에서 녹음. 구아가없는 나이를 제한합니다 데이터가 될 수 있습니다. 설정할 수 있습니다archive_timeout서버를 강제하기 위해 새 WAL 세그먼트 파일로 주기적으로 전환하십시오. 이렇게하면 매개 변수는 0보다 크고 서버는 이 몇 초가있을 때마다 새로운 세그먼트 파일 마지막 세그먼트 파일 스위치 이후 경과했으며 단일을 포함한 데이터베이스 활동이었습니다 검문소. (증가Checkpoint_Timeout불필요한 감소 유휴 시스템의 검문소.) 아카이브 된 파일 강제 스위치로 인해 일찍 닫혀 있습니다. 완전히 전체 파일과 같은 길이. 따라서, 그것은 매우 짧은 것을 사용하는 것은 현명하지 않습니다​​archive_timeout- 그것은 당신을 부풀릴 것입니다 아카이브 스토리지.archive_timeout1 분 정도의 토토 결과은 일반적으로 합리적입니다. 너 대신 스트리밍 복제를 고려해야합니다 아카이빙, 마스터에서 데이터를 복사하려면 그보다 더 빨리 서버. 이 매개 변수는 가능합니다 에 토토 결과토토 결과.conf파일 또는 서버 명령 줄에서.