問題タブ [multi-master-replication]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
phpmyadmin - レプリケーションが有効な場合に MySQL でバッククォート (``) を使用する
物語
最近、MySQL サーバーでレプリケーションをセットアップしました。マスター - マスター レプリケーションのルートをたどりました (ここで説明されているように、2 つのサーバー、それぞれがマスターであり、もう一方はスレーブです - http://brendanschwartz.com/post/12702901390/mysql-master-master-replication )。
WAMP で PhpMyAdmin を使用すると、一部のクエリが失敗したり、予期しない動作を表示したりすることに気付き始めました。たとえば、突然:
MySQLシェルを介してそれを行うとうまくいったので、おそらくPhpMyAdminのせいだとすぐに気づきました。その後、Linux ベースの自分のマシンの PhpMyAdmin でも機能し、PhpMyAdmin のバージョンの方がはるかに新しいことに気付きました。
ただし、通常のシェルからいくつかのクエリを実行しようとすると、バッククォートの問題が発生します。たとえば、次のようになります。
私は偶然を信じていないので、何が起こっているのかを確認したほうがよいと思いました。
私がこれまでに持っているもの
オンラインで検索したところ、ログに保存される方法が原因で、バックティックとレプリケーションに問題がある可能性があることがわかりました (私は思います)。しかし、レプリケーションがまだどのように機能しているかはまだ完全にはわかりませんが、一部のクエリはバッククォートで失敗しています。どちらかといえば、私のデータは、バックティックに問題がないことをサポートしています。
バックティックの目的を知っています- https://dba.stackexchange.com/questions/23129/benefits-of-using-backtick-in-mysql-queries
私のMySQLサーバーは実行されています:
- Ubuntu 14.04.01 (64 ビット サーバー版)
- MySQL バージョン 14.14 Distrib 5.5.41、readline 6.3 を使用する debian-linux-gnu (x86_64) 用
私の質問は次のとおりです。
- バックティックがレプリケーションに悪いのはなぜですか? バックティックで問題が発生する可能性はありますか、それとも難解なプラットフォーム固有の問題が原因でしたか?
- この問題に対処するための推奨される方法はありますか?
- 私の考えは、コード内のすべてのバッククォートを取り除くことです。私の列名はすべてプレーンな英語のアルファベットとキャメルケースであるため、バッククォートを使用する
必要はありません。
- に切り替えることができると思いまし
sql_mode = ANSI_QUOTES
たが、値などのクエリの他の側面にどのように影響するかがわからないため、このような大きな変更にはシステム全体の徹底的なテストが必要になるのではないかと心配しています. - また、バッククォートが名前の一部になっている可能性もあると思いましたが、動作に適合していないため、確認しました。
- に切り替えることができると思いまし
この問題に関して、どなたかのご意見をいただければ幸いです。
xmpp - ejabberd クラスタ: マルチマスターまたはマスタースレーブ
これまでのところ、私が遭遇したのはこれです -
ejabberd
構成でクラスターをセットアップmaster-slave
すると、単一障害点が発生し、マスターを修正した後でも (ダウンした場合)、クラスターが再び操作可能にならないという問題が発生します。また、ejabberd
場合によっては、すべてのスレーブのインスタンスを再訪して正常に動作させる必要があったりmnesia
、マスターがスレーブと通信できるようにするためにコマンドを再入力する必要があったりします。ejabberd
構成でクラスターをセットアップmulti-master
すると、クラスター全体を停止することなく、任意のノードをクラスターから取り出すことができます。基本的に、単一障害点はありません。これは、の公式ドキュメントがスクリプトで公開する引数をejabberd
介して行うように指示する方法でもあります。ただし、この場合、すべてのデータが両方のノード間で複製されるため、私の意見ではパフォーマンスのオーバーヘッドが大きくなります。join_cluster
ejabberdctl
ということで、これに尽きます。
ejabberd
主にパフォーマンスに関して 2 ノードのクラスターをセットアップする必要がありますが、他の重要な要素 (フォールト トレランス、負荷分散) も考慮に入れる必要がある、最適/推奨/一般的なモードは何ですか。
redis - Redis はマスター マスター レプリケーションをサポートしていますか?
かなり前に尋ねられた以下の質問からの私の理解によると、Redis にはマスター マスター レプリケーションのサポートが組み込まれていません。
現時点での公式 Web サイトには、マスターとマスターのレプリケーションについては何もないように見えます。つまり、Redis にはマルチマスター レプリケーションのオプションがまだありませんか。また、サードパーティのツールでさえ、Redis が同じことを達成するのに役立っていないようです。私は Zabcluster と Zookeeper に出くわしましたが、これが複雑な変更を加えずに単純なマスター マスター セットアップの要件を満たすかどうかはわかりません。
mysql - 2 つのクラスターを相互にレプリケートする
私は現在、ヨーロッパに 1 つの Galera クラスターを持っています。米国で別のクラスターを実行し、2 つのクラスター間でマスター - マスター レプリケーションを使用したいと考えています。
大きなクラスタを 1 つだけ作成できることはわかっていますが、2 つの大陸間のノードの遅延により、クラスタのパフォーマンスが低下します。
質問:
マスター - マスター複製を使用してクラスターを別のクラスターに複製することはできますか?
マスター - マスター複製用に 2 つのノード (各クラスターに 1 つ) を選択する必要がありますか? または、以下のように複数のノードをリンクすることは可能ですか:
サーバー 1 クラスター 1 - サーバー 1 クラスター 2
Server2-cluster 1 - サーバー 2-cluster2
Server3-cluster 1 - サーバー 3-cluster2
database - 高可用性を備え、単一障害点のない小規模な DB 向けのソリューション
複数のノードに分散されたデータを持つ HA を使用して、合計で最大 100,000 行 (最大 20 MB のデータ) の小さな、つまり 2 つのテーブル/エンティティのソリューションを選択する必要があります。単一障害点のない HA は必須です。Cassandra のタスクを検討しています。ただし、Cassandra は、このような大量のデータに対してはやり過ぎかもしれないと感じています。HA にマルチマスター レプリケーション キャパシティを提供できる、このタスクのより軽量な代替手段はありますか。
postgresql - 2 つ以上の postgresql データベース間でマスター - マスター レプリケーションを実現するにはどうすればよいですか?
次の方法で、2 つ以上の postgresql データベース間でマスター - マスター レプリケーションをセットアップできるようにしたいと考えています。
db_main、db_1、db_2 という 3 つのデータベースがあるとします。db_main と db1 の間には双方向のレプリケーション設定 (Bucardo 用語ではスワップ同期かな?) があり、db_main と db_2 の間には別の設定があります。db_1 と db_2 は直接接続されていませんが、db_1 に table1 を作成し、db_2 に table2 を作成すると、table1 と table2 の両方が 3 つのデータベースすべてに伝達されます。
そのような設定は可能ですか?はいの場合、どのように?一貫性のレベルは?ソリューションは、ネットワーク障害によるメッセージ損失などの障害を許容しますか?
前もって感謝します。