MHAのMySQLの高可用性クラスタ
MMMを上回る利点:資源節約、MMMのようにまだサーバが直接、プライマリサーバからバックアップするためにすることができ、マスターサーバーである必要が
インストール構成MHA高可用性環境(環境下に示します)
プライマリサーバがプライマリサーバのトップ場合は、自動的にサーバから、サーバから仮想IPに移行VIP Masterを失敗した場合にのみ、管理するためのサーバーが必要
MHAは作品のマスターの崩壊からダウン1.保存バイナリ・イベント・ログ(binlogのイベント):
最新の更新プログラムは、スレーブが含まれている識別2.
3.アプリケーションは、他のスレーブの差(リレーログ)ログリレー
4.マスターのバイナリログからイベントを保存します(binlogのイベント)
5.新しいマスターとしてスレーブを高めます
新しいマスター・レプリケーションに接続された他のスレーブを行います6。
インストールパッケージには、ツールが付属しています
マネージャーキットには、以下のツールが含まれています。
masterha_check_ssh:MHAのSSHの設定ヘルスチェック
masterha_check_repl:MySQLのレプリケーションの状態を確認してください
masterha_manger:スタートMHA
masterha_check_status:MHAは、現在の動作状態を検出
masterha_master_monitor:マスターがダウンしているかどうかを検出
masterha_master_switch:フェイルオーバー制御(自動または手動)
masterha_conf_host:サーバー設定情報を追加または削除
ノードキットは、(これらのツールは、通常は手動操作することなく、MHAマネージャースクリプトによってトリガーされる)次のツールが含まれています。
save_binary_logs:マスタバイナリログを保存してコピーします
apply_diff_relay_logs:イベントリレーログイベント差の認識との差は、他のスレーブに適用されます
filter_mysqlbinlog:不要なROLLBACKイベントを削除(MHAはもはやこのツールを使用)
purge_relay_logs:クリアリレーログ(SQLスレッドをブロックしません)
MHAのビルド構成
1.ダウンロードし、3台のサーバのデータベースをインストール
YUMのMySQLのMySQLサーバのmysql-develのインストール-y
設定/etc/my.cnfファイルを修正2.
VIMな/etc/my.cnf
注:3台のサーバのサーバIDは、このパラメータを使用すると、再起動するサービスを設定覚えて、他と同じにすることはできません
3.を、それぞれ、ログインデータベースユーザーを作成し、プライマリ認証サーバは、マスター・スレーブのレプリケーションを実現するために、サーバからのデータを同期します
mysqladminは-uルート-h localhostの-p'123456'
MySQLの-uroot -p123456
マスター:
バイナリとロケーション変数をクエリ:MySQLの> ショーマスターステータス。
メインサーバーライセンス:MySQLの> グラント* '123456'でIDENTIFIED *すべてON 'test'@'192.168.0.%'に;.
サーバーから2:MySQLの> MASTER_HOSTに変更し、マスター= '192.168.0.101'、MASTER_USER = 'テスト'、master_password = '123456'、MASTER_LOG_FILE = 'MySQLの-bin.000018'、MASTER_LOG_POS = 107;
MySQLの> スレーブを起動します。
注文承認でMHAは、サーバからのテストから2つの主検出の後方に配置されました
MySQLの> *上のすべてを与える*「へtest'@'192.168.0.%」「123456」で識別されます。
マスタースレーブのレプリケーション成功するかどうかを表示スレーブステータス、そしてテスト
4.鍵を暗号化せずに通信を設定します
4台のサーバー上では、各ホストが互いに暗号鍵にリモートで接続することはできませんのでこと、暗号鍵通信することなく、3台の他のサーバーを行う必要があります
以下はMHA-マネージャは、ホストの一例である192.168.0.110
keygenの-t RSA-SSH(Enterキーを押す保ちます)
SSH-コピー-ID -i /root/.ssh/id_rsa.pub [email protected]
SSH-コピー-ID -i /root/.ssh/id_rsa.pub [email protected]
SSH-コピー-ID -i /root/.ssh/id_rsa.pub [email protected]
たびに、類似した他の3つのマシンのrootパスワードを入力してください
補足:次のエラーソリューション
sshの-o StrictHostKeyChecking =いいえ192.168.0.101
設定ファイルを変更するか、この問題が発生した後の/ etc / sshを/ ssh_configの表示されません。
最後に、追加します
無StrictHostKeyChecking
UserKnownHostsFileを/ dev / null
5.アセンブリノードをインストールします。
MHAは、すべてのサーバーにインストールされている環境に依存し、(EPELのソースをインストールしておく必要があります)perlのモジュールです
EPELのソースをダウンロードしてインストール
wgetのhttp://mirrors.yun-idc.com/epel/6/x86_64/epel-release-6-8.noarch.rpm
RPM -ivh EPEL-リリース6-8.noarch.rpm
インストールモジュールの依存関係のperl
yumをインストール-yのperl-DBD-MySQLのperlの-CONFIG-小型のperl-LOG-派遣のperl-パラレルForkManagerのperl-のExtUtils-CBuilderのperl-のExtUtils-MakeMakerのperlのCPAN-
全て(4つ)のサーバ・コンポーネントは、ノードがインストールされています
注:マネージャー依存ノードコンポーネント、CentOS7.3はバージョン0.57を選択する必要があります
解凍、コンパイルおよびアセンブリノードをインストール
タールzxvf mha4mysqlノード-0.56.tar.gz」のCD mha4mysqlノード-0.56」のperl Makefile.PL " メイク&& make installを
前記アセンブリは、マネージャホストMHA-マネージャに搭載されています
マネージャーホストコンパイラのインストールマネージャのコンポーネントに
タールzxvf mha4mysql-マネージャ-0.56.tar.gz」のCD mha4mysql-マネージャ-0.56」のperl Makefile.PL " メイク&& make installを
MHAホスト7.MHA-マネージャの設定
スクリプト内の関連エキスパッケージのコピーを/ usr / local /ビンのディレクトリ
CPの-raサンプル/スクリプトは/ usr / local /ビン/
あなたはに自動切り替え上記VIP管理スクリプトをコピーする場合は/ usr / local /ビンのディレクトリ、スクリプトVIP、および生産環境がkeepalivedの推奨されないような方法を推奨して、変更を行います
CPは/ usr / local /ビン/スクリプトは、/ master_ip_failoverは/ usr / local / binに
vimのは/ usr / local / binに/ master_ip_failover
添加以下部分
私の$ VIP = '192.168.100.200/24';
私の$キー= "1";
私の$ ssh_start_vip = "の/ sbin / ifconfigコマンドのeth1:$キー$のVIP"。
私の$ ssh_stop_vip = "の/ sbin / ifconfigコマンドのeth1:$キーダウン"。
私の$ exit_code = 0;
ディレクトリを作成し、解凍修正バッグを使用してテンプレートから設定ファイルをコピーします
MKDIRは/ etc / masterha
CPサンプル/ confに/ app1.cnfの/ etc / masterha /
vimの/etc/masterha/app1.cnf
8.接続された使用状況検出設定ツール
下に示すように、通常の場合、何のSSHパスワードをテストしていません
masterha_check_ssh -conf =の/ etc / masterha / app1.cnf
試験MySQLのマスタ・スレーブ接続:masterha_check_repl -conf =の/ etc / masterha / app1.cnf
ショーの成功下図
補足:ソリューションが発生する可能性がありますエラー
パスワードエラーなし★テストSSH
各マシンは、他の三つのホストを送信するための鍵を与えたことを確認してください
マスター接続mysqから与え★テスト
すべての権限は3つのmysqlデータベースに注意を与えられていない場合は、なけなしの権限を十分に与えられていない権限を操作し、これらのデータベースを操作する権限を与えられるべきです
あなたの/etc/masterha/app1.cnf設定ファイルは、ユーザーとパスワードの設定の許可と矛盾しているかどうかを確認するために注意を払います
ステータス濡れパフテストの成功を表示するサービスをオンにします9.
开启MHA服务:nohupをmasterha_manager --conf =の/ etc / masterha / app1.cnf --remove_dead_master_conf --ignore_last_failover <を/ dev / null> /var/log/masterha/app1/manager.log 2>&1&
--remove_dead_master_conf:このパラメータは、古いメインライブラリ、IPスイッチから設定ファイルから削除されるとき、メインが発生表します。
--manger_log:ログ保存場所を設定
--ignore_last_failover:デフォルトでMHAが検出された場合、ダウンタイムが連続的に発生し、ダウンタイムの両者は、その後フェールオーバこの制限の理由はピンポン効果を回避することである、進行せず、8時間未満の間隔をあけ。ディレクトリが見つかった場合、このパラメータは、スイッチに再び、デフォルトでは、ログファイルapp1.failover.complete上に設定されているMHAスイッチングログディレクトリ、後に起こるであろう、次回MHAトリガスイッチの世代に代わって最後のファイルを無視していますそれは-ignore_last_failoverに設定され、ここで、便宜上、ファイルを削除するには、最初のスイッチの後に受信しない限り、ファイルは、トリガスイッチの存在を許しません
:成功した状態かどうかを確認してくださいmasterha_check_status --conf =の/ etc / masterha / app1.cnf
閉じるサーバがスタンバイ・マスター・サーバーに移動されたかどうかを確認するには、メインのテストオフ(ステータスクエリーログを参照してください)
猫/var/log/masterha/app1/manager.log
説明実験は成功でした