masatoコメントするTweetさあさあ、今度はレプリケーションだ。5.7の目玉と言えば、やはりマルチソースレプリケーションでしょう。ほか、スレーブにチャネルという概念が導入され、マルチスレッドスレーブが実現できるそうですね。こいつらを早速試してみようと思います。最初にマルチソースレプリケーションの仕組みを簡単に。通常のレプリケーションは下図の流れです。通常のレプリケーションこれに対して、マルチソースレプリケーションは下図の流れです。要は複数のマスターからのクエリを1つのスレーブで統合保持できます。言い方を換えれば、1つのスレーブが複数のマスターを持つことができます。Threadが受けるようになります。Threadのペアは、チャネルという概念でまとめて管理されています。説明はこんなところで、早速実験に移ろうと思います。今回のレプリケーション構成は下記の通り。マスター1:192.168.2.221マスター2:192.168.2.222スレーブ:192.168.2.223まず、マスター2台、スレーブ1台にレプリケーション用ユーザを作ります。状態を同じにしたいので。masterを打っておきます。sec)そして、各サーバでGTIDレプリケーションのために下記設定を追加します。gtid_mode=ONlog_slave_updatesenforce_gtid_consistencylog_binserver_id=1無論、server_idはサーバごとに一意にします。※log_slave_updatesはスレーブでは必要なくなったとかいう噂も聞いたが、まだ未確認です。マルチソースレプリケーションを実施するために下記を追加します。master-info-repository=TABLErelay-log-info-repository=TABLEこれでマスター2台、スレーブ1台の準備が整ったので、レプリケーションの設定を入れましょう。channel~」の前にはカンマいれちゃいけないんですね。わかりづらいわ!同じようなクエリをmaster-2に対しても実行します。sec)状況を確認しましょう。sec)ちゃんとSlave_IO_Running、Slave_SQL_RunningがYesになってますね。最後にChannel_Nameが出力されていますね。さあ、クエリがちゃんと伝播するかテストしましょう。sec)おお、確かに両マスターからのクエリが流れ込んでいる!これがマルチソースレプリケーションってやつか!というわけで、とりあえず使える状態にはなったので、これで今回は満足。取り急ぎ、他にもまだ試してみたい機能・モジュールはあるので、そちらをやります。マルチソースレプリケーションの深堀りはもうちょっと後になるとおもいますのであしからず。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。Ushio駆け出しのMySQLエンジニア。OSSを仕事で扱っています。themehall.com。