web-dev-qa-db-ja.com

2台の物理サーバーだけで「スプリットブレイン」の問題を解決するにはどうすればよいですか?

2つの物理サーバーがあり、それぞれに2つのVMが含まれます。 a VM Postgres(9.2)を実行し、a VMいくつかのPythonソフトウェア(Postgresに接続します)を実行していますサーバー)。フェイルオーバーツールの種類など、何にも縛られていません。物理サーバーが2つしかない場合、スプリットブレインの問題を回避する方法はありますか?

私の現在の理解では、マスターPostgresサーバー(またはそれが存在するマシン)が停止すると、スレーブデータベースはマスターの役割を再開します。マスターサーバーが再びオンになった場合、それはまだマスターであると見なされます...この問題は最新のPostgresバージョンで処理されますか、それとも深刻な問題ですか?もしそうなら、なぜもっと多くの人がそれについて話さないのですか?それについて何かを見つけることはめったにないようです。

2
orokusaki

物理/仮想サーバーの質問を切り離し、Postgresでのフェイルオーバーの理解にさらに焦点を合わせます。

すでに以下をお読みになったと思いますが、そうでない場合は、フェイルオーバーメカニズムの概要をご覧ください。 http://www.postgresql.org/docs/9.0/static/warm-standby-failover.html

次に、ストレージバックエンドを共有することを意味する場合でも、「他の人を頭の中で撃つ」とハートビートを実装する方法を検討します(参照: https://dba.stackexchange.com/tags/drbd/ infohttp://wiki.postgresql.org/wiki/Shared_Storage