web-dev-qa-db-ja.com

MySQLスレーブを同時にマスターにすることはできますか?

2つのDBサーバー(マスターとスレーブ)を2つの新しいDBサーバー(マスターとスレーブ)に移行しています。

DB1-マスター(本番)

DB2-スレーブ(本番)

DB3-新しいマスター

DB4-新しいスレーブ

現在、私はレプリケーションを次のように設定しています:

DB1 -> DB2
DB3 -> DB4

本番データを新しいサーバーにレプリケートするには、次のように「デイジーチェーン」する必要があります。

DB1 -> DB2 -> DB3 -> DB4

これは可能ですか? DB2(本番スレーブ)でshow master status;を実行すると、binlogの位置が変更されないようです。

 + ------------------ + ---------- + -------------- + ------------------ + 
 |ファイル|位置| Binlog_Do_DB | Binlog_Ignore_DB | 
 + ------------------ + ---------- + ------------ -+ ------------------ + 
 | mysql-bin.000020 | 98 | | | 
 + ------------------ + ---------- + -------------- + ------------------ + 

Binlogの位置がDB2で変更されない理由について少し混乱していますが、DB3のマスターになるのが理想的です。

17
mmattax

DB2のbinlogはスレーブの更新を更新していませんでした。レプリケーションをデイジーチェーンするには、my.confにlog-slave-updatesを設定する必要があります。

http://dev.mysql.com/doc/refman/5.1/en/replication-options-slave.html#option_mysqld_log-slave-updates

16
mmattax

はい、それは可能です:)これは「マスターとリレースレーブ」レプリケーションと呼ばれ、ネット上にそれに関する多くのドキュメントがあります。

公式ドキュメント here をご覧になることをお勧めします。

ところで、これらの slides も見てください。レプリケーショントポロジに関するヒントがいくつかあります。

お役に立てれば。

9
Marco Ramos

はい-mysqlサーバーをデイジーチェーン接続できます。2台以上のマシンで 循環レプリケーション を作成することもできます。マスターとしても機能するスレーブでバイナリロギングを有効にすることを忘れないでください。

3
pQd

はい、可能です。実際には、DB3を構築するにはDB2の新しいスナップショットが必要です。その時点で、適切な位置にある場合は、DB4よりも使用するか、DB3の別のスナップショットを取得できます。

各サーバーに一意のserver_idを設定することを忘れないでください。

High Performance MySQL は、より高度なMySQL管理を参照するための素晴らしい本です。

0
Warner

DB3を新しいスレーブとして追加し、切り替えの準備ができたらそれをマスターに昇格しないのはなぜですか?これにより、複数のスレーブを使用することで一時的に追加されるメリットが得られ、ダウンタイムが削減または排除されます。

0
phuzion