이 설정 조정에 대한 추가 정보는 다음을 참조하세요.사설 토토 : 문서 : 9.3 : WAL 구성.
wal_level얼마나 많은지 결정합니다. 정보는 WAL에 기록됩니다. 기본값은최소, 필요한 정보만 기록합니다. 충돌로부터 복구하거나 즉시 종료합니다.아카이브WAL 보관에 필요한 로깅을 추가하고hot_standby추가 정보 추가 대기 서버에서 읽기 전용 쿼리를 실행하는 데 필요합니다. 이 매개변수는 서버 시작 시에만 설정할 수 있습니다.
에최소레벨, 일부 WAL 로깅 대량 작업을 안전하게 건너뛸 수 있습니다. 훨씬 더 빠른 작업(참조섹션 14.4.7). 의 운영 이 최적화를 적용할 수 있는 항목은 다음과 같습니다.
| 다음으로 테이블 생성 |
| 색인 생성 |
| 클러스터 |
| 복사생성된 테이블에 또는 동일한 트랜잭션에서 잘림 |
에hot_standby레벨, 동일 정보는 다음과 같이 기록됩니다.아카이브, 그리고 실행 상태를 재구성하는 데 필요한 정보 WAL의 거래. 대기에서 읽기 전용 쿼리를 활성화하려면 서버,wal_level다음으로 설정되어야 함hot_standby기본 및hot_standby대기 모드에서 활성화되어야 합니다. 거의 없다고 생각된다. 사용 간의 측정 가능한 성능 차이hot_standby그리고아카이브레벨이므로 생산에 영향이 있다면 피드백을 환영합니다. 눈에 띄는.
이 매개변수가 켜져 있으면,와이즈 토토서버는 다음을 확인하려고 노력할 것입니다.
업데이트는 다음을 실행하여 디스크에 물리적으로 기록됩니다.fsync()시스템 호출 또는 이에 상응하는 다양한
메소드(참조wal_sync_method).
이렇게 하면 데이터베이스 클러스터가 일관된 상태로 복구될 수 있습니다.
운영 체제 또는 하드웨어 충돌 후 상태.
끄는 동안fsync종종 성능상의 이점이 있지만 이로 인해 데이터를 복구할 수 없게 될 수 있습니다. 정전 또는 시스템 충돌로 인한 손상. 그리하여 그것은 끄는 것이 좋습니다.fsync당신이 외부 데이터에서 전체 데이터베이스를 쉽게 다시 만들 수 있습니다.
전원을 꺼도 안전한 상황의 예fsync새 데이터베이스의 초기 로드 포함 처리를 위해 데이터베이스 클러스터를 사용하여 백업 파일에서 클러스터 데이터베이스가 폐기된 후 데이터 배치 재생성되거나 재생성되는 읽기 전용 데이터베이스 복제본의 경우 자주 사용되며 장애 조치에는 사용되지 않습니다. 고품질 하드웨어 만으로는 전원을 끌 충분한 근거가 되지 않습니다.fsync.
변경 시 안정적인 복구를 위해fsyncoff to on, 모두 강제로 실행해야 합니다. 커널의 버퍼를 내구성 있는 저장소로 수정했습니다. 이것은 할 수 있습니다 클러스터가 종료되는 동안 또는 다음을 실행하여 fsync가 켜져 있는 동안initdb --sync-only, 실행 중동기화, 파일 시스템 마운트 해제 또는 재부팅 서버.
많은 상황에서 꺼짐동기_커밋중요하지 않은 트랜잭션의 경우 많은 잠재력을 제공할 수 있습니다. 끄면 성능상의 이점이 있습니다.fsync, 데이터 손상의 위험 없이.
fsync다음에서만 설정할 수 있습니다.와이즈 토토.conf파일 또는 서버 명령줄에서. 이 매개변수를 끄는 경우 끄는 것도 고려해 보세요.full_page_writes.
트랜잭션 커밋이 WAL 레코드를 기다릴지 여부를 지정합니다 명령이 a를 반환하기 전에 디스크에 기록됩니다."성공"클라이언트에 표시됩니다. 유효한 값은 다음과 같습니다.켜짐, remote_write, 현지및꺼짐. 기본적이고 안전한 설정은 다음과 같습니다.켜짐. 언제꺼짐, 다음 시점 사이에 지연이 있을 수 있습니다. 성공이 클라이언트에 보고되고 트랜잭션이 완료되면 서버 충돌로부터 안전하다는 것이 실제로 보장됩니다. (최대 지연은 세 번입니다.wal_writer_delay.) 달리fsync, 이 매개변수를 다음으로 설정합니다.꺼짐하지 않습니다 데이터베이스 불일치 위험 생성: 운영 체제 또는 데이터베이스 충돌로 인해 최근 커밋된 것으로 추정되는 일부가 발생할 수 있습니다. 트랜잭션이 손실되지만 데이터베이스 상태는 해당 거래가 완전히 중단된 것과 같습니다. 그래서 돌아서서동기_커밋off가 유용할 수 있습니다 정확한 확실성보다 성능이 더 중요한 경우의 대안 거래의 내구성에 대해. 자세한 내용은 참조PostgreSQL : 문서 : 9.3 : 비동기 스포츠 토토.
만약synchronous_standby_names이 설정되면 이 매개변수는 거래 여부도 제어합니다. 커밋은 트랜잭션의 WAL 레코드가 완료될 때까지 기다립니다. 대기 서버에 복제됩니다. 으로 설정된 경우켜짐, 커밋은 현재 응답이 올 때까지 기다립니다. 동기 대기는 커밋 레코드를 수신했음을 나타냅니다. 트랜잭션을 처리하고 디스크에 플러시합니다. 이는 다음을 보장합니다. 기본 및 대기 모두 문제가 발생하지 않는 한 트랜잭션은 손실되지 않습니다. 데이터베이스 저장소가 손상되었습니다. 으로 설정된 경우remote_write, 커밋은 다음 사용자의 응답이 있을 때까지 기다립니다. 현재 동기 대기는 거래 기록을 커밋하고 이를 기록합니다. 대기 운영 체제이지만 데이터가 반드시 필요한 것은 아닙니다. 대기 상태에서 안정적인 저장소에 도달했습니다. 이 설정이면 충분합니다 대기 인스턴스가 있는 경우에도 데이터 보존을 보장하기 위해포스트그레SQL충돌이 발생했지만 그렇지 않았습니다. 대기 상태에서 운영 체제 수준 충돌이 발생한 경우.
동기 복제가 사용 중일 때 일반적으로 디스크에 대한 로컬 플러시와 WAL 레코드 복제 또는 트랜잭션 커밋 허용 비동기적으로. 그러나 설정현지로컬 플러시를 기다리려는 트랜잭션에 사용할 수 있습니다. 디스크이지만 동기 복제는 아닙니다. 만일synchronous_standby_names설정되지 않았습니다. 설정켜짐, remote_write그리고현지모두 동일하게 제공 동기화 수준: 트랜잭션 커밋은 로컬만 기다립니다. 디스크에 플러시합니다.
이 매개변수는 언제든지 변경될 수 있습니다. 어떤 사람에 대한 행동 하나의 거래는 거래가 이루어질 때 적용되는 설정에 따라 결정됩니다. 커밋합니다. 그러므로 다음 중 일부를 갖는 것이 가능하고 유용합니다. 트랜잭션은 동기식으로 커밋되고 다른 트랜잭션은 비동기식으로 커밋됩니다. 에 대한 예를 들어 단일 다중 문 트랜잭션 커밋을 만들려면 기본값이 반대인 경우 비동기적으로 문제 발생로컬 동기_커밋을 끄기로 설정내부 거래.
WAL 업데이트를 디스크에 강제로 적용하는 데 사용되는 방법입니다. 만일fsync꺼져 있으면 이 설정은 관련이 없습니다. 왜냐하면 WAL 파일 업데이트는 전혀 강제로 실행되지 않습니다. 가능한 값 다음은:
open_datasync(WAL 파일 쓰기열기()옵션O_DSYNC)
fdatasync(전화fdatasync()각 커밋에서)
fsync(전화fsync()각 커밋에서)
fsync_writethrough(전화fsync()커밋할 때마다 강제로 쓰기를 수행합니다.
모든 디스크 쓰기 캐시)
open_sync(WAL 파일 쓰기열기()옵션O_SYNC)
그open_* 옵션도 사용됨O_DIRECT사용 가능한 경우. 이 선택이 모두 그런 것은 아닙니다. 모든 플랫폼에서 사용 가능합니다. 기본값은 첫 번째 방법입니다. 플랫폼에서 지원하는 위 목록(단, 제외)fdatasyncLinux의 기본값입니다. 는 기본값이 반드시 이상적인 것은 아닙니다. 변경이 필요할 수도 있습니다 이 설정이나 시스템 구성의 다른 측면을 순서대로 충돌로부터 안전한 구성을 생성하거나 최적의 상태를 달성하기 위해 성능. 이러한 측면은 다음에서 논의됩니다.섹션 29.1. 이 매개변수는 에 설정와이즈 토토.conf파일 또는 서버 명령줄.
이 매개변수가 켜져 있으면,와이즈 토토서버는 다음의 전체 내용을 씁니다. 해당 페이지를 처음 수정하는 동안 각 디스크 페이지를 WAL로 체크포인트 이후. 이는 다음 페이지 쓰기 때문에 필요합니다. 운영 체제 충돌 중 프로세스가 부분적으로만 중단될 수 있습니다. 완료되어 오래된 내용이 혼합된 디스크 상의 페이지로 연결됩니다. 그리고 새로운 데이터. 일반적으로 WAL에 저장되는 행 수준 변경 데이터는 충돌 후 해당 페이지를 완전히 복원하기에는 충분하지 않습니다. 회복. 전체 페이지 이미지를 저장하면 해당 페이지가 올바르게 복원할 수 있지만 그 대가로 WAL에 기록되어야 하는 데이터입니다. (WAL 재생은 항상 시작되기 때문에 체크포인트에서 처음에는 이 작업을 수행하는 것으로 충분합니다. 체크포인트 이후 각 페이지의 변경. 그러므로 한 가지 방법은 전체 페이지 쓰기 비용을 줄이는 것은 체크포인트를 늘리는 것입니다. 간격 매개변수.)
이 매개변수를 끄면 일반 작동 속도가 빨라지지만 복구할 수 없는 데이터 손상 또는 자동 데이터 발생 손상, 시스템 장애 후. 위험도는 비슷합니다 끄는 중fsync, 작지만, 그리고 동일한 상황에서만 꺼야 합니다. 해당 매개변수에 권장됩니다.
이 매개변수를 꺼도 WAL 아카이브 사용에는 영향을 미치지 않습니다. 특정 시점 복구(PITR)의 경우(참조섹션 24.3).
이 매개변수는 다음에서만 설정할 수 있습니다.와이즈 토토.conf파일 또는 서버 명령줄에서. 기본값은켜짐.
아직 WAL 데이터에 사용되는 공유 메모리의 양 디스크에 기록되었습니다. 기본 설정인 -1은 크기를 선택합니다. 의 1/32(약 3%)에 해당함shared_buffers, 그러나 그 이상은 아닙니다64kB그 이상은 아닙니다 하나의 WAL 세그먼트 크기, 일반적으로16MB. 자동 선택이 너무 큰 경우 이 값을 수동으로 설정할 수 있습니다. 또는 너무 작지만 양수 값은 다음보다 작습니다.32kB다음과 같이 취급됩니다32kB. 이 매개변수는 서버에서만 설정할 수 있습니다. 시작합니다.
WAL 버퍼의 내용은 매 순간 디스크에 기록됩니다. 트랜잭션 커밋을 수행하므로 매우 큰 값은 거의 발생하지 않습니다. 상당한 이점을 제공합니다. 그러나 이 값을 at으로 설정하면 최소한 몇 메가바이트는 바쁜 작업에서 쓰기 성능을 향상시킬 수 있습니다. 많은 클라이언트가 동시에 커밋하는 서버. 자동 튜닝 -1의 기본 설정으로 선택하면 합리적인 결과가 나와야 합니다. 대부분의 경우 결과가 나타납니다.
WAL 작성자의 활동 라운드 사이의 지연을 지정합니다. 각 라운드에서 작성자는 WAL을 디스크에 플러시합니다. 그런 다음 잠을 잔다.wal_writer_delay밀리초 및 반복합니다. 기본값은 200밀리초(200ms). 많은 시스템에서 효과적인 수면 지연 해결은 10밀리초입니다. 설정wal_writer_delay배수가 아닌 값으로 10개 중 다음으로 높은 값으로 설정한 것과 동일한 결과를 얻을 수 있습니다. 10의 배수입니다. 이 매개변수는와이즈 토토.conf파일 또는 서버 명령 라인.
commit_delay시간 지연을 추가합니다. WAL 플러시가 시작되기 전 마이크로초 단위로 측정됩니다. 이것은 할 수 있다 더 많은 수의 커밋을 허용하여 그룹 커밋 처리량을 향상시킵니다. 시스템 부하가 있는 경우 단일 WAL 플러시를 통해 커밋할 트랜잭션 추가 트랜잭션을 커밋할 준비가 될 만큼 충분히 높음 주어진 간격 내에서. 그러나 대기 시간도 증가합니다. 에commit_delay각 WAL에 대한 마이크로초 플러시. 다른 거래가 없으면 지연은 낭비이기 때문입니다. 커밋 준비가 완료되면 지연은 최소한 다음과 같은 경우에만 수행됩니다.commit_siblings다른 거래는 플러시가 시작되려고 할 때 활성화됩니다. 또한 지연이 발생하지 않습니다. 다음과 같은 경우 수행됨fsync비활성화되었습니다. 는 기본값commit_delay은 0입니다(지연 없음). 슈퍼유저만 이 설정을 변경할 수 있습니다.
에와이즈 토토이전 릴리스 9.3,commit_delay다르게 행동했고 훨씬 덜 효과적이었습니다. 모든 커밋이 아닌 커밋에만 영향을 미쳤습니다. WAL은 플러시되고 구성된 전체 지연을 기다렸습니다. WAL 플러시가 더 빨리 완료되었습니다. 다음에서 시작됨와이즈 토토9.3, 첫 번째 프로세스는 플러시 준비가 구성된 간격 동안 대기하고 후속 프로세스는 리더가 플러시를 완료할 때까지만 기다립니다. 작동합니다.
이전에 요구되는 동시 열린 트랜잭션의 최소 수 수행하는commit_delay지연. 에이 값이 클수록 적어도 하나의 다른 트랜잭션은 지연 간격 동안 커밋할 준비가 됩니다. 기본값은 5개의 트랜잭션입니다.
자동 WAL 사이의 최대 로그 파일 세그먼트 수 체크포인트(각 세그먼트는 일반적으로 16MB입니다). 기본값은 세 개의 세그먼트. 이 매개변수를 늘리면 금액이 늘어날 수 있습니다. 사고 복구에 필요한 시간. 이 매개변수는 다음과 같이 설정할 수 있습니다. 에서와이즈 토토.conf파일 또는 서버 명령줄.
자동 WAL 체크포인트 사이의 최대 시간(초)입니다. 는 기본값은 5분입니다(5분). 증가 이 매개변수는 충돌에 필요한 시간을 늘릴 수 있습니다. 회복. 이 매개변수는에서만 설정할 수 있습니다.와이즈 토토.conf파일 또는 서버 명령 라인.
체크포인트 완료 목표를 분수로 지정합니다. 체크포인트 사이의 총 시간입니다. 기본값은 0.5입니다. 이 매개변수 에서만 설정할 수 있습니다.와이즈 토토.conf파일 또는 서버 명령줄에서.
다음으로 인해 체크포인트가 발생한 경우 서버 로그에 메시지를 기록합니다. 체크포인트 세그먼트 파일 채우기는 다음보다 더 가깝게 발생합니다. 이 몇 초(즉,checkpoint_segments올려져야 합니다). 기본값 30초입니다(30초). 0은 비활성화합니다. 경고. 다음과 같은 경우 경고가 생성되지 않습니다.checkpoint_timeout다음보다 작음체크포인트_경고. 이 매개변수는 다음과 같이 설정할 수 있습니다. 에서와이즈 토토.conf파일 또는 서버 명령줄.
언제아카이브_모드활성화됨, 완료됨 WAL 세그먼트는 설정에 따라 아카이브 저장소로 전송됩니다.archive_command. 아카이브_모드그리고archive_command별도의 변수이므로archive_command없이 변경 가능 보관 모드를 종료합니다. 이 매개변수는 서버에서만 설정할 수 있습니다. 시작합니다.아카이브_모드다음의 경우 활성화할 수 없습니다.wal_level다음으로 설정됨최소.
완성된 WAL 파일을 아카이브하기 위해 실행하는 쉘 명령 세그먼트. 모두%p문자열에서 교체됨 보관할 파일의 경로 이름 및 임의%f은 파일 이름으로만 대체됩니다. (경로 이름은 서버의 작업 디렉토리에 상대적입니다. 클러스터의 데이터 디렉터리.) 사용%%삽입하다 실제%명령의 문자입니다. 그것 다음과 같은 경우에만 명령이 0 종료 상태를 반환하는 것이 중요합니다. 성공합니다. 자세한 내용은 참조섹션 24.3.1.
이 매개변수는 다음에서만 설정할 수 있습니다.와이즈 토토.conf파일 또는 서버 명령줄에서. 다음이 아니면 무시됩니다.archive_mode이었음 서버 시작시 활성화됩니다. 만일archive_command빈 문자열입니다(기본값) 동안archive_mode활성화됨, WAL 보관이 일시적으로 비활성화되었지만 서버는 계속해서 명령이 다음을 수행할 것으로 예상하여 WAL 세그먼트 파일을 축적합니다. 곧 제공될 예정입니다. 설정archive_command아무것도 하지 않고 true를 반환하는 명령으로, 예를 들어/bin/true (REMWindows의 경우), 효과적으로 보관을 비활성화하지만 WAL 체인도 끊습니다. 아카이브 복구에 필요한 파일이므로 다음에서만 사용해야 합니다. 특이한 상황.
그archive_command완성된 WAL 세그먼트에 대해서만 호출됩니다. 따라서 서버의 경우 WAL 트래픽이 거의 발생하지 않습니다(또는 트래픽이 발생하는 경우 여유 기간이 있음). 따라서) 완료 사이에 오랜 지연이 있을 수 있습니다. 거래내역 및 그 내용을 아카이브 저장소에 안전하게 기록합니다. 방법을 제한하려면 보관되지 않은 오래된 데이터는 설정할 수 있습니다.archive_timeout서버를 강제로 주기적으로 새로운 WAL 세그먼트 파일을 생성합니다. 이 매개변수가 더 큰 경우 0보다 크면 서버는 언제든지 새 세그먼트 파일로 전환합니다. 마지막 세그먼트 파일 전환 이후 이 시간이 경과되었습니다. 단일 작업을 포함하여 모든 데이터베이스 활동이 있었습니다. 검문소. (증가)checkpoint_timeout유휴 시스템의 불필요한 체크포인트를 줄입니다.) 강제 전환으로 인해 조기에 종료된 아카이브 파일은 완전히 전체 파일과 길이는 여전히 같습니다. 그러므로 그것은 매우 짧은 것을 사용하는 것은 현명하지 못함archive_timeout— 아카이브 저장 공간이 너무 커질 것입니다.archive_timeout1분 정도의 설정은 다음과 같습니다. 일반적으로 합리적입니다. 스트리밍 사용을 고려해야 합니다. 데이터를 복사하려는 경우 보관 대신 복제 그보다 더 빨리 마스터 서버를 종료합니다. 이 매개변수는 에만 설정되어야 합니다.와이즈 토토.conf파일 또는 서버 명령줄에서.
| 이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | 다음 |
| 리소스 소비 | 위로 | 복제 |