問題タブ [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.

0 投票する
1 に答える
23 参照

mysql - マルチマスター レプリケーションですべてのマスターの更新と変更を取得するにはどうすればよいですか?

サーバーA、B、CなどのMysqlリングレプリケーションを構成しました。A で更新をコミットすると、B で変更と更新を取得できます。B で変更を行うと、C で取得します。A で変更を行うと、A で更新を取得します。

私の問題は、A に変更を加えたときに C に変更を加えられないことです。その逆も同様です。代替サーバーは更新を取得できません。この問題を解決するために私に提案してください。

0 投票する
1 に答える
580 参照

mysql - MTS レプリケーションのデッドロック

状況:

Percona MySQL 5.6.32-78.1 で GTID を使用したマスター - マスター - レプリケーションがあります。サーバーには、約 10 のデータベースがあり、設定しましslave_parallel_workers=5た。1 台のサーバーがフロントエンドの処理に使用され、もう 1 台がバックエンドに使用されます。週に 2 ~ 3 回、バックエンド サーバーのレプリケーションがエラーで停止する

2016-10-25 10:00:01 165238 [Warning] Slave SQL: Worker 4 failed executing transaction '0e7b97a8-a689-11e5-8b79-901b0e8b0f53:22506262' at master log mysql-bin.011888, end_log_pos 9306420; Could not execute Update_rows event on table shop.sessions; Deadlock found when trying to get lock; try restarting transaction, Error_code: 1213; handler error HA_ERR_LOCK_DEADLOCK; the event's master log mysql-bin.011888, end_log_pos 9306420, Error_code: 1213 2016-10-25 10:00:01 165238 [ERROR] Slave SQL: ... The slave coordinator and worker threads are stopped, possibly leaving data in inconsistent state. A restart should restore consistency automatically, although using non-transactional storage for data or info tables or DDL queries could lead to problems. In such cases you have to examine your data (see documentation for details). Error_code: 1756 2016-10-25 10:00:01 165238 [Note] Error reading relay log event: slave SQL thread was killed

その理由は何ですか?クロスデータベース DML ステートメントはありません。MTS を使用すると、データベースごとに 1 つのスレッドのみが使用されると思いました (MTS の利点は、複数のデータベース間で並列レプリケーションを使用することです)。応答がデッドロックで中断するのはなぜですか?

編集 2016-10-28:

テーブルのスキーマは次のようになります

現時点では、このエラーはバックエンド側でのみ発生しており、フロントエンド サーバーでは発生していません。現時点では、バイナリ ログが削除されているため、正確なステートメントを貼り付けることができません。ただし、この GTID トランザクション内の唯一のステートメントは、テーブルに対する行ベースの UPDATE です。

0 投票する
1 に答える
283 参照

mysql - MySQL マルチマスター レプリケーションの複数の場所

2 つのリモート ロケーションで実行されるデータベースがあります。(A & B) サーバーは 1 つの場所 (A) でローカルに利用できます。ただし、2 番目の場所 (B) は、インターネット経由でデータベースにアクセスします。

ロケーション A のインターネットがダウンした場合、ロケーション B はデータベースへの接続を失います。

継続的なレプリケーションと次の条件で別のサーバーを場所 B に配置することは何とか可能ですか? - インターネットが場所 A で機能している場合、ユーザーは場所 A サーバーのみにアクセスします。ユーザーは、場所 A でインターネットがダウンするまで、場所 B で使用可能なサーバーにアクセスできます。接続が復元されると、両方のデータベースを複製できます。不一致/重複がある場合、ロケーション A はマスターと見なされ、変更は上書きされますか?

そのような解決策が可能かどうか、またこのセットアップで直面する可能性のある問題を知りたいですか?