[実践演習]シリーズのデータベースの基本と原則05-keepalivedのMySQLのプライマリ・データベースが自動切り替えを達成するために失敗しました

1.背景

MySQLの高可用性は、マスタースレーブレプリケーションにしたプログラムがたくさんあり、それだけが自動的に切り替わっていないときにメインのMySQLサーバーの障害データのコピーを持っていることが保証されています。Webサーバは、それを復元するために、二次接続のJDBC MySQLサーバ、Webアクセスのアドレスのためのアドレスを変更する必要があります。

このような欠点は以下のとおりです。

無人の場合は障害が深夜で、誰が対処する可能性がない一方、1、、、手動での介入が必要です。それとも昼間で行われても推定するが、障害は、時間内に見つからない、または業務に影響を与えます。

2は、ビジネスが中断され、景気回復を指すWebサーバーを変更するために、発見するために、メインのMySQLサーバにハングアップ、シャットダウンされ、中盤にはいくつかの時間のためにサービス外となります。

したがって、本明細書で、マスタコピーに基づいて、これは、メインサーバから実現MySQLの自動切替に達成されました。


2、実験環境

MySQLの仮想IP:10.1.30.30

MySQLのプライマリサーバ:10.1.30.28

サーバからのMySQL:10.1.30.29


3、設定

3.1インストールキープアライブ

yumをインストール-y keepalivedの


3.2キープアライブ編集設定ファイル

3.2.1メインサーバー設定ファイル

CDの/ etc / keepalivedの
RM keepalived.conf元の設定ファイル
のvi keepalived.conf、新しいプロファイルを作成します
!設定ファイルforkeepalived 
global_defs { 
notification_email_from [メールには、保護された] 
SMTP_SERVER 127.0.0.1 
smtp_connect_timeout 30 
MYSQL_HA番号識別、同じデュアルマスターのROUTER_ID 
 } 
VI_1 {vrrp_instance 
 両方がバックアップBACKUPに設定された状態#
 インターフェイスのeth1 
 virtual_router_idスタンバイ#51は、同一である
 優先順位100#プライオリティ、別の90 
 advert_int。1つの
 nopreempt#プリエンプションは、唯一の優先度の高い機械に設けることができ、機械は、低優先度の設定はありません
 {認証
 PASS AUTH_TYPE 
 AUTH_PASS 1111 
 } 
 virtual_ipaddressを{ 
 10.1.30.30 
 } 
} 
10.1 VIRTUAL_SERVER。 {3306 30.30 
     ステータスreal_serverをチェックするために2秒ごとに一度#2 delay_loop
     lb_algo WRR #LVSアルゴリズム
     lb_kind DR #LVSモード
     persistence_timeout 60#セッションタイムホールド
     プロトコルにTCPを
     real_server 10.1.30.28 3306 { 
         重り3 
         /etc/keepalived/mysql.sh#スクリプトがダウン検出サービスの後に実行されるnotify_down 
         TCP_CHECK { 
             10#接続CONNECT_TIMEOUTタイムアウト
             nb_get_retry 3位回再接続
             delay_before_retry 3#再接続間隔
             connect_port 3306#健康検査ポート
         } 
     } 
}


サーバーから3.2.2の設定ファイル

!設定ファイルforkeepalived 
global_defs { 
notification_email_from [メールには、保護された] 
SMTP_SERVER 127.0.0.1 
smtp_connect_timeout 30 
MYSQL_HA番号識別、同じデュアルマスターのROUTER_ID 
 } 
VI_1 {vrrp_instance 
 両方がバックアップBACKUPに設定された状態#
 インターフェイスのeth1 
 virtual_router_idスタンバイ#51が同一で
 優先90#プライオリティ、別の90 
 advert_int。1つの
 nopreempt#プリエンプションは、唯一の優先度の高い機械に設けることができ、機械は、低優先度の設定はありません
 {認証
 PASS AUTH_TYPE 
 AUTH_PASS 1111 
 } 
 virtual_ipaddressを{ 
 10.1.30.30 
 } 
} 
10.1 VIRTUAL_SERVER。 {3306 30.30 
     ステータスreal_serverをチェックするために2秒ごとに一度#2 delay_loop
     lb_algo WRR #LVSアルゴリズム
     lb_kind DR #LVSモード
     persistence_timeout 60#セッションタイムホールド
     プロトコルにTCPを
     real_server 10.1.30.29 3306 { 
         重り3 
         /etc/keepalived/mysql.sh#スクリプトがダウン検出サービスの後に実行されるnotify_down 
         TCP_CHECK { 
             10#接続CONNECT_TIMEOUTタイムアウト
             nb_get_retry 3位回再接続
             delay_before_retry 3#再接続間隔
             connect_port 3306#健康検査ポート
         } 
     } 
}


MySQLのプロセス検出スクリプトの作成3.2.3

その後、主に追随し、ファイルを作成します。(スタンバイを追加する必要があります)

Vimの/etc/keepalived/mysql.sh

これは次のように読み取ります。

#!/ binに/ bashの
pkillはkeepalivedの
SLEEP 10 
>を/ dev / nullを開始/etc/init.d/keepalived 
----------(エンドコンテンツ)
chmodの+ X /etc/keepalived/mysql.sh
サービスkeepalivedの開始


スタートからの起動を高めるためにkeepalivedの必要性を忘れないでください。

chkconfigのは、上のkeepalivedの

再起動後は、使用することができます

/etc/init.d/keepalived状況

プロセスが開始されているかどうかを確認します。


注:のmysqldサービスを再起動するために2台のマシンを必要とし、手動

サービスkeepalivedの再起動

また、あなたは今、どのホストで、フローティングIPとしてIPで見ることができます。


4.確認し発効

4.1展開ウェブサイト

試験の前に、あなたがウェブサイトを持っている必要がまず最初に、あなたは以前の記事を参照することができます[実用的なエクササイズ] Linuxオペレーティングシステム05- LAMPとウェブサイト構築ウェブサイト構築07- Tomcatで[実践的な演習] Linuxオペレーティングシステムを、導入を。

プライマリ・データベース・サーバのmysqlの(10.1.30.28)にし、MySQLサーバ(10.1.30.29)から展開しながら、もちろん、ウェブデータベースは、個別に展開されます。


4.2 Web設定を変更します

config.phpのデータベースがVIP(10.1.30.30)をホストに設定されている、ウェブサイトやピア接続JDBCファイルのデータベースを変更するのではなく、マスターまたはサーバの実IPアドレスから。


4.3テスト

Webサイトのドメイン名、Webサイトに直接アクセスして、もし通常のアクセスを参照してください。あなたが正常にアクセスできる場合は、プライマリサーバにログインし、

サービスが停止しmyslqd

可能ならば、成功したメインスイッチの正面から、まだ正常な訪問であるかどうかを確認するために、Webサイトのドメイン名を訪問し続けています。


おすすめ

転載: blog.51cto.com/14423403/2421156