問題タブ [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.
mysql - コードからMySQLマスターマスターセットアップに接続します
新しいWebサイトの場合、MySQLマスターマスターセットアップに接続する必要があります。これはNHibernateを使用する.NETWebサイトですが、Javaやその他の言語にも同じことが当てはまります。この設定を選択したのは、データベースがダウンした場合でもサイトが機能し続けるようにするためです。ダウンタイムは好きではありません。
マスターマスターセットアップが(MySQLで)どのように機能するかについて完全に誤解しているかもしれませんが、私の見方では、通常どおりにデータベースに接続しますが、舞台裏では、MySQLは2つの間でデータを複製しますデータベース。書き込みを行うと、マスター1またはマスター2のいずれかに移動できますが、通常はわかりません(自動インクリメントIDが異なる値を返すことを除いて)。マスターAが何らかの理由で失敗した場合でも、マスターBは機能するため、ダウンタイムは発生しません。マスターAは、再びアップしてデータが複製されるまで無視され、問題がなければ、マスターAは再びフィールドに戻ります。
これが正しければ、上記のとりとめが間違っていたら訂正してください。1人のマスターがダウンした場合に備えて、何か特別なことをする必要がありますか?192.168.1.50(マスターA)に接続した場合、マスターAがダウンするとどうなりますか?MySQLはどういうわけか自動的に192.168.1.51(マスターB)に接続するので、私のサイトは引き続き機能しますか?
私が正しくなかった場合、MySQLマスターマスターレプリケーションはどのように機能しますか?どのマスターで実行する必要があるかを各クエリに指示する必要がありますか?マスターAがダウンした場合でも、マスターAに対するすべてのクエリは失敗し、マスターマスターのセットアップはまったく役に立ちません。
つまり、基本的に、私の質問は実際には次のとおりだと思います。
まだ単一のMySQLホストに接続しますか(NHibernateを使用していますが、それは実際には問題ではありません)、単一の接続文字列を指定しますか?MySQLは2つのマスターがあることを認識しますか、またはコードがそのように変更されますか両方のマスターの接続文字列を指定する必要があること(どのように?)、2つのサーバー間のクエリのバランスをとるために特別な魔法を実行するなど。
私は他に何かが欠けていますか?ありがとう!
mysql - MySQL マルチマスター レプリケーション
4 台の MySQL サーバーを使用してマルチマスター レプリケーションを作成する必要があります。調査の結果、これを行う2つの方法が見つかりました。
1) リング接続。... サーバー_1 -> サーバー_2 -> サーバー_3 -> サーバー_4 -> サーバー_1 ...
2) タングステン レプリケーターの使用。 http://code.google.com/p/tungsten-replicator/wiki/TRCMultiMasterInstallation#Install_a_four_masters_replication
本番モードで使用した人はいますか? どちらの方法が良いですか?おそらく、MySQL のマルチマスター レプリケーションを作成する方法は他にもあるのではないでしょうか?
アドバイスをありがとう!
cassandra - 直接ルーティングできないデータセンター間のマルチマスターCassandra
Main、Remote1、Remote2という3つの機能があり、すべてにアプリケーションのローカルユーザーがいます。ユーザーは現在、メインでSQLデータベースにアクセスしており、Cassandraへの移行を検討しています。Mainのノードだけでなく、すべてのデータセンターでの書き込みがローカルのCassandraノードにヒットするようにします。メインデータセンターのサーバーはRemote1とRemote2のサーバーと通信できますが、Remote1とRemote2の間にルーティングやDNSの可視性はありません。
一部のノードが他のノードと直接通信できない3つのデータセンターでCassandraをセットアップすることは可能ですか?Remote1からの書き込みをMainに伝播して、Remote2にプッシュすることは可能ですか?
mysql - クラスターへの通常の mysql のレプリケーション
驚いたことに、私はこれについて話すものをインターネット上で見つけることができません。現在、マスター スレーブ スレーブ mysql がセットアップされています。スケーラビリティの理由から、mysql クラスターへの移行を検討しています。クラスターを現在のマスターのスレーブにして、今のところクラスターから開発環境を実行できれば、本当に素晴らしいことです。現在のマスターとクラスターの間でマスター マスター関係を作成できればさらに良いでしょう。
私たちの懸念は、データを最新の状態に保つ必要があることです。そのため、このレプリケーションを実行できないと、ダウンタイムが発生します。この複製が不可能な場合、移行を行うための最もスムーズな方法は何ですか? 現在、mariaDB を実行しています。
git - gitマルチマスターセットアップ?
私は次のセットアップを構成する任務を負っています。
現在、オープンソースプロジェクトの内部正規リポジトリがあります。公開されているリモートリポジトリに更新をプッシュする受信後フックがあります。
Joe Publicは、パブリックリポジトリからプルできます。
受信後のフックを除いて、誰もリモートリポジトリにプッシュしません
かなりの数のユーザーが内部でコードに取り組んでいます。私は、彼らがすでに作業しているワークフローをいじりたくありません。
内部ユーザーは、内部正規リポジトリからコードをチェックアウトし、同じものにコミットします。
外部の開発者はパッチを提出する必要があり、その後、内部のユーザーがパッチをコミットします(レビュー後)。
この時点で、一部の外部開発者がリポジトリへのコミットアクセスを許可できるようにします。
これは、リモートリポジトリを正規化することを意味します。
また、ユーザーのワークフローを変更することも意味します。ここの集団がgitに関して私が欠けている何かを思い付くことができない限り。
現在のワークフローのクイックダイアグラム。
内部ユーザー。
内部リポジトリからクローンを作成します。->コード付きのサル->内部リポジトリにプッシュ->リモートリポジトリにプッシュされた受信後フック。
外部ユーザー。
外部リポジトリからクローンを作成します。->コード付きのサル->メーリングリストを介してパッチを送信->内部ユーザーがコードを内部リポジトリにプッシュ->受信後フックがリモートリポジトリにプッシュ
理想的には新しいワークフロー!!
内部ユーザー。
内部リポジトリからクローンを作成します。->クローンが提供される前に、pre-receiveフックは、リモートから更新されたミラーがあることを確認します->コード付きのサル->内部リポジトリにプッシュします-> pre-receiveフックは、コミットをリモートリポジトリにプロキシし、2を同期します。
外部ユーザー。
リモートリポジトリからクローンを作成します。->コード付きのサル->リモートリポジトリにプッシュします。
これは、マルチマスターセットアップのようなものです。コードをいずれかのリポジトリにプッシュし、いずれかのリポジトリからコードをプルできる場所。
他のいくつかの警告。
内部リポジトリは、リモートリポジトリからプッシュおよびプルできます。リモートリポジトリは内部リポジトリに到達できません。
どう思いますか?
mysql - 複数の MySQL データベースへの非同期書き込み
AWS RDS を使用しているため、リージョン間のデータベース レプリケーションは不可能です。
私のアプリケーションは PHP で作成され、すべてのリージョンにデプロイされています。それを実現するための高速で信頼性の高い方法を探しています。
MySQL接続を作成します:
SET @@auto_increment_increment= NUMBER_OF_WRITEABLE_DATABASES;
SET @@auto_increment_offset = REGION_ID ;
そのため、AI pk は地域全体で一意になります。
そして、私の現在の計画では、フィールド => id、queries、status、user_id を含むクエリ ログ テーブルを保持しています。同じページの読み込みで、すべての挿入、更新、削除クエリをクエリ フィールドに記録します。
ステータス コード:
ステータス 0 => 実行されていません
ステータス 1 => すべてのリージョンで正常に実行されました
ステータス 2 => 失敗
ステータス 3 => 影響を受ける行が一致しないため失敗
行の例:
id=>1 クエリ=> INSERT INTO PROFILES VALUES (1,{USER_ID},'Username','Email')##SEPERATOR##AFFECTED_COUNT UPDATE USERS SET last_modified='2012-12...' where id={USER_ID} }##SEPERATOR##AFFECTED_COUNT status=0 user_id=>{USER_ID}
ステータスが != 1 のレコードを読み取り、 commit なしですべてのリージョンでそれらを処理するデーモンが存在し、すべてがエラーなしで実行されると、エラーの場合はコミットまたはロールバックします。
そう思って使っていました。
私の質問は、そのシナリオに対するまともな/テスト済みのアプローチがあるか、それとも私のアプローチに問題があるかです。
前もって感謝します
mysql - MySQL マルチマスター レプリケーション
いくつか (10 個) の MySQL サーバー ノードがあり、1 つがダウンしても残りのノードが影響を受けないように、それらをレプリケートしたいと考えています。
MySQL がマスター/スレーブ (私たちにとっては良くありません) とマルチマスター レプリケーションを提供することは知っています。
- MySQL マルチマスター レプリケーションはメッシュのように機能しますか? すべてのノードが他のすべてのノードから更新できるということですか?
- マルチマスター レプリケーション (MySQL) でも、各ノードは 1 つのマスターからしかデータを取得できないというのは本当ですか?
ネイティブの MySQL レプリケーション機能が私たちの要件を満たすことができない場合、これを行うことができるツールを知っていますか? 私たちの好みは、組み込みの MySql レプリケーションです。
mysql - 中国から AWS へのマルチマスター レプリケーション
私は現在、中国のデータセンター内にあるシステムをサポートしていますが、ファイアウォールが原因で中国以外ではパフォーマンスが低下しています。AWS でデータセンターをセットアップ中であり、データをレプリケートする必要があります。私たちのアプリケーションは旅行者向けであるため、ユーザーは中国国内と国外で数時間以内にシステムに簡単にアクセスできます。要求事項:
- ほぼリアルタイム (リアルタイムではない) のデータ整合性
- ネットワークが一度に数分間ダウンする可能性があるパーティションを処理する機能
- 300 ~ 500 ミリ秒などの高レイテンシを処理する機能
- リクエストの一部がハングまたはドロップされる、失敗したリクエストを処理する機能
- 無料またはほぼ無料
- 比較的柔軟なクエリを作成する機能 (たとえば、さまざまなフィールドによる並べ替え、LIKE 句などの部分的なキーワード検索など)
現在、Cassandra を使用しており、このリストの最後の項目を除くすべてを処理します。多くのデータは Cassandra の形式に適していませんが、Cassandra のデータ モデルを完全に理解する前に、この方法で作成されました。したがって、最後の要件をサポートするために、次の 2 つのアイデアがあります。
- 何らかのキューイング メカニズムを使用して Cassandra データと同期する各データ センターに MySQL サーバーを追加し、データ コンシューマーはこれらのサーバーに対して読み取り専用クエリのみを実行します。
- データを MySQL または PostGres に移行し、データ センター全体にマルチマスター非同期クラスターをセットアップします。
2 つの質問があります。
- 低品質の WAN でマルチマスター レプリケーションを設定した経験のある方は、次のうちどれがより良いアプローチですか? どちらでもない場合、どのように問題を解決しましたか?
- MySQL、PostGres、MariaDB、またはその他の無料の DB またはサードパーティの拡張機能は、このシナリオをうまくサポートしていますか?
database - Heroku マルチリージョン サポート
Heroku はその実装に対してマルチリージョン サポートを提供していますか? 複数の AWS リージョンでのマスター - マスター データベースのセットアップに特に関心があります。
ありがとう