| PostgreSQL 9.3.25 문서 | ||||
|---|---|---|---|---|
| 토토 베이 : 문서 : 9.3 : 토토 베이성 | 사설 토토 : 문서 : 9.3 : 신뢰성과 쓰기 로그 | 29장. 신뢰성 및 미리 쓰기 로그 | PostgreSQL : 문서 : 9.3 : 비동기 스포츠 토토 | |
미리 쓰기 로깅 (WAL)은 데이터를 보장하기 위한 표준 방법입니다. 무결성. 자세한 설명은 대부분(전부는 아님)에서 찾을 수 있습니다. 거래 처리에 관한 책. 간략하게,WAL의 중심 개념은 데이터 변경 파일(테이블과 인덱스가 있는 곳)은 다음 이후에만 작성되어야 합니다. 해당 변경 사항이 기록되었습니다. 즉, 로그 기록 후에 변경 사항을 설명하는 내용이 영구 저장소로 플러시되었습니다. 만약에 이 절차를 따르면 데이터 페이지를 플러시할 필요가 없습니다. 모든 트랜잭션 커밋 시 디스크를 사용합니다. 충돌이 발생하면 로그를 사용하여 데이터베이스를 복구할 수 있습니다. 데이터 페이지에 적용되지 않은 모든 변경 사항은 로그 기록에서 다시 실행되었습니다. (이것은 롤포워드 복구이기도 합니다. REDO로 알려져 있습니다.)
팁:왜냐하면WAL충돌 후 데이터베이스 파일 내용 복원, 저널링된 파일 데이터 파일의 안정적인 저장을 위해 시스템이 필요하지 않습니다. WAL 파일. 실제로 저널링 오버헤드로 인해 성능이 저하될 수 있습니다. 특히 저널링으로 인해 파일 시스템이 발생하는 경우데이터디스크로 플러시됩니다. 다행히 저널링 중 데이터 플러시를 비활성화할 수 있는 경우가 많습니다. 파일 시스템 마운트 옵션을 사용합니다. 예:데이터=쓰기 저장Linux ext3 파일 시스템의 경우. 저널링된 파일 시스템은 충돌 후 부팅 속도를 향상시킵니다.
사용 중WAL결과는
로그만 저장되므로 디스크 쓰기 횟수가 크게 줄어듭니다.
트랜잭션이 이루어지도록 하려면 파일을 디스크에 플러시해야 합니다.
트랜잭션에 의해 변경된 모든 데이터 파일이 아닌 커밋됩니다.
로그 파일은 순차적으로 작성되므로 동기화 비용이 발생합니다.
로그는 데이터 페이지를 플러시하는 비용보다 훨씬 적습니다. 이
많은 소규모 트랜잭션을 처리하는 서버의 경우 특히 그렇습니다.
데이터 저장소의 다른 부분을 만지는 것입니다. 더욱이,
서버가 많은 소규모 동시 트랜잭션을 처리하고 있습니다. 하나fsync로그 파일의 내용으로 충분할 수 있습니다.
많은 트랜잭션을 커밋합니다.
WAL또한 다음을 가능하게 합니다. 설명된 대로 온라인 백업 및 특정 시점 복구를 지원합니다.섹션 24.3. 아카이빙을 통해 우리가 지원할 수 있는 WAL 데이터는 언제든지 즉시 적용됩니다. 사용 가능한 WAL 데이터에 따라: 우리는 단순히 이전의 물리적인 데이터베이스를 백업하고 WAL 로그를 재생합니다. 원하는 시간. 게다가 물리적 백업이 꼭 그럴 필요도 없습니다. 데이터베이스 상태의 즉각적인 스냅샷 — 생성된 경우 일정 기간 동안 해당 WAL 로그를 재생합니다. 기간은 내부 불일치를 수정합니다.