28.1. 신뢰할 수 있음#

신뢰성은 심각한 데이터베이스 시스템의 중요한 속성이며스포츠 토토 베트맨신뢰할 수있는 작업을 보장하기 위해 가능한 모든 것을 수행합니다. 신뢰할 수있는 운영의 한 가지 측면은 커밋 된 트랜잭션에 의해 기록 된 모든 데이터가 전력 손실, 운영 체제 고장 및 하드웨어 고장으로부터 안전한 비 휘발성 영역에 저장되어야한다는 것입니다 (물론 비 휘발성 영역 자체의 실패 제외).

디스크 플래터에 데이터를 강제로 강요하는 동안 정기적으로 간단한 작동처럼 보일 수 있습니다. 디스크 드라이브는 메인 메모리 및 CPU보다 크게 느리기 때문에 컴퓨터의 기본 메모리와 디스크 플래터 사이에는 여러 층의 캐싱이 존재합니다.스포츠 토토 베트맨해당 기능을 사용합니다. (참조WAL_SYNC_METHOD이 작업이 수행되는 방식을 조정하는 매개 변수.)

다음으로 디스크 드라이브 컨트롤러에 캐시가있을 수 있습니다. 이것은 특히 일반적입니다Raid컨트롤러 카드. 이 캐시 중 일부는입니다.쓰기 스루, 즉, 쓰기는 도착하자마자 드라이브로 전송됩니다. 다른 사람은쓰기 백, 즉, 데이터가 나중에 드라이브로 전송됩니다. 디스크 컨트롤러 캐시의 메모리가 휘발성이기 때문에 이러한 캐시는 신뢰성 위험이 될 수 있으며 정전으로 내용물을 잃게됩니다.배터리 백 쿠크 장치 (BBUs) - 시스템 전원 손실의 경우 캐시에 전원을 유지하는 배터리가 있습니다. 전원이 복원 된 후 데이터는 디스크 드라이브에 기록됩니다.

마지막으로 대부분의 디스크 드라이브에는 캐시가 있습니다. 일부는 쓰기가 끝나고 일부는 쓰기 백이며 디스크 컨트롤러 캐시와 마찬가지로 쓰기 백 드라이브 캐시에 대한 데이터 손실에 대한 동일한 우려가 있습니다.

이 캐시는 일반적으로 비활성화 될 수 있습니다. 그러나이를 수행하는 방법은 운영 체제 및 드라이브 유형에 따라 다릅니다.

  • onLinux, IDE 및 SATA 드라이브를 사용하여 쿼리 할 수 ​​있습니다hdparm -i; 쓰기 캐싱이 활성화되어 있다면*쓰기 캐시. HDPARM -W 0쓰기 캐싱을 끄는 데 사용될 수 있습니다. SCSI 드라이브는 사용을 쿼리 할 수 ​​있습니다SDPARM. 사용sdparm --get = wce쓰기 캐시가 활성화되어 있는지 확인하려면sdparm -Clear = wce비활성화하려면

  • onfreebsd, IDE 드라이브는 사용을 쿼리 할 수 ​​있습니다CamControl 식별그리고 Caching을 사용하여 끄기hw.ata.wc = 0in/boot/loader.conf; SCSI 드라이브는 사용을 쿼리 할 수 ​​있습니다CamControl 식별, 그리고 쓰기 캐시는 쿼리 및 변경을 사용하여 변경되었습니다SDPARM가능한 경우.

  • onSolaris, 디스크 쓰기 캐시는에 의해 제어됩니다.형식 -E. (SolarisZFS파일 시스템은 자체 디스크 캐시 플러시 명령을 발행하기 때문에 디스크 쓰기 캐시가 활성화되어 안전합니다.)

  • onWindows, ifWAL_SYNC_METHODisOpen_Datasync(기본값), 체크를 선택 취소하여 캐싱 쓰기를 비활성화 할 수 있습니다내 컴퓨터 \ Open \디스크 드라이브\ Properties \ Hardware \ Properties \ Policies \ 디스크에 쓰기 캐싱 활성화. 또는 setWAL_SYNC_METHODtofdatasync(NTFS 만 해당) 또는fsync, 쓰기 캐싱을 방지하는 것.

  • onMacOS, 설정을 통해 쓰기 캐싱을 방지 할 수 있습니다WAL_SYNC_METHODtofsync_writethrough.

최근 SATA 드라이브 (다음atapi-6또는 이후) 드라이브 캐시 플러시 명령 ( 제공플러시 캐시 Ext), SCSI 드라이브는 오랫동안 비슷한 명령을 지원해 왔지만캐시 동기화. 이 명령은 직접 액세스 할 수 없습니다스포츠 토토 베트맨그러나 일부 파일 시스템 (예 :ZFS, ext4)는이를 사용하여 쓰기 백 지원 드라이브의 플래터에 데이터를 플러시 할 수 있습니다. 불행히도, 이러한 파일 시스템은 배터리 백업 장치 (와 결합 될 때 차 표적으로 행동합니다.BBU) 디스크 컨트롤러. 이러한 설정에서 동기화 명령은 모든 데이터를 컨트롤러 캐시에서 디스크로 강제하여 BBU의 많은 이점을 제거합니다.PG_TEST_FSYNC영향을 받는지 확인하는 프로그램. 영향을받는 경우 파일 시스템의 쓰기 장벽을 끄거나 디스크 컨트롤러를 재구성하여 BBU의 성능 이점을 회복 할 수 있습니다.

운영 체제가 스토리지 하드웨어에 쓰기 요청을 보내면 데이터가 진정한 비 휘발성 저장 영역에 도착했는지 확인하는 것이 거의 없습니다. 오히려 모든 스토리지 구성 요소가 데이터 및 파일 시스템 메타 데이터에 대한 무결성을 보장하는 것은 관리자의 책임입니다.is.

디스크 플래터 쓰기 작업 자체에 의해 데이터 손실의 또 다른 위험이 제기됩니다. 디스크 플래터는 각각 512 바이트 인 섹터로 나뉩니다.스포츠 토토 베트맨일반적으로 한 번에 8192 바이트 또는 16 개의 섹터를 작성하고) 언제든지 전력 손실로 인해 글쓰기 과정이 실패 할 수 있으며, 이는 512 바이트 부문 중 일부가 작성되지 않았지만 다른 부문은 작성되지 않았습니다. 그러한 실패를 막기 위해스포츠 토토 베트맨정기적으로 전체 페이지 이미지를 영구 월 스토리지에 씁니다디스크의 실제 페이지 수정. 이렇게하면 충돌 회복 중스포츠 토토 베트맨WAL에서 부분적으로 작성된 페이지를 복원 할 수 있습니다. 부분 페이지 쓰기 (예 : ZFS)를 방지하는 파일 시스템 소프트웨어가있는 경우이 페이지 이미징을 끄면full_page_writes매개 변수. 배터리 지원 장치 (BBU) 디스크 컨트롤러는 데이터가 BBU에 전체 (8KB) ​​페이지로 기록되었음을 보장하지 않는 한 부분 페이지 작성을 방지하지 않습니다.

스포츠 토토 베트맨또한 쓰레기 데이터 읽기/쓰기와 같은 시간이 지남에 따라 하드웨어 오류 또는 시간이 지남에 따라 미디어 고장으로 인해 발생할 수있는 스토리지 장치의 일부 데이터 손상으로부터 보호합니다.

  • WAL 파일의 각 개별 레코드는 CRC-32C (32 비트) 점검으로 보호되어 레코드 내용이 올바른지 알 수 있습니다. CRC 값은 각 WAL 레코드를 작성할 때 설정되고 충돌 복구, 아카이브 복구 및 복제 중에 확인되었습니다.

  • 데이터 페이지는 현재 기본적으로 확인되지 않지만 WAL 레코드에 기록 된 전체 페이지 이미지는 보호됩니다. 보다initdb데이터 체크섬 활성화에 대한 자세한 내용.

  • 과 같은 내부 데이터 구조PG_XACT, PG_SUBTRANS, pg_multixact, PG_SERIAL, pg_notify, PG_STAT, PG_SNAPSHOTS직접 확인되지 않았으며 페이지가 전체 페이지 쓰기로 보호되지 않습니다. 그러나 이러한 데이터 구조가 영구적 인 경우, Crash Recovery에서 최근 변경 사항을 정확하게 재건 할 수있는 WAL 레코드가 작성되고 이러한 WAL 레코드는 위에서 논의한대로 보호됩니다..

  • 개별 상태 파일에서PG_TWOPHASECRC-32C에 의해 보호됩니다.

  • 정렬, 물질화 및 중간 결과에 더 큰 SQL 쿼리에 사용되는 임시 데이터 파일은 현재 확인되지 않으며 해당 파일의 변경을 위해 WAL 레코드가 작성되지 않습니다.

스포츠 토토 베트맨수정 가능한 메모리 오류로부터 보호하지 않으며 산업 표준 오류 수정 코드 (ECC) 또는 더 나은 보호를 사용하는 RAM을 사용하여 작동한다고 가정합니다..

정정 제출

문서에 올바른 것이 없다면 일치하지 않습니다.이 양식문서 문제를보고하려면