• 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の動作確認と切替検証
    前回のつづきです。以下の図のように切り替わるようテストします。

    mha_after_failover  ※本検証はマスタ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;)

    ...