web-dev-qa-db-ja.com

Linuxでの自動フェイルオーバーを備えた簡単なPostgresqlマスター/スレーブレプリケーション?

私のアプリケーションには信頼性の高いSQL DBが必要で、Postgresqlのストリーミングレプリケーションサポートを検討しています。マスター/スレーブレプリケーションをセットアップするのは難しくなく、スレーブを読み取り専用クエリのホットスタンバイとして使用できます。これまでのところすべて良い。しかし、マスターに障害が発生した場合(またはスレーブがマスターに障害が発生したとスレーブが判断した場合)、スレーブをマスターに自動的に昇格させる方法を教えてください。私はそれをマスターにするためにスレーブにファイルを書き込むことができることを知っていますが、それを行うためのスクリプトなどを探しています(そしてマスターがダウンしていることを確認するなど)。

Ubuntu 12.04でこれを行う方法に関する素晴らしいチュートリアルを知っている人はいますか?ヘッツナーでホストされていますか(ボーナスポイントの場合)?シェフのレシピか何か?

7
David Tinker

repmgr をご覧ください。これは、PostgreSQLの組み込みレプリケーションを使用してフェイルオーバーとスイッチオーバーを管理することを目的とした無料のソフトウェア製品です。

8
Daniel Vérité

最近、スクリプトでタスクを実行するのは簡単ではありません。一般的に言えば、私たちは手作業で作業を行うべきです。プライマリノードとスタンバイノードの間で役割を切り替える必要がある場合、まず、スタンバイノードをプライマリノードに簡単にアクティブ化できます(スタンバイノードでトリガーファイルを作成するだけです)。ただし、プライマリノードをスタンバイノードに切り替えるのは簡単ではありません。複雑な手順が必要だからです。

0
francs