mysqlfailoverをデーモンになってから試してみた
...※ 古い記事ですのでご注意ください。
こんにちは。小宮です。
まだ使いたい人がいるかわかりませんが検証してみましたので載せておきます。
長い記事になりますのでお時間のあるときにどうぞ。mysqlfailoverを–forceつけず–daemon=startで起動させる
以前検証したときは
–forceつけないと動かなかったのと
デーモンで起動させるオプションは存在しなかった
というわけでそこを再度たしかめてみます。・構成:
192.168.1.133 komiya-test-mysql01 my1 192.168.1.155 komiya-test-mysql02 my2 192.168.1.150 komiya-test-mysql03 my3 192.168.1.241 komiya-test-mysql04 my4 manager 192.168.1.222 vip・インストール:
パッケージは公式とかこのへんからダウンロードできます。
とりあえずchefでmysql5.6とutility等を入れておきました。
ssh-copy-idとknife solo prepareして
nodeファイルのrunlistにdbロール指定して
knife solo cookしただけで以下と必要な設定ファイルが置かれて
server_idとかreport_hostとか自動的に入るようにしました。
参考にしたレシピはこちら。以下が関連パッケージです。
mysql-utilitiesはpythonで書かれたツールなのでmysql-connector-pythonが必要です。$ rpm -qa|grep -i mysql MySQL-shared-compat-5.6.15-1.linux_glibc2.5.x86_64 MySQL-test-5.6.15-1.linux_glibc2.5.x86_64 perl-DBD-MySQL-4.013-3.el6.x86_64 mysql-utilities-1.4.1-1.el6.noarch mysqltuner-1.1.1-1.el6.noarch MySQL-client-5.6.15-1.linux_glibc2.5.x86_64 MySQL-server-5.6.15-1.linux_glibc2.5.x86_64 MySQL-devel-5.6.15-1.linux_glibc2.5.x86_64 mysql-connector-python-1.1.4-1.el6.noarch mysqlreport-3.5-4.el6.noarch・replicaitonを組む
server_idはipアドレスの第4オクテットにしたので重複しないはず。
report_hostも自分のIPに自動的になってるはず。MysqlのHAとトラブル事例
...久しぶりの更新になります。プラットフォームの宮下です。
先日開催されました、July Tech Festa2013というイベントの中の1コマで何と私が発表をさせて頂きました。
その時使用した資料をアップしますので興味のある方は是非一読下さい。[slideshare id=24320385&doc=mysqlha-130716215401-phpapp02]
mysqlのHA構成のデザインパターン紹介を経験談を交えて話させて頂きました。
とても緊張してしまって肝心のトラブル事例がお話出来ませんでした。このブログでは、包み隠さずトラブルのレポートが出来ればと思います。
今回のテーマは、小宮先生のレポートを多分に活用させて頂いています。
次回こそは、私の成果を発表したいもんです。それではまた近いうちに更新します。
MHAの動作確認と切替検証
...MHAの動作確認と切替検証
前回のつづきです。以下の図のように切り替わるようテストします。
※本検証はマスタ1台、スレーブ2台、マネージャ1台構成。(多段構成は中間ノード障害時の復旧が猥雑になるので回避)
スレーブにmanagerを同居させるとpurge_relay_logsとかぶると上手く切り替わらない可能性があるようです。
※2台しかない場合で上手く切り替わらないことがあるようです。以下参考。
http://heartbeats.jp/hbblog/2013/05/mysql-mha-haproxy.html⑥ 起動前チェック
・sshの動作チェック
[shell] # masterha_check_ssh –conf=/etc/app1.cnf [/shell] OKな場合最終的に以下のように出力される
[shell] Tue Oct 23 15:02:22 2012 - [info] All SSH connection tests passed successfully. [/shell]
・replicationの動作チェック
[shell] # masterha_check_repl –conf=/etc/app1.cnf [/shell] OKな場合最終的に以下のように出力される(※mysql5.6からはMHAのバージョンによってはbinlog-checksum=NONEにしないとここで失敗するかもしれません)
[shell] MySQL Replication Health is OK. [/shell] ※失敗するパターン
レプリケーションのフィルタリングルールが合っていない
LVSとMHAマネージャが相乗りの場合、チェックタイミングが重複しホスト毎DBサーバに拒否されてしまう(要flush hosts;)