web-dev-qa-db-ja.com

すべてのサーバーが読み取り専用の場合、共有ストレージはPostgresで安全ですか?

Postgresの共有ストレージの説明: https://wiki.postgresql.org/wiki/Shared_Storage

関連質問: https://serverfault.com/a/620315/137464

これらの両方から、1つの書き込みインスタンスと多くのリーダーを持つことは安全ではないことが明らかになります。 allインスタンスが読み取り専用の場合はどうなりますか?

3
rcrogers

あなたがリンクした答え で、クレイグは言う:

すべてのサーバーが読み取り専用である場合は、PostgreSQLに小さな変更を加えることで実行するのがおそらく実用的です(。興味のないユースケース。

(私の強調)。

問題は、PostgreSQLサーバーを起動して「このデータディレクトリのみを見ることが許可されており、何も書き込むことが許可されていない」ことを伝える方法がないことです。 「ホットスタンバイ」として動作しているPostgreSQLサーバーでさえ、そのデータディレクトリ内に任意のファイル(たとえば、postmaster.pid、ディスク上の並べ替えに使用される一時ファイル、 [ヒントビットの書き換え] など)を書き込む自由があります。オン)。 2つ以上のサーバーが同じデータディレクトリに対してホットスタンバイモードで動作するように調整されている場合、混乱が発生する可能性があります。

Postgresサーバーには単に「見ながら触らない」モードがないため、答えは次のとおりです。

すべての[同じ共有データディレクトリに対して動作するPostgresサーバーインスタンス]が読み取り専用の場合はどうなりますか?

真の読み取り専用モードを実装するようにPostgresを変更しない限り、今日は不可能です。

2