2025 년 7 월 17 일 : | 토토 베이 18 베타 2 릴리스!
이 문서는 지원되지 않는 버전의 토토 베이을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다스포츠 토토 베트맨 : 문서 : 17 : 28.1. 신뢰할 수 있음버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

29.1. 신뢰할 수 있음

토토 베이성은 모든 심각한 데이터베이스의 중요한 속성입니다 시스템 및토토 베이토토 베이할 수있는 운영을 보장하기 위해 가능한 모든 것. 의 한 측면 토토 베이할 수있는 작업은 Commited가 기록한 모든 데이터가 거래는 안전한 비 휘발성 지역에 저장해야합니다. 전력 손실, 운영 체제 고장 및 하드웨어 고장으로부터 (물론 비 휘발성 영역 자체의 실패 제외). 컴퓨터의 영구 저장소에 데이터를 성공적으로 작성합니다 (디스크 드라이브 또는 이와 동등한) 일반적 으로이 요구 사항을 충족합니다. ~ 안에 사실, 컴퓨터가 치명적으로 손상 되더라도 디스크가 운전하는 경우 비슷한 하드웨어로 다른 컴퓨터로 옮길 수 있습니다. 그리고 모든 커밋 된 거래는 그대로 유지됩니다.

디스크 플래터에 데이터를 강요하는 동안 정기적으로 보일 수 있습니다. 간단한 작업처럼 그렇지 않습니다. 디스크 드라이브이기 때문에 메인 메모리 및 CPU보다 극적으로 느리게 컴퓨터의 메인 메모리와 디스크 사이에 캐싱이 존재합니다. 플래터. 먼저 운영 체제의 버퍼 캐시가 있으며 캐시는 자주 디스크 블록을 요청하고 디스크를 결합합니다 쓴다. 다행히 모든 운영 체제는 응용 프로그램에 방법을 제공합니다 버퍼 캐시에서 디스크로 쓰기 위해토토 베이해당 기능을 사용합니다. (참조WAL_SYNC_METHOD이 작업 수행 방식을 조정하는 매개 변수.)

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

마지막으로 대부분의 디스크 드라이브에는 캐시가 있습니다. 일부는입니다 글을 쓰는 동안 일부는 쓰기와 같은 우려가 있습니다 디스크와 같은 쓰기 드라이브 캐시의 데이터 손실에 대해 컨트롤러 캐시. 소비자 등급의 IDE 및 SATA 드라이브가 있습니다 특히 생존하지 못하는 쓰기 캐시가있을 가능성이 높습니다. 정전. 많은 솔리드 스테이트 드라이브 (SSD)도 휘발성이 있습니다 쓰기 백 캐시.

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

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

  • onfreebsd, IDE 드라이브가 될 수 있습니다 쿼리 사용Atacontrol그리고 캐싱을 작성하십시오 사용을 끄기hw.ata.wc = 0in/boot/loader.conf; SCSI 드라이브는 사용을 쿼리 할 수 있습니다CamControl 식별및 쓰기 캐시 모두 쿼리 및 변경SDPARM언제 사용 가능.

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

  • onWindows, ifWal_sync_methodisOpen_Datasync(기본값), 쓰기 캐싱이 될 수 있습니다 선택 취소로 비활성화내 컴퓨터 \ Open \디스크 운전하다\ Properties \ Hardware \ Properties \ Policies \ enable 쓰기 디스크의 캐싱. 또는 setWal_Sync_Methodtofsync또는fsync_writethrough, 쓰기 방지 캐싱.

  • onMac OS X, 캐싱 캔을 작성하십시오 설정으로 방지Wal_sync_methodtofsync_writethrough.

최근 SATA 드라이브 (다음 사람들atapi-6이상)는 드라이브 캐시 플러시를 제공합니다 명령 (플러시 캐시 Ext), SCSI 드라이브는 오랫동안 비슷한 명령을지지 해 왔습니다캐시 동기화. 이 명령은 직접적이지 않습니다 액세스 가능토토 베이그러나 일부 파일 시스템 (예 :ZFS, ext4)를 사용하여 데이터를 플러시 할 수 있습니다 쓰기 백 지원 드라이브의 플래터에. 불행히도 파일 시스템은 배터리 백업과 결합되면 최적으로 행동합니다 단위 (BBU) 디스크 컨트롤러. ~ 안에 이러한 설정, 동기화 명령은 디스크에 대한 컨트롤러 캐시, BBU. 당신은를 실행할 수 있습니다pg_test_fsync당신이 있는지 확인하는 프로그램 체하는. 영향을받는 경우 BBU의 성능 이점 파일 시스템에서 쓰기 장벽을 끄면 회복 될 수 있습니다. 디스크 컨트롤러 재구성 옵션 인 경우. 쓰기 장벽이 꺼지고 배터리가 기능적으로 유지되도록하십시오. 배터리 결함이 있으면 잠재적으로 데이터 손실이 발생할 수 있습니다. 바라건대 파일 시스템 및 디스크 컨트롤러 디자이너는 결국이 문제를 해결합니다 차선의 행동.

운영 체제가 저장소에 쓰기 요청을 보낼 때 하드웨어, 데이터에 데이터가 있는지 확인하기 위해 할 수있는 일은 거의 없습니다. 진정으로 비 휘발성 저장 공간에 도착했습니다. 오히려, 그것은입니다 모든 스토리지를 확인 해야하는 관리자의 책임 구성 요소는 데이터 및 파일 시스템 메타 데이터에 대한 무결성을 보장합니다. 비 버터가 접지 된 쓰기 캐시가있는 디스크 컨트롤러를 피하십시오. 드라이브 레벨에서 드라이브가 할 수없는 경우 쓰기 백 캐싱을 비활성화합니다. 데이터가 종료되기 전에 작성됩니다. 사용하는 경우 SSD, 이들 중 많은 부분이 캐시 플러시 명령을 존중하지 않는다는 점에 유의하십시오. 기본적으로. 신뢰할 수있는 I/O 하위 시스템 동작을 사용하여를 테스트 할 수 있습니다.diskchecker.pl.

데이터 손실의 또 다른 위험은 디스크 플래터 쓰기에 의해 제기됩니다. 운영 자체. 디스크 플래터는 부문으로 나뉩니다. 일반적으로 512 바이트 각각. 모든 물리적 읽기 또는 쓰기 작업 전체 부문을 처리합니다. 쓰기 요청이 드라이브, 512 바이트의 일부 배수 (에 대한 것일 수 있습니다.토토 베이일반적으로 8192 바이트 또는 16을 씁니다 한 번에 부문), 그리고 글쓰기 과정은 언제라도 전력 손실은 512 바이트 부문 중 일부가 다른 사람은 아니었지만. 그러한 실패를 막기 위해토토 베이정기적으로 씁니다 영구 월 스토리지에 대한 전체 페이지 이미지실제 페이지 수정 디스크. 이렇게하면 충돌 회복 중토토 베이부분적으로 작성된 페이지를 복원 할 수 있습니다 Wal에서. 부분을 방지하는 파일 시스템 소프트웨어가있는 경우 Page Writes (예 : ZFS),이 페이지 이미징을 끄질 수 있습니다. 끄기full_page_writes매개 변수. 배터리 지원 장치 (BBU) 디스크 컨트롤러는 그렇지 않습니다 데이터가 데이터가 BBU에 전체 (8KB) 페이지로 작성되었습니다.

토토 베이도 보호합니다 스토리지 장치에 대한 어떤 종류의 데이터 손상에 대해 시간이 지남에 따라 하드웨어 오류 또는 미디어 고장으로 인해 발생합니다. 읽기/쓰기 데이터로.

  • WAL 파일의 각 개별 레코드는 CRC-32로 보호됩니다. (32 비트) 레코드 내용이 있는지 확인할 수있는 확인 옳은. CRC 값은 각 WAL 레코드를 작성하고 충돌 복구, 아카이브 복구 및 복제.

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

  • 내부 데이터 구조PG_CLOG, PG_SUBTRANS, pg_multixact, PG_SERIAL, pg_notify, PG_STAT, PG_SNAPSHOTS직접 확인되지 않았으며, 그렇지 않습니다 전체 페이지로 보호되는 페이지가 쓰여집니다. 그러나 그러한 데이터가있는 곳 구조는 지속적이며, WAL 레코드는 허용하는 기록입니다 Crash Recovery에서 정확하게 재건 될 최근 변경 및 WAL 레코드는 위에서 논의한대로 보호됩니다.

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

  • 정렬에 더 큰 SQL 쿼리에 사용되는 임시 데이터 파일, 물질화 및 중간 결과는 현재 없습니다 CheckSummed, Wal Records는 그 변경 사항을 작성하지 않습니다. 파일.

토토 베이보호하지 않습니다 수정 가능한 메모리 오류에 대해 업계 표준 오류 수정을 사용하는 RAM을 사용하여 작동합니다 코드 (ECC) 또는 더 나은 보호.