1

クラウド環境で Postgresql クラスターを構築したい (はい、それが悪い考えであることはわかっていますが、それは問題ではありません)。参考までに、Docker化されたPostgresqlを使用しています(https://github.com/paunin/postgres-docker-clusterを参照)が、それは問題でも問題でもありません。

そのため、ストリーミング レプリケーションを使用して 2 つの Postgresql 9.5 をインストールしました。各ホストに repmgr 3.2.1 がインストールされ、正しく構成されています。

次のケースには問題があります。

  1. マスターを止め、
  2. スレーブのフェールオーバーを待ちます -> OK,
  3. 古いマスターを再起動します -> Ko で示されたクラスターに 2 つのマスターがありrepmgr cluster show、古いマスターを強制的にスレーブにする解決策が見つかりません。

私が見つけた唯一の醜い解決策は、古いマスターのすべてのデータを削除して再起動することです。これを行うと、予想どおりスレーブになりました(ただし、完全な再同期が必要です...)。

古いマスターを強制的にスレーブにすることはできないようですのでご注意ください。repmgr standby registerそれが言うように動作しません:

[2016-12-06 15:04:04] [INFO] connecting to standby database
[2016-12-06 15:04:04] [ERROR] this node should be a standby (user=replication_user password=replication_pass host=psg-host21 dbname=replication_db port=5432 connect_timeout=2)
[2016-12-06 15:04:04] [INFO] connecting to database
    Role      | Name       | Upstream   | Connection String
    ----------+------------|------------|------------------------------------------------------------------------------------------------------------------
    * master  | psg-host21 |            | user=replication_user password=replication_pass host=psg-host21 dbname=replication_db port=5432 connect_timeout=2
    * master  | psg-host22 | psg-host21 | user=replication_user password=replication_pass host=psg-host22 dbname=replication_db port=5432 connect_timeout=2

どんな助けでも大歓迎です。

4

1 に答える 1