| 젠 토토 : 문서 : 9.6 : 젠 | |||
|---|---|---|---|
| 토토 커뮤니티 PostgreSQL : 문서 : 9.6 : 자원 소비 | 메이저 토토 사이트 : 문서 : 9.6 : 서버 구성 | 19장. 서버 구성 | 메이저 토토 사이트 PostgreSQL : 문서 : 9.6 : 복제 |
이 설정 조정에 대한 추가 정보는 다음을 참조하세요.PostgreSQL : 문서 : 9.6 : 스포츠 토토 구성.
wal_levelWAL에 기록되는 정보의 양을 결정합니다. 기본값은최소, 충돌 또는 즉각적인 종료로부터 복구하는 데 필요한 정보만 작성합니다.복제본WAL 보관에 필요한 로깅과 대기 서버에서 읽기 전용 쿼리를 실행하는 데 필요한 정보를 추가합니다. 마지막으로,논리적논리적 디코딩을 지원하는 데 필요한 정보를 추가합니다. 각 수준에는 모든 하위 수준에서 기록된 정보가 포함됩니다. 이 매개변수는 서버 시작 시에만 설정할 수 있습니다.
에최소레벨에서는 일부 대량 작업의 WAL 로깅을 안전하게 건너뛸 수 있으므로 해당 작업이 훨씬 빨라질 수 있습니다(참조섹션 14.4.7). 이 최적화를 적용할 수 있는 작업은 다음과 같습니다.
| 다음으로 테이블 생성 |
| 색인 생성 |
| 클러스터 |
| 복사동일한 트랜잭션에서 생성되거나 잘린 테이블로 |
에논리적레벨, 와 동일한 정보가 기록됩니다.복제본및 WAL에서 논리적 변경 세트를 추출하는 데 필요한 정보. 수준을 사용하여논리적특히 많은 테이블이 구성된 경우 WAL 볼륨이 증가합니다.복제본 ID 전체그리고 다수업데이트그리고삭제문이 실행됩니다.
9.6 이전 릴리스에서는 이 매개변수가 다음 값도 허용했습니다.아카이브그리고hot_standby. 이는 여전히 허용되지만 다음에 매핑됩니다.복제본.
이 매개변수가 켜져 있으면,스포츠 토토 결과서버는 다음을 실행하여 업데이트가 물리적으로 디스크에 기록되는지 확인하려고 시도합니다.fsync()시스템 호출 또는 다양한 동등한 방법(참조wal_sync_method). 이렇게 하면 운영 체제 또는 하드웨어 충돌 후 데이터베이스 클러스터가 일관된 상태로 복구될 수 있습니다.
끄는 동안fsync종종 성능상의 이점을 제공하므로 정전이나 시스템 충돌 시 복구할 수 없는 데이터 손상이 발생할 수 있습니다. 따라서 끄는 것이 좋습니다.fsync외부 데이터에서 전체 데이터베이스를 쉽게 다시 만들 수 있다면.
전원을 꺼도 안전한 상황의 예fsync백업 파일에서 새 데이터베이스 클러스터의 초기 로드를 포함합니다. 데이터 배치를 처리한 후 데이터베이스를 버리고 다시 생성하거나, 자주 다시 생성되고 장애 조치에 사용되지 않는 읽기 전용 데이터베이스 복제를 위해 데이터베이스 클러스터를 사용합니다. 고품질 하드웨어만으로는 전원을 끌 충분한 근거가 되지 않습니다.fsync.
변경 시 안정적인 복구를 위해fsyncoff에서 on으로 전환하려면 커널의 모든 수정된 버퍼를 내구성 있는 저장소로 강제 설정해야 합니다. 이는 클러스터가 종료되거나 fsync가 켜져 있는 동안 다음을 실행하여 수행할 수 있습니다.initdb --sync-only, 실행 중동기화, 파일 시스템 마운트 해제 또는 서버 재부팅.
많은 상황에서 꺼짐동기_커밋중요하지 않은 트랜잭션의 경우 끄면 성능상의 많은 이점을 얻을 수 있습니다.fsync, 데이터 손상 위험 없이.
fsync다음에서만 설정할 수 있습니다.스포츠 토토 결과.conf파일 또는 서버 명령줄에서. 이 매개변수를 끄는 경우 끄는 것도 고려해 보세요.full_page_writes.
데이터베이스 서버가 a를 반환하기 전에 WAL 처리가 얼마나 완료되어야 하는지 지정합니다."성공"클라이언트에 표시됩니다. 유효한 값은 다음과 같습니다.remote_apply, 켜짐(기본값),remote_write, 현지및꺼짐.
만약synchronous_standby_names비어 있습니다. 유일하게 의미 있는 설정은켜짐그리고꺼짐; remote_apply, remote_write그리고로컬모두와 동일한 로컬 동기화 수준을 제공켜짐. 모든 비-의 로컬 동작꺼짐모드는 WAL의 로컬 플러시를 디스크로 기다리는 것입니다. 에서꺼짐모드에서는 대기 시간이 없으므로 성공이 클라이언트에 보고되는 시점과 나중에 트랜잭션이 서버 충돌로부터 안전하다고 보장되는 시점 사이에 지연이 있을 수 있습니다. (최대 지연 시간은 3회입니다.wal_writer_delay.) 달리fsync, 이 매개변수를로 설정꺼짐데이터베이스 불일치 위험이 발생하지 않습니다. 운영 체제 또는 데이터베이스 충돌로 인해 최근에 커밋된 일부 트랜잭션이 손실될 수 있지만 데이터베이스 상태는 해당 트랜잭션이 완전히 중단된 것처럼 동일합니다. 그래서 돌아서서동기_커밋off는 트랜잭션 내구성에 대한 정확한 확실성보다 성능이 더 중요한 경우 유용한 대안이 될 수 있습니다. 자세한 내용은 참조PostgreSQL : 문서 : 9.6 : 비동기 사설 토토.
만약synchronous_standby_names비어 있지 않습니다.동기_커밋또한 트랜잭션 커밋이 WAL 레코드가 대기 서버에서 처리될 때까지 기다릴지 여부를 제어합니다.
다음으로 설정된 경우remote_apply, 커밋은 현재 동기 대기의 응답이 트랜잭션의 커밋 레코드를 수신하여 적용했음을 나타낼 때까지 대기합니다. 따라서 대기의 쿼리에 표시되고 대기의 내구성 있는 저장소에도 기록됩니다. 이는 WAL 재생을 기다리기 때문에 이전 설정보다 훨씬 더 큰 커밋 지연을 발생시킵니다. 으로 설정된 경우켜짐, 커밋은 현재 동기 대기의 응답이 트랜잭션의 커밋 레코드를 수신하여 내구성 있는 저장소에 플러시했음을 나타낼 때까지 기다립니다. 이렇게 하면 기본 및 모든 동기 대기 모두 데이터베이스 스토리지가 손상되지 않는 한 트랜잭션이 손실되지 않습니다. 으로 설정된 경우remote_write, 커밋은 현재 동기 대기의 응답이 트랜잭션의 커밋 레코드를 수신하여 파일 시스템에 기록했음을 나타낼 때까지 기다립니다. 이 설정은 대기 인스턴스가 있는 경우 데이터 보존을 보장합니다.스포츠 토토 결과충돌이 발생하지만 데이터가 대기의 내구성 있는 저장소에 반드시 도달한 것은 아니기 때문에 대기에서 운영 체제 수준의 충돌이 발생하는 경우에는 그렇지 않습니다. 설정현지커밋이 디스크에 대한 로컬 플러시를 기다리지만 복제는 기다리지 않습니다. 이는 일반적으로 동기 복제를 사용하는 경우 바람직하지 않지만 완전성을 위해 제공됩니다.
이 매개변수는 언제든지 변경될 수 있습니다. 하나의 트랜잭션에 대한 동작은 커밋할 때 적용되는 설정에 따라 결정됩니다. 따라서 일부 트랜잭션은 동기식으로 커밋하고 다른 트랜잭션은 비동기식으로 커밋하는 것이 가능하고 유용합니다. 예를 들어, 기본값이 반대일 때 단일 다중 문 트랜잭션 커밋을 비동기식으로 만들려면 issue로컬 동기_커밋을 끄기로 설정트랜잭션 내에서.
표 19-1의 기능을 요약합니다.동기_커밋설정.
WAL 업데이트를 디스크에 강제로 적용하는 데 사용되는 방법입니다. 만일fsync이 꺼져 있으면 WAL 파일 업데이트가 전혀 강제로 실행되지 않으므로 이 설정은 관련이 없습니다. 가능한 값은 다음과 같습니다:
open_datasync(WAL 파일 쓰기열기()옵션O_DSYNC)
fdatasync(전화fdatasync()각 커밋에서)
fsync(전화fsync()각 커밋에서)
fsync_writethrough(전화fsync()커밋할 때마다 디스크 쓰기 캐시를 강제로 기록)
open_sync(WAL 파일 쓰기열기()옵션O_SYNC)
그open_* 옵션도 사용됨O_DIRECT사용 가능한 경우. 모든 플랫폼에서 이러한 선택 사항을 모두 사용할 수 있는 것은 아닙니다. 기본값은 플랫폼에서 지원하는 위 목록의 첫 번째 메서드입니다. 단, 다음과 같습니다.fdatasyncLinux 및 FreeBSD의 기본값입니다. 기본값이 반드시 이상적인 것은 아닙니다. 충돌로부터 안전한 구성을 만들거나 최적의 성능을 얻으려면 이 설정이나 시스템 구성의 다른 측면을 변경해야 할 수도 있습니다. 이러한 측면은 다음에서 논의됩니다.PostgreSQL : 문서 : 9.6 : 젠 토토성. 이 매개변수는에서만 설정할 수 있습니다.스포츠 토토 결과.conf파일 또는 서버 명령줄에서.
이 매개변수가 켜져 있으면,스포츠 토토 결과서버는 체크포인트 이후 해당 페이지를 처음 수정하는 동안 각 디스크 페이지의 전체 콘텐츠를 WAL에 기록합니다. 이는 운영 체제 충돌 중에 진행 중인 페이지 쓰기가 부분적으로만 완료되어 이전 데이터와 새 데이터가 혼합되어 있는 온디스크 페이지로 이어질 수 있기 때문에 필요합니다. 일반적으로 WAL에 저장되는 행 수준 변경 데이터는 충돌 후 복구 중에 해당 페이지를 완전히 복원하는 데 충분하지 않습니다. 전체 페이지 이미지를 저장하면 페이지가 올바르게 복원될 수 있지만 WAL에 기록해야 하는 데이터 양이 늘어나는 대가를 치르게 됩니다. (WAL 재생은 항상 체크포인트에서 시작되므로 체크포인트 이후 각 페이지의 첫 번째 변경 중에 이 작업을 수행하는 것으로 충분합니다. 따라서 전체 페이지 쓰기 비용을 줄이는 한 가지 방법은 체크포인트 간격 매개변수를 늘리는 것입니다.)
이 매개변수를 끄면 일반 작동 속도가 빨라지지만 시스템 오류 후 복구할 수 없는 데이터 손상이나 자동 데이터 손상이 발생할 수 있습니다. 위험은 전원을 끄는 것과 유사합니다.fsync, 크기는 작지만 해당 매개변수에 권장되는 것과 동일한 상황에 따라서만 꺼야 합니다.
이 매개변수를 꺼도 특정 시점 복구(PITR)를 위한 WAL 아카이브 사용에 영향을 미치지 않습니다(참조토토 사이트 추천 PostgreSQL : 문서 : 9.6 : 연속 보관 및 시점 복구 (PITR)).
이 매개변수는 다음에서만 설정할 수 있습니다.스포츠 토토 결과.conf파일 또는 서버 명령줄에서. 기본값은켜짐.
이 매개변수가 다음과 같은 경우켜짐, 그포스트그레SQL서버는 체크포인트 이후 해당 페이지의 첫 번째 수정 중에 각 디스크 페이지의 전체 콘텐츠를 WAL에 기록합니다. 소위 힌트 비트의 중요하지 않은 수정의 경우에도 마찬가지입니다.
데이터 체크섬이 활성화되면 힌트 비트 업데이트는 항상 WAL에 기록되며 이 설정은 무시됩니다. 이 설정을 사용하면 데이터베이스에 데이터 체크섬이 활성화된 경우 추가 WAL 로깅이 얼마나 발생하는지 테스트할 수 있습니다.
이 매개변수는 서버 시작시에만 설정될 수 있습니다. 기본값은꺼짐.
이 매개변수가 다음과 같은 경우켜짐, 그스포츠 토토 결과서버는 다음과 같은 경우에 WAL에 기록된 전체 페이지 이미지를 압축합니다.full_page_writes기본 백업이 켜져 있거나 진행 중입니다. 압축된 페이지 이미지는 WAL 재생 중에 압축이 풀립니다. 기본값은꺼짐. 슈퍼유저만 이 설정을 변경할 수 있습니다.
이 매개변수를 켜면 복구할 수 없는 데이터 손상 위험을 증가시키지 않고 WAL 볼륨을 줄일 수 있지만 WAL 로깅 중 압축 및 WAL 재생 중 압축 해제에 추가 CPU가 소비됩니다.
아직 디스크에 기록되지 않은 WAL 데이터에 사용되는 공유 메모리의 양. -1의 기본 설정은 1/32(약 3%)에 해당하는 크기를 선택합니다.shared_buffers, 그러나 그 이상64kB일반적으로 하나의 WAL 세그먼트 크기를 초과하지 않습니다.16MB. 자동 선택이 너무 크거나 작은 경우 이 값을 수동으로 설정할 수 있지만 양수 값은 다음보다 작습니다.32kB다음과 같이 취급됩니다32kB. 이 매개변수는 서버 시작 시에만 설정할 수 있습니다.
WAL 버퍼의 내용은 매 트랜잭션 커밋마다 디스크에 기록되므로 매우 큰 값은 큰 이점을 제공할 가능성이 없습니다. 그러나 이 값을 최소한 몇 메가바이트로 설정하면 많은 클라이언트가 동시에 커밋하는 사용량이 많은 서버에서 쓰기 성능을 향상시킬 수 있습니다. 기본 설정인 -1로 선택된 자동 조정은 대부분의 경우 합리적인 결과를 제공합니다.
WAL 작성자가 WAL을 플러시하는 빈도를 지정합니다. WAL을 플러시한 후 잠자기 상태로 유지됩니다.wal_writer_delay밀리초, 비동기식 커밋 트랜잭션으로 깨어나지 않는 한. 마지막 플러시가 다음보다 적게 발생한 경우wal_writer_delay밀리초 전 및 미만wal_writer_flush_after27172_27324200ms). 많은 시스템에서 절전 지연의 효과적인 해결 방법은 10밀리초입니다. 설정wal_writer_delay10의 배수가 아닌 값으로 설정하면 다음으로 높은 10의 배수로 설정하는 것과 동일한 결과가 나올 수 있습니다. 이 매개변수는스포츠 토토 결과.conf파일 또는 서버 명령줄에서.
WAL 작성자가 WAL을 플러시하는 빈도를 지정합니다. 마지막 플러시가 다음보다 적게 발생한 경우wal_writer_delay밀리초 전 및 미만wal_writer_flush_after28111_28227wal_writer_flush_after다음으로 설정됨0그러면 WAL 데이터가 즉시 플러시됩니다. 기본값은1MB. 이 매개변수는에서만 설정할 수 있습니다.스포츠 토토 결과.conf파일 또는 서버 명령줄에서.
commit_delayWAL 플러시가 시작되기 전에 마이크로초 단위로 측정된 시간 지연을 추가합니다. 이는 시스템 부하가 충분히 높아 주어진 간격 내에 추가 트랜잭션을 커밋할 준비가 되는 경우 단일 WAL 플러시를 통해 더 많은 수의 트랜잭션이 커밋되도록 허용하여 그룹 커밋 처리량을 향상시킬 수 있습니다. 그러나 지연 시간도 최대로 늘어납니다.commit_delay29084_29240commit_siblings플러시가 시작되려고 할 때 다른 트랜잭션이 활성화됩니다. 또한 다음과 같은 경우에는 지연이 수행되지 않습니다.fsync비활성화되었습니다. 기본값commit_delay은 0입니다(지연 없음). 슈퍼유저만 이 설정을 변경할 수 있습니다.
에스포츠 토토 결과9.3 이전 릴리스,commit_delay다르게 행동하고 훨씬 덜 효과적이었습니다. 모든 WAL 플러시가 아닌 커밋에만 영향을 주며 WAL 플러시가 더 빨리 완료되더라도 구성된 전체 지연을 기다렸습니다. 다음에서 시작됨스포츠 토토 결과9.3, 플러시 준비가 된 첫 번째 프로세스는 구성된 간격 동안 기다리는 반면 후속 프로세스는 리더가 플러시 작업을 완료할 때까지만 기다립니다.
다음을 수행하기 전에 필요한 동시 열린 트랜잭션의 최소 수commit_delay지연. 값이 클수록 지연 간격 동안 하나 이상의 다른 트랜잭션이 커밋 준비가 될 가능성이 높아집니다. 기본값은 5개의 트랜잭션입니다.
자동 WAL 체크포인트 사이의 최대 시간(초)입니다. 유효한 범위는 30초에서 1일 사이입니다. 기본값은 5분입니다(5분). 이 매개변수를 늘리면 응급 복구에 필요한 시간이 늘어날 수 있습니다. 이 매개변수는에서만 설정할 수 있습니다.스포츠 토토 결과.conf파일 또는 서버 명령줄에서.
체크포인트 사이의 총 시간의 일부로 체크포인트 완료 목표를 지정합니다. 기본값은 0.5입니다. 이 매개변수는에서만 설정할 수 있습니다.스포츠 토토 결과.conf파일 또는 서버 명령줄에서.
이상일 때마다checkpoint_flush_after31937_32439shared_buffers, 그러나 OS의 페이지 캐시보다 작으므로 성능이 저하될 수 있습니다. 이 설정은 일부 플랫폼에는 영향을 미치지 않을 수 있습니다. 유효한 범위는 다음 사이입니다.032690_327312MB. 기본값은256kB리눅스의 경우,0다른 곳에. (만약BLCKSZ은 8kB가 아니며 기본값과 최대값은 이에 비례하여 확장됩니다.) 이 매개변수는스포츠 토토 결과.conf파일 또는 서버 명령줄에서.
체크포인트 세그먼트 파일 채우기로 인해 발생한 체크포인트가 이 시간보다 더 가깝게 발생하면 서버 로그에 메시지를 기록합니다(이는 다음을 의미합니다.max_wal_size올려져야 합니다). 기본값은 30초입니다(30초). 0은 경고를 비활성화합니다. 다음과 같은 경우 경고가 생성되지 않습니다.checkpoint_timeout다음보다 작음체크포인트_경고. 이 매개변수는에서만 설정할 수 있습니다.스포츠 토토 결과.conf파일 또는 서버 명령줄에서.
자동 체크포인트 중 WAL이 커질 수 있는 최대 크기입니다. 이는 소프트 한도입니다. WAL 크기는 초과할 수 있습니다.max_wal_size과중한 부하와 같은 특별한 상황에서는 실패archive_command또는 높음wal_keep_segments설정. 기본값은 1GB입니다. 이 매개변수를 늘리면 응급 복구에 필요한 시간이 늘어날 수 있습니다. 이 매개변수는에서만 설정할 수 있습니다.스포츠 토토 결과.conf파일 또는 서버 명령줄에서.
WAL 디스크 사용량이 이 설정 이하로 유지되는 한, 오래된 WAL 파일은 제거되지 않고 체크포인트에서 향후 사용을 위해 항상 재활용됩니다. 이는 예를 들어 대규모 배치 작업을 실행할 때 WAL 사용량 급증을 처리하기 위해 충분한 WAL 공간이 예약되어 있는지 확인하는 데 사용할 수 있습니다. 기본값은 80MB입니다. 이 매개변수는에서만 설정할 수 있습니다.스포츠 토토 결과.conf파일 또는 서버 명령줄에서.
언제아카이브_모드이 활성화되면 완료된 WAL 세그먼트는 설정에 따라 아카이브 저장소로 전송됩니다.archive_command. 게다가꺼짐, 비활성화하려면 다음 두 가지 모드가 있습니다.켜짐및항상. 정상 작동 중에는 두 모드 사이에 차이가 없으나, 로 설정하면항상WAL 아카이버는 아카이브 복구 또는 대기 모드 중에도 활성화됩니다. 에서항상모드에서는 아카이브에서 복원되거나 스트리밍 복제로 스트리밍된 모든 파일이 (다시) 아카이브됩니다. 참조섹션 26.2.9자세한 내용은.
아카이브_모드그리고archive_command별도의 변수이므로archive_command보관 모드를 종료하지 않고도 변경할 수 있습니다. 이 매개변수는 서버 시작 시에만 설정할 수 있습니다.아카이브_모드다음의 경우 활성화할 수 없습니다.wal_level다음으로 설정됨최소.
완성된 WAL 파일 세그먼트를 아카이브하기 위해 실행하는 로컬 쉘 명령입니다. 모두%p문자열은 아카이브할 파일의 경로 이름으로 대체되며 모든%f은 파일 이름으로만 대체됩니다. (경로 이름은 서버의 작업 디렉터리, 즉 클러스터의 데이터 디렉터리를 기준으로 합니다.) 사용%%실제 내용 삽입%명령의 문자입니다. 명령이 성공한 경우에만 0 종료 상태를 반환하는 것이 중요합니다. 자세한 내용은 참조섹션 25.3.1.
This parameter can only be set in the스포츠 토토 결과.conf파일 또는 서버 명령줄에서. 다음이 아니면 무시됩니다.아카이브_모드서버 시작 시 활성화되었습니다. 만일archive_command은 빈 문자열(기본값)이고아카이브_모드이 활성화되고 WAL 보관이 일시적으로 비활성화되지만 서버는 명령이 곧 제공될 것이라는 기대로 WAL 세그먼트 파일을 계속 축적합니다. 설정archive_command아무것도 하지 않고 true를 반환하는 명령에 적용됩니다. 예:/bin/true (REMWindows의 경우) 효과적으로 아카이브를 비활성화하지만 아카이브 복구에 필요한 WAL 파일 체인을 중단하므로 비정상적인 상황에서만 사용해야 합니다.
그archive_command완성된 WAL 세그먼트에 대해서만 호출됩니다. 따라서 서버가 WAL 트래픽을 거의 생성하지 않는 경우(또는 트래픽이 발생하는 여유 기간이 있는 경우) 트랜잭션 완료와 아카이브 저장소에 안전하게 기록되는 데 오랜 지연이 있을 수 있습니다. 보관되지 않은 데이터의 기간을 제한하려면 다음을 설정할 수 있습니다.archive_timeout서버가 주기적으로 새로운 WAL 세그먼트 파일로 전환하도록 합니다. 이 매개변수가 0보다 크면 서버는 마지막 세그먼트 파일 전환 이후 이 시간이 경과하고 단일 체크포인트를 포함한 데이터베이스 활동이 있을 때마다 새 세그먼트 파일로 전환합니다. (증가)checkpoint_timeout유휴 시스템에서 불필요한 체크포인트를 줄입니다.) 강제 전환으로 인해 조기에 닫힌 아카이브 파일은 여전히 완전히 전체 파일의 길이와 같습니다. 따라서 매우 짧은 형식을 사용하는 것은 현명하지 않습니다.archive_timeout— 아카이브 저장 공간이 부풀어오르게 됩니다.archive_timeout1분 정도의 설정은 일반적으로 합리적입니다. 데이터를 마스터 서버에서 더 빠르게 복사하려면 보관 대신 스트리밍 복제 사용을 고려해야 합니다. 이 매개변수는에서만 설정할 수 있습니다.스포츠 토토 결과.conf파일 또는 서버 명령줄에서.