10

私は厳密には DBA ではないので、わかりやすい回答をいただければ幸いです。DB にレプリケーションを提供する必要がありますが、pgpool の方が便利に思えます。なぜなら、1 つの postgresql インスタンスに障害が発生した場合、クライアントは何も変更しなくても作業を継続できるからです。したがって、この場合、pgpool を使用する方が理にかなっていますが、構成部分は (私には) もっと複雑でわかりにくいようです。たとえば、両方の postgresql サーバーで WAL を設定する必要がありますか? それとも、postgresql レプリケーションをセットアップしたい場合にのみ必要ですか? これらの質問に対する答えを得ようとすればするほど、答えがはっきりしなくなります。ググるの忘れたかも…

4

1 に答える 1

9

PostgreSQL 自体が提供する組み込みレプリケーションには、ストリーミング レプリケーション、ウォーム スタンバイ、およびホット スタンバイが含まれます。これらのオプションは、すべてのスタンバイ サーバーに先行書き込みログ (WAL) を配布することに基づいています。書き込みステートメント (例: INSERT, UPDATE) はマスターに送信され、マスターはログ (WAL) をスタンバイ サーバー (またはマスター/マスター レプリケーションの場合は他のマスター) に送信します。

一方、pgpool は、(データベース プロキシのような) ステートメント ベースのレプリケーション ミドルウェアの一種です。すべてのステートメントは実際に pgpool に送られ、pgpool は複製されるすべてのサーバーにすべてを転送します。

pgpool の大きな欠点の 1 つは、単一障害点があることです。pgpool を実行しているサーバーがクラッシュすると、クラスター全体が失敗します。

PostgreSQL のドキュメントには、可能なさまざまな種類のレプリケーションに関する基本的な情報が含まれています: https://www.postgresql.org/docs/current/different-replication-solutions.html

于 2015-03-04T12:31:11.203 に答える