スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

MySQLのレプリケーションについて

この間少しハマったので、忘れないようにメモ。
(俺得日記のため、よう分からんーってかたはスルーしてください。)

MySQLの機能としてレプリケーションなるものがある。
機能としてはあるデータベース(マスタ)にSQL(selectは除く)文を発行すると、その内容が他のデータベース(スレーブ)に反映されるというものである。

仕組みとしてはこんな感じだと思われる。

①マスタ側でSQL文が発行される→バイナリログ(mysql-bin.XXXXXX.logとかそんなファイルだった気が・・・。)に記録される。
②スレーブ側でマスタのログからSQL文をとってきて、リレーログ(relay-bin.XXXXXX.logとかかな)にその内容を記録
③スレーブ側はリレーログを見てSQL文を発行

レプリケーションの設定は、基本的にスレーブ側で設定をするだけでよかったと思います。DB,テーブルをレプリケーションの対象にするのかをmy.cnfで、マスターのDBはどのサーバであるかをCHANGE MASTER TOで設定すれば、出来るはずです。(ググれば色々と出てくるんじゃないかと・・・。)

はまったのは、2つのDBでそれぞれがマスタ、スレーブを担うマルチマスタのレプリケーション機能です。

①サーバAでSQL発行→バイナリログ@Aへ反映
②サーバBはバイナリログ@Aの内容をリレーログ@Bに反映
③サーバBでリレーログ@BからSQLを発行→バイナリログ@Bへ反映
④サーバAはバイナリログ@Bの内容をリレーログ@Aに反映
③サーバAでリレーログ@AからSQLを発行→バイナリログ@Aへ反映
以下略

あれ?無限ループしてね??ってな具合になりました。

なんかの設定(my.cnfに)をすることでこの状況は回避できましたが、忘れたwww

レプリケーションは問題がなければいいですが、問題があった時の復帰/復元方法が大変です・・・。
スポンサーサイト

コメント

非公開コメント

ぼやきごと
カレンダー(月別)
09 ≪│2017/10│≫ 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
検索フォーム
リンク
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。