目的:最初のサーバーがダウンし、次に2番目のサーバーが稼働できる場合は、2つのDBサーバーをセットアップします。ただし、夕方に両方のサーバーを同期する必要がある場合に限ります。お互いに
私はDBAを初めて使用し、PostgreSQL 9.6を使用しており、PostgreSQL10.0の使用を検討しています。 Windowsプラットフォームに大きな空間データ(「postgis」拡張子を持つGIS関連データ)があることに加えて、テーブルに通常のデータがあります
「Slony」ツールがデフォルトでインストールされているレプリケーションツールをいくつか確認したため、レプリケーションに使用します。
参照とドキュメントのために このリンク をチェックしています。
必要な手順を含む適切な技術記事を誰かが知っているなら、それは素晴らしいことです!!
これを試してください https://github.com/gplv2/haproxy-postgresql
論理的なチェックを行うpgsql-checkよりも悪いtcp-checkよりも優れたチェックを作成するようにガイドします。
ここでのチェックは、サーバーがスレーブであるかどうかを確認することです。スレーブである場合は、マークダウンされ、マスターサーバーと1つのマスターサーバーのみに書き込むことができます。
Pgsqlストリーミングレプリケーションエコシステムを処理するには、repmgr https://repmgr.org/ の使用を検討する必要があります。
また、pgsqlセッションは90秒より長く続く可能性があるため(たとえば、長時間実行されるクエリ)、タイミングが少しずれています。これは、この投稿の他の場所で説明されているhaconfigを使用して切断されます。
pythonスクリプトを使用すると、haproxy構成を生成し、これを機能させるためにpg_hba.confに何を追加するかを指示できます。試してみてください。
Postgresqlサーバーの前でプロキシを使用します。 HAProxyを使用してtcpトラフィックをプロキシすることをお勧めします。
構成例は、多かれ少なかれ次のようになります。
defaults
mode tcp
timeout connect 30s
timeout client 90s
timeout server 90s
frontend PGSQL-FRONT
mode tcp
bind *:5432
default_backend PGSQL-BACK
backend PGSQL-BACK
mode tcp
balance leastconn
option tcp-check
tcp-check connect port 5432
server s1 10.0.0.101:5432 check
server s2 10.0.0.103:5432 check backup