データチェックサムはストリーミングレプリケーションとどのように相互作用しますか?


11

データチェックサムは、9.3で導入された新機能であり、

新しいGUCパラメータ "ignore_checksum_failure"があり、破損が検出された場合でもPostgreSQLにトランザクションの処理を継続させます。

レプリケーションマスターでチェックサムエラーが発生した場合、破損したデータがスレーブにレプリケートされるか、レプリケーションが停止します。の設定に依存しignore_checksum_failureますか?

この READMEには有用な関連情報がいくつかありますが、質問には直接回答しません。


6
非常に良い質問です。データチェックサムがWALにも影響するかどうかにも一部依存します(WALの全ページ画像を除き、IIRCは影響しません)。私は他の機能を支援してきたので、データチェックサムを掘り下げる時間はありませんでした。pgsql-generalで質問するのは良い考えです。時間と新しい赤ちゃんが許せば、私は情報源を調べますが、私は息を止めません。
クレイグリンガー

3
@クレイグおめでとうございます!
ジャックは2014年

4
StackExchangeで学ぶこと...「他の機能の助けになる」は、「おむつを変える」ことの冒涜です。
Colin 't Hart

回答:


1

ディスク上でデータが破損した場合、レプリカの作成元のバックアップにすでに存在していない限り、破損は複製されません。

もちろん、チェックサムの失敗を無視すると、マスターが間違った動作を開始する可能性があり、その不正が複製されます。

破損がメモリ内で発生している場合、すべての賭けは無効です。


2
ここのマークにかなり近いです。ignore_checksum_failureパラメータに関するドキュメントには、「この動作は...伝播する...破損する可能性がある」という警告が含まれています。(ストリーミング)レプリケーションについて明示的に言及しなければ、これはここで暗示されているように見えます。通常、チェックサムエラーが発生するとトランザクションが中止されるため、データは複製されません。このエラーを無視すると、トランザクションをコミットし、(潜在的に)破損したデータを書き込むことができます。これも複製されます。
Colin 't Hart
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.