1

単一障害点を減らしたいシステムを構築し、データベースが必要です。マルチマスター設定を適切に処理できる (無料の) リレーショナル データベース システムはありますか (つまり、ノードの追加と削除が簡単な場合)、または NoSQL データベースを使用する方が良いですか?

私が理解しているように、キー値ストアはこれをより適切に処理します。マルチマスター (クラスター) セットアップに推奨するデータベース システムはどれですか?

4

3 に答える 3

3

Mysql の NDB Cluster はこれを行います。しかし、セットアップは決して簡単ではなく、落とし穴がたくさんあります。

また、そのパフォーマンスは一般的にかなり悪く、データをメモリに保持します (はい、矛盾しているように聞こえます)。

基本的に、更新ではクラスター全体 (または少なくともテーブルが保持されているストレージ ノード グループ内) で分散ロックを取得する必要があります。

管理は簡単ではありませんが、ある程度のホット アドを実行できます。

非常に迅速なフェイルオーバーと一貫性が必要でない限り、私はそれをお勧めしません。

マルチマスターを無視し、代わりに (InnoDB などを使用して) HA MySQL を使用することをお勧めします。これは、スレーブが読み取りすらできないマスター/スレーブ システムです (ただし、完全に最新の状態にする必要がない場合は、レプリケーションを使用して読み取りスレーブを追加できます)。

于 2010-04-12T11:17:51.530 に答える
1

キー値ストアは、必ずしもフォールト トレラントではありません。これらは主にパフォーマンス ツールです。データが複数のサーバーに保存されている場合にのみ、なんらかの形式のフォールト トレランスが存在します。単一障害点を減らすことだけが安全である場合、最も簡単な解決策はおそらくミラーリング ソリューションをセットアップすることです。ミラーリング ソリューションでは、マスター データベースを追跡するだけのミラーを使用します。マスターがなんらかの理由で失敗すると、すぐに切り替えます (できれば自動的に)。

通常の操作中に一貫性管理が必要ないため、これの複雑さははるかに低くなります。ミラーは読み取り専用で、マスター データベースを追跡するだけです。マスターに障害が発生すると、ミラーがマスターに切り替わり、リンクが切断されます。マスターが元に戻った後、それらの間の状態に一貫性がないため、現在マスターとして機能しているミラーから元のマスターを更新する必要があります。ほとんどのデータベース システムはこのシナリオを処理できます。非常識なアップタイム要件や非常に重い負荷がない場合、これが最も実用的なソリューションです。

于 2010-04-12T11:07:14.207 に答える
0

オラクルはこのコンセプトを打ち立てたと思います。ただし、スイスの銀行口座を持っていない人は、 MySQL の NDB Clusterを調べる必要があります。

于 2010-04-12T10:37:55.263 に答える