web-dev-qa-db-ja.com

PostgreSQLでのSlonyレプリケーション

目的:最初のサーバーがダウンし、次に2番目のサーバーが稼働できる場合は、2つのDBサーバーをセットアップします。ただし、夕方に両方のサーバーを同期する必要がある場合に限ります。お互いに

私はDBAを初めて使用し、PostgreSQL 9.6を使用しており、PostgreSQL10.0の使用を検討しています。 Windowsプラットフォームに大きな空間データ(「postgis」拡張子を持つGIS関連データ)があることに加えて、テーブルに通常のデータがあります

「Slony」ツールがデフォルトでインストールされているレプリケーションツールをいくつか確認したため、レプリケーションに使用します。

参照とドキュメントのために このリンク をチェックしています。

必要な手順を含む適切な技術記事を誰かが知っているなら、それは素晴らしいことです!!

1
Sunil

これを試してください https://github.com/gplv2/haproxy-postgresql

論理的なチェックを行うpgsql-checkよりも悪いtcp-checkよりも優れたチェックを作成するようにガイドします。

ここでのチェックは、サーバーがスレーブであるかどうかを確認することです。スレーブである場合は、マークダウンされ、マスターサーバーと1つのマスターサーバーのみに書き込むことができます。

Pgsqlストリーミングレプリケーションエコシステムを処理するには、repmgr https://repmgr.org/ の使用を検討する必要があります。

また、pgsqlセッションは90秒より長く続く可能性があるため(たとえば、長時間実行されるクエリ)、タイミングが少しずれています。これは、この投稿の他の場所で説明されているhaconfigを使用して切断されます。

pythonスクリプトを使用すると、haproxy構成を生成し、これを機能させるためにpg_hba.confに何を追加するかを指示できます。試してみてください。

1
Glenn Plas

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
2
bigfoot