Warning: Undefined array key "" in /var/www/html/uzcms/ohdoggoods.com/incs/InnerPageRandTDK.php on line 4536 Deprecated: str_contains(): Passing null to parameter #2 ($needle) of type string is deprecated in /var/www/html/uzcms/ohdoggoods.com/incs/InnerPageRandTDK.php on line 2343
이 장에서는 쓰기 로그가 어떻게 사용되는지 설명합니다. 효율적이고 신뢰할 수있는 운영.
신뢰성은 모든 심각한 데이터베이스의 중요한 속성입니다 시스템 및PostgreSQL신뢰할 수있는 운영을 보장하기 위해 가능한 모든 것. 한 가지 측면 신뢰할 수있는 작업은 커밋 된 모든 데이터가 거래는 안전한 비 휘발성 지역에 저장해야합니다. 전력 손실, 운영 체제 고장 및 하드웨어 고장으로부터 (물론 비 휘발성 영역 자체의 실패 제외). 데이터를 컴퓨터의 영구에 성공적으로 작성합니다 스토리지 (디스크 드라이브 또는 이와 동등한)가 일반적으로이를 충족합니다 요구 사항. 실제로 컴퓨터가 치명적으로 손상 되더라도 디스크 드라이브는 살아남아 다른 컴퓨터로 옮길 수 있습니다. 유사한 하드웨어와 모든 커밋 된 트랜잭션이 있습니다 그대로 남아 있습니다.
데이터를 주기적으로 디스크 플래터로 강제하는 동안 간단한 작동처럼 보이지만 그렇지 않습니다. 디스크 드라이브 메인 메모리 및 CPU보다 극도로 느립니다 캐싱 층은 컴퓨터의 주요 메모리와 디스크 플래터. 먼저 운영 체제가 있습니다 버퍼 캐시는 자주 디스크 블록을 요청했습니다 디스크 쓰기를 결합합니다. 다행히도 모든 운영 체제는 제공합니다 애플리케이션 버퍼 캐시에서 강제로 쓰는 방법 디스크 및PostgreSQL용도 그 기능. (참조WAL_SYNC_METHOD이 작업이 수행되는 방식을 조정하는 매개 변수.)
다음으로 디스크 드라이브 컨트롤러에 캐시가있을 수 있습니다. 이것은 특히 일반적입니다Raid컨트롤러 카드. 이 캐시 중 일부 이다쓰기 스루, 의미는 쓰기입니다 그들이 도착하자마자 드라이브로 지나갔습니다. 다른 사람은쓰기 백, 의미 데이터가 전달됩니다 나중에 드라이브에. 이러한 캐시는 a 디스크 컨트롤러의 메모리이기 때문에 신뢰성이 위험합니다 캐시는 변동성이 높고 전원으로 내용을 잃게됩니다. 실패. 더 나은 컨트롤러 카드는배터리 지원캐시 - 카드에 a 시스템의 경우 캐시에 전원을 유지하는 배터리 전력 손실. 전원이 복원 된 후 데이터가 작성됩니다. 디스크 드라이브.
마지막으로 대부분의 디스크 드라이브에는 캐시가 있습니다. 일부는입니다 글을 쓰는 동안 일부는 쓰기와 같은 우려가 있습니다 Write-Back 드라이브 캐시의 데이터 손실에 대해 디스크 컨트롤러 캐시. 소비자 등급의 IDE 드라이브입니다 특히 그렇지 않은 쓰기 캐시를 포함 할 가능성이 높습니다 정전에서 살아남아.
14379_14872
데이터 손실의 또 다른 위험은 디스크 플래터 쓰기에 의해 제기됩니다. 운영 자체. 디스크 플래터는 부문으로 나뉩니다. 일반적으로 512 바이트 각각. 모든 물리적 읽기 또는 쓰기 작업 전체 부문을 처리합니다. 쓰기 요청이 드라이브, 512 바이트, 1024 바이트 또는 8192 바이트, 그리고 모든 권력 손실로 인해 글쓰기 과정이 실패 할 수 있습니다. 512 바이트 부문 중 일부를 의미하는 시간과 다른 사람들은 그렇지 않았습니다. 그러한 실패를 막기 위해PostgreSQL정기적으로 전체 페이지를 씁니다 영구 저장 이미지전실제 페이지 수정 디스크에서. 이렇게하면 충돌 회복 중PostgreSQL부분적으로 작성된 복원 할 수 있습니다 페이지. 배터리 지원 디스크 컨트롤러가있는 경우 부분 페이지를 방지하는 파일 시스템 소프트웨어 (예 : Reiser4) 쓰기, 당신은를 사용 하여이 페이지 이미징을 해제 할 수 있습니다.full_page_writes매개 변수.