| PostgreSQL 9.3.25 문서 | ||||
|---|---|---|---|---|
| 스포츠 토토 베트맨 : 문서 : 9.3 : 쓰기 호위 (WAL) | 사설 토토 : 문서 : 9.3 : 신뢰성과 쓰기 로그 | 29장. 신뢰성 및 미리 쓰기 로그 | 사설 토토 : 문서 : 9.3 : WAL 구성 | |
비동기 스포츠 토토옵션은 다음과 같습니다 비용을 들여 거래를 더 빨리 완료할 수 있습니다. 데이터베이스가 충돌하면 가장 최근의 트랜잭션이 손실될 수 있습니다. 많은 애플리케이션에서 이는 허용 가능한 절충안입니다.
이전 섹션에서 설명한 대로 트랜잭션 커밋은 일반적으로동기식: 서버가 기다립니다. 거래의WAL기록 성공을 반환하기 전에 영구 저장소로 플러시됩니다. 클라이언트에게 표시합니다. 따라서 고객은 다음을 보장받습니다. 커밋된 것으로 보고된 트랜잭션은 직후 서버 충돌 이벤트. 그러나 간단히 말해서 이 지연은 전체 거래의 주요 구성 요소입니다. 거래 시간. 비동기 스포츠 토토 모드를 선택한다는 것은 서버는 트랜잭션이 논리적으로 완료되자마자 성공을 반환합니다. 완료, 이전에WAL생성된 기록이 실제로 디스크에 저장되었습니다. 이것은 할 수 있다 소규모 기업의 처리량을 크게 향상시킵니다. 거래.
비동기 스포츠 토토으로 인해 데이터 손실 위험이 발생합니다. 있다 거래 완료 보고 사이의 짧은 시간 창 클라이언트와 트랜잭션이 실제로 커밋된 시간 (즉, 서버가 충돌하더라도 손실되지 않는다는 것이 보장됩니다). 따라서 클라이언트가 다음을 수행하는 경우 비동기 스포츠 토토을 사용해서는 안 됩니다. 거래가 이루어졌다는 가정에 의존하는 외부 행동 기억될 것이다. 예를 들어, 은행에서는 절대 사용하지 않을 것입니다. ATM의 분배를 기록하는 트랜잭션에 대한 비동기 스포츠 토토 현금. 그러나 이벤트 로깅과 같은 많은 시나리오에서는 이런 종류의 강력한 보증이 필요합니다.
비동기 스포츠 토토 사용으로 인해 발생하는 위험은 데이터입니다. 데이터 손상이 아니라 손실입니다. 데이터베이스가 충돌하면 재생하여 회복WAL최대 플러시된 마지막 레코드입니다. 따라서 데이터베이스는 일관성 있는 상태로 복원되었지만 모든 트랜잭션은 아직 디스크에 플러시되지 않은 상태는 해당 상태에 반영되지 않습니다. 는 따라서 최종 효과는 마지막 몇 거래의 손실입니다. 왜냐하면 트랜잭션은 커밋 순서대로 재생되며 불일치는 발생하지 않습니다. 예를 들어, 거래 B가 다음 사항에 따라 변경한 경우 이전 거래 A의 영향으로 A의 효과는 사라지고 B의 효과는 유지됩니다.
사용자는 각 트랜잭션의 커밋 모드를 선택할 수 있습니다. 동기식 및 비동기식 커밋을 모두 가질 수 있습니다 동시에 실행되는 트랜잭션. 이를 통해 유연한 절충이 가능합니다. 성능과 거래 내구성의 확실성 사이. 는 커밋 모드는 사용자 설정 매개변수에 의해 제어됩니다.동기_스포츠 토토, 이는 구성에 따라 어떤 방식으로든 변경될 수 있습니다. 매개변수를 설정할 수 있습니다. 하나의 거래에 사용되는 모드는 다음과 같습니다. 의 가치에 대해동기_스포츠 토토언제 트랜잭션 스포츠 토토이 시작됩니다.
특정 유틸리티 명령, 예를 들어드롭 표은(는) 관계없이 강제로 동기식으로 커밋됩니다. 설정동기_스포츠 토토. 이는 서버의 파일 시스템과 논리 시스템 간의 일관성을 보장합니다. 데이터베이스의 상태. 2단계 커밋을 지원하는 명령, 같은거래 준비, 또한 항상 동기식입니다.
다음 사이의 위험 기간 동안 데이터베이스가 충돌하는 경우 비동기 스포츠 토토 및 트랜잭션 작성WAL기록 후 변경사항 발생 해당 거래 중할 것이다잃어버려. 기간 백그라운드 프로세스("WAL 작성자") 기록되지 않은 플러시WAL다음 간격으로 디스크에 기록wal_writer_delay밀리초. 위험 창의 실제 최대 기간은 다음과 같습니다. 세 번wal_writer_delay왜냐하면 WAL 작성자는 한 번에 전체 페이지를 작성하는 것을 선호하도록 설계되었습니다. 바쁜 시간에는.
| 주의 | 
| 
 즉각 모드 종료는 서버 충돌과 동일하며, 따라서 플러시되지 않은 비동기식의 손실이 발생합니다. 커밋합니다.  | 
비동기 스포츠 토토은 설정과 다른 동작을 제공합니다.fsync= 꺼짐.fsync서버 전체 설정은 다음과 같습니다. 모든 거래의 행동을 변경합니다. 모든 논리를 비활성화합니다. 이내PostgreSQL다음을 시도합니다. 데이터베이스의 다른 부분에 대한 쓰기를 동기화합니다. 따라서 시스템 충돌(즉, 하드웨어 또는 운영 체제 충돌, 실패가 아님PostgreSQL자체)는 데이터베이스를 임의로 손상시킬 수 있습니다. 상태. 많은 시나리오에서 비동기 스포츠 토토은 대부분의 기능을 제공합니다. 끄면 얻을 수 있는 성능 향상fsync, 하지만 데이터 위험은 없음 부패.
commit_delay또한 비동기식 커밋과 매우 유사해 보이지만 실제로는 동기식 커밋 방법(실제로는commit_delay비동기 중에는 무시됩니다. 스포츠 토토).commit_delay지연을 야기합니다 거래가 플러시되기 전WAL디스크에, 그러한 하나에 의해 단일 플러시가 실행되기를 바라면서 트랜잭션은 약 스포츠 토토되는 다른 트랜잭션에도 서비스를 제공할 수 있습니다. 동시에. 설정은 증가시키는 방법으로 생각할 수 있습니다. 트랜잭션이 그룹에 합류할 수 있는 시간 창 플러시 비용을 상각하기 위해 단일 플러시에 참여합니다. 여러 거래 중.
| 이전 | 배트맨 토토 : 문서 : 9.3 : 배트맨 토토 9.3.25 문서화 | 다음 | 
| 미리 쓰기 로깅 (WAL) | 사설 토토 : 문서 : 9.3 : 신뢰성과 쓰기 로그 | WAL구성 |