【转】keepalivedの+ MySQLの

https://www.cnblogs.com/gomysql/p/3856484.html

MySQLはのような高可用性ソリューション、多くの持っているクラスターMMMMHADRBDなど、これらはより複雑で、私の以前の記事も説明されています。Oracleはまた、最近の公式の打ち上げファブリック時々 、私たちは、このような複雑な環境を必要としない、これらのオプションは、自分の長所と短所を持っています。時にはシンプルで私たちは生きてプログラムを保持することができましたが、私たちのために右です。MySQLのレプリケーションなど、その後のような高可用性ソフトウェア、さまざまな追加keepalivedのなど、私たちが必要とする高可用性環境を実現することができるようになります。

マスターに障害が発生したMySQLのアーキテクチャのマスター/スレーブ、スレーブへのVIPドリフト。サービスを提供します。もちろん、ダブルマスターに設定ではなく、すべての計画は完璧であることができます。ホストが2000秒の後ろには、このホストがダウンしていると仮定される圧力の多くは、別のホストが引き継ぐ際にここでVIPドリフト(そのようなユーザーが書いたときのように、注意が必要なデュアルマスターの問題を持つように設定されています以下からの際に、機械)、大きな同期遅延、ユーザーがちょうど出版した記事がコピーされていないため、ユーザーは再び記事を公開しているので、時に元のマスター良い修理、I / OとSQLのスレッドにも目を覚ましなるので、したがって、我々はデータの同期を同期し続けるだけでコピーされていない、ユーザー新しく発行された記事を変更することも可能です。そこでここでは、マスタ/スレーブ・アーキテクチャを使用します。このアーキテクチャでは、フェイルオーバー後に、手動で新しいマスターをコピーする形をとります。

シンプルな環境は以下のとおりです。

マスター192.168.0.100の
スレーブ192.168.0.101 
VIP 192.168.0.88

マスタースレーブのレプリケーション環境は、ここに私のプレゼンテーションを設定されていません。貧しい学生が見て公式ハンドブック以下はkeepalivedの中で直接使用するインストールと構成について説明します。

1.keepalivedソフトウェアのインストール(同じからマスタ動作)

[ルート@ mysqlのサーバ-01〜]#wgetの-q http://www.keepalived.org/software/keepalived-1.2.13.tar.gz 
[ルート@のmysql-サーバー-01〜]#タールXF keepalived- 1.2.13.tar.gz 
[ルート@ mysqlのサーバ-01〜]#のCD keepalivedの-1.2.13を
[ルート@ mysqlのサーバ-01 keepalivedの-1.2.13を]#1は./configure && make installを&&作ります
コードをコピー
[ルート@ mysqlのサーバ-01 keepalivedの]#cpは/usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/の
[ルート@ mysqlのサーバ-01 keepalivedの]# CPは/ usr / local / etc /のsysconfig / keepalivedのは/ etc /のsysconfig / 
[ルート@のMySQLサーバ-01 keepalivedの]#のMKDIRの/ etc / keepalivedの
[ルート@のMySQLサーバ-01 keepalivedの]#のCPは/ usr / local /など/keepalived/keepalived.confの/ etc / keepalivedの/ 
[ルート@のMySQLサーバ-01 keepalivedの]#のCPは/ usr / local / sbinに/ keepalivedのは/ usr / sbinに/ 
[ルート@のMySQLサーバ-01 keepalivedの]#1のchkconfig - keepalivedの追加
[ルート@ mysqlのサーバ-01 keepalivedの]#chkconfigを--level 345 keepalivedの上
コードをコピー

2.(次のようにkeepalivedのメインの設定ファイルが変更された後、実際には、それだけで同じ優先順位ではありません)マスターから構成ファイルを変更し
、次のようにkeepalivedの設定ファイルのマスター

コードをコピー
[ルート@のMySQLサーバ-01 keepalivedの]#猫keepalived.confの
global_defs { 
   ROUTER_IDのMySQL-HA 
} 

vrrp_script check_run { 
スクリプト"/data/sh/mysql_check.sh" 
インターバル300 
} 

VG1 vrrp_sync_group { 
グループ{ 
VI_1 
} 
} 

vrrp_instance VI_1 { 
    状態BACKUPの
    インターフェースeth1が   
    51 virtual_router_id 
    優先順位100   
    advert_int 1 
    nopreempt 
    認証{ 
        AUTH_TYPE PASS 
        auth_pass 1111 
    } 
    track_script { 
    check_runを
    } 
 
    /data/sh/master.sh notify_master
    notify_backup /data/sh/backup.sh 
    NOTIFY_STOP /data/sh/stop.sh 

    virtual_ipaddress { 
        192.168.0.88 
    } 
} 

[ルート@のMySQLサーバ-01 keepalivedの]#
コードをコピー

次のようにスレーブkeepalivedのプロファイルは、後に改正しました:

コードをコピー
[ルート@のMySQLサーバ-02 keepalivedの]#猫keepalived.confの
global_defs { 
   ROUTER_IDのMySQL-HA 
} 

vrrp_script check_run { 
スクリプト"/data/sh/mysql_check.sh" 
インターバル300 
} 

VG1 vrrp_sync_group { 
グループ{ 
VI_1 
} 
} 

vrrp_instance VI_1 { 
    状態BACKUPの
    インターフェースeth1が
    51 virtual_router_id 
    優先90 
    advert_int 1つの
    認証{ 
        AUTH_TYPE PASS 
        auth_pass 1111 
    } 
    track_script { 
    check_run 
    } 
  
    /data/sh/master.sh notify_master
    notify_backup /data/sh/backup.shを
    NOTIFY_STOP /data/sh/stop.sh 

    virtual_ipaddress { 
        192.168.0.88 
    } 
} 
[ルート@のMySQLサーバ-02 keepalivedの]#
コードをコピー

:場所のいくつかの主要なパラメータがあります
notify_master:後でマスタと状態変更スクリプトの実行が。

notify_backup:バックアップ後スクリプトの実行のステータスを変更。

notify_fault:障害後のスクリプトの実行のステータスを変更。

NOTIFY_STOP:停止後VRRPスクリプトの実行。

状態のバックアップ:障害が自動的に切り替わらないことです後に我々は、バックアップ用に設定されています。

nopreempt:操作を先取りしません。

これは4つのスクリプトを使用しています。backup.sh master.sh mysql_check.sh stop.sh

mysql_check.shスクリプトmysqldプロセスは、MySQLを接続しないことが判明したときに生きているかどうかを確認することで、自動的にそのVIPドリフトも、プロセスを強制終了keepalivedの。

上記のすべてのマスターサーバーから次のスクリプト、master.sh上記サーバから少しだけ異なります。プライマリ・データベースにスレーブを追加する場合は、電子メール通知を送信します。

コードをコピー
[ルート@のmysql-サーバー-01のSH]#猫mysql_check.shの
#!/ binに/ bashの
/root/.bash_profile 

回数= 1 

真しばらく
DO 

mysqlの-uroot -pmsandbox -S /tmp/mysql_sandbox14520.sock -e "ショーの状態;" >を/ dev / null 2>&1 
I = $?
PSの補助| グレップのmysqldを| grepの-v grepの>を/ dev / null 2>&1 
J = $?
[$ I = 0]の場合&& [$ jを= 0] 次に
   出0 
   [$ I = 1]の場合&& [$ jを= 0] 次に
       出0 
        [$回数-gt 5]場合
        、その後
              破る
        Fiあり
   数える++せ
   続けます
   Fi回線
Fiが

行われ

/etc/init.d/keepalived停止
[ルート@のmysql-サーバー-01 SH]#
コードをコピー

Master.shアクションはマスターに、スクリプトの状態の後に実行されます。1分などの後に遅延、遅延かどうかが存在する場合、最初のコピー遅延するかどうかを決定します。スキップして、レプリケーションを停止します。そして、アカウント、レコードとバイナリログのPOSポイントを承認しました。

コードをコピー
[ルート@のmysql-サーバー-02のSH]#猫master.shの
#!/ binに/ bashの
/root/.bash_profile 

MASTER_LOG_FILE = $(mysqlの-uroot -pmsandbox -S /tmp/mysql_sandbox14521.sock -e "ショースレーブステータスの\ G" | grepを-w MASTER_LOG_FILE | awkの-F ":" '{$ 2印刷}')
Relay_Master_Log_File = $(mysqlの-uroot -pmsandbox -S /tmp/mysql_sandbox14521.sock -e "ショースレーブステータスの\ G" | grepを-wのRelay_Master_Log_File | awkの-F ":" '{$ 2印刷}')
Read_Master_Log_Pos = $(mysqlの-uroot -pmsandbox -S /tmp/mysql_sandbox14521.sock -e "ショースレーブステータスの\ G" | grepを-w Read_Master_Log_Pos | awkの-F ":" '{$ 2印刷}')
Exec_Master_Log_Pos = $(mysqlの-uroot -pmsandbox - S /tmp/mysql_sandbox14521.sock -e "ショースレーブステータスの\ G" | グレップ-w Exec_Master_Log_Pos | 

awkの-F ":") '{$ 2印刷}' I = 1を

真の間、
DO

[$ MASTER_LOG_FILE = $のRelay_Master_Log_File]もし&& [$ Read_Master_Log_Pos -eq $ Exec_Master_Log_Pos] 
その後、
   "OK"エコー
   破る
他に
   1睡眠を

   [$ iの60を-gt]場合
   、その後
      破る
   Fiあり
   続ける
   私は++せ
Fiが
行わ

mysqlの-uroot -pmsandbox -S / TMP / mysql_sandbox14521.sock -e "スレーブを停止してください。" 
mysqlの-uroot -pmsandbox -S /tmp/mysql_sandbox14521.sock -e "設定されたグローバルinnodb_support_xa = 0;" 
mysqlの-uroot -pmsandbox -S /tmp/mysql_sandbox14521.sock -e "設定されたグローバルsync_binlog = 0;"
mysqlの-uroot -pmsandbox -S /tmp/mysql_sandbox14521.sock -e "設定されたグローバルinnodb_flush_log_at_trx_commit = 0;"
mysqlの-uroot -pmsandbox -S /tmp/mysql_sandbox14521.sock -e "フラッシュログ; *上のすべての権限を付与* '123456 BY' IDENTIFIED '%' @ '管理者'に;フラッシュ権限;" 
mysqlの-uroot -pmsandbox -S /tmp/mysql_sandbox14521.sock -e "ショーのマスターステータス;" > / TMP / master_status _ $(日付の"%H%M D- +%のYの%mの%")。TXT 


[ルート@のMySQLサーバ-02 SH]#
コードをコピー

スレーブ上master.sh

コードをコピー
[ルート@のmysql-サーバー-02のSH]#猫master.shの
#!/ binに/ bashの
/root/.bash_profile 

MASTER_LOG_FILE = $(mysqlの-uroot -pmsandbox -S /tmp/mysql_sandbox14521.sock -e "ショースレーブステータスの\ G" | grepを-w MASTER_LOG_FILE | awkの-F ":" '{$ 2印刷}')
Relay_Master_Log_File = $(mysqlの-uroot -pmsandbox -S /tmp/mysql_sandbox14521.sock -e "ショースレーブステータスの\ G" | grepを-wのRelay_Master_Log_File | awkの-F ":" '{$ 2印刷}')
Read_Master_Log_Pos = $(mysqlの-uroot -pmsandbox -S /tmp/mysql_sandbox14521.sock -e "ショースレーブステータスの\ G" | grepを-w Read_Master_Log_Pos | awkの-F ":" '{$ 2印刷}')
Exec_Master_Log_Pos = $(mysqlの-uroot -pmsandbox - S /tmp/mysql_sandbox14521.sock -e "ショースレーブステータスの\ G" | グレップ-w Exec_Master_Log_Pos | 

awkの-F ":") '{$ 2印刷}' I = 1を

真の間、
DO

[$ MASTER_LOG_FILE = $のRelay_Master_Log_File]もし&& [$ Read_Master_Log_Pos -eq $ Exec_Master_Log_Pos] 
その後、
   "OK"エコー
   破る
他に
   1睡眠を

   [$ iの60を-gt]場合
   、その後
      破る
   Fiあり
   続ける
   私は++せ
Fiが
行わ

mysqlの-uroot -pmsandbox -S / TMP / mysql_sandbox14521.sock -e "スレーブを停止してください。" 
mysqlの-uroot -pmsandbox -S /tmp/mysql_sandbox14521.sock -e "設定されたグローバルinnodb_support_xa = 0;" 
mysqlの-uroot -pmsandbox -S /tmp/mysql_sandbox14521.sock -e "設定されたグローバルsync_binlog = 0;" 
mysqlの-uroot -pmsandbox -S /tmp/mysql_sandbox14521.sock -e "設定されたグローバルinnodb_flush_log_at_trx_commit = 0;"
>> / tmpに/ステータスエコー"$マスター" | Muttは「主に奴隷を!!!」-s [email protected]

>>を/ tmp /ステータス
マスター= `猫を/ tmp / status`
コードをコピー

:次のように遅延のアイデアがあるかどうかを確認するためのスクリプトをコピーして
違いのRelay_Master_Log_FileとMASTER_LOG_FILEがある場合は最初に表示するために、1
2、のRelay_Master_Log_FileとMASTER_LOG_FILEは違いがある場合、遅延の多くを説明し
、のRelay_Master_Log_FileとMASTER_LOG_FILE差はなかった場合、およびExec_Master_Log_Posを見て3 Read_Master_Log_Pos差

Seconds_Behind_Masterで判断するのではなく、この値は実際にもMASTER_LOG_FILEとのRelay_Master_Log_Fileギャップがあるが、より厳密なことが行われ、マスターにマスターステータスを表示し、同時に実行されるかどうかを考慮して、スレーブSQLスレッドとIOスレッド間の遅延を表し、対照的。また、これは行うことができますハンドオーバ処理でMHAです。MMMは、ライブラリからのshowスレーブステータスの実行に切り替えます。力のため、データの一貫性の要件やMHA。話を戻そう。^ _ ^

Backup.shアクションスクリプトは、バックアップ後スクリプトの実行のステータスを変更することです。

コードをコピー
[root@mysql-server-02 sh]# cat backup.sh 
#!/bin/bash

. /root/.bash_profile

mysql -uroot -pmsandbox -S /tmp/mysql_sandbox14521.sock -e "GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY '123456';flush privileges;"
mysql -uroot -pmsandbox -S /tmp/mysql_sandbox14521.sock -e "set global event_scheduler=0;"
mysql -uroot -pmsandbox -S /tmp/mysql_sandbox14521.sock -e "set global innodb_support_xa=0;"
mysql -uroot -pmsandbox -S /tmp/mysql_sandbox14521.sock -e "set global sync_binlog=0;"
mysql -uroot -pmsandbox -S /tmp/mysql_sandbox14521.sock -e "set global innodb_flush_log_at_trx_commit=0;"
コードをコピー

stop.sh 表示keepalived停止以后需要执行的脚本。更改密码,设置参数,检查是否还有写入操作,最后无论是否执行完毕,都退出。

コードをコピー
[root@mysql-server-02 sh]# cat stop.sh 
#!/bin/bash

. /root/.bash_profile

mysql -uroot -pmsandbox -S /tmp/mysql_sandbox14521.sock -e "GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%' IDENTIFIED BY '1q2w3e4r';flush privileges;"
mysql -uroot -pmsandbox -S /tmp/mysql_sandbox14521.sock -e "set global innodb_support_xa=1;"
mysql -uroot -pmsandbox -S /tmp/mysql_sandbox14521.sock -e "set global sync_binlog=1;"
mysql -uroot -pmsandbox -S /tmp/mysql_sandbox14521.sock -e "set global innodb_flush_log_at_trx_commit=1;"

M_File1=$(mysql -uroot -pmsandbox -S /tmp/mysql_sandbox14521.sock -e "show master status\G" | awk -F': ' '/File/{print $2}')
M_Position1=$(mysql -uroot -pmsandbox -S /tmp/mysql_sandbox14521.sock -e "show master status\G" | awk -F': ' '/Position/{print $2}')
sleep 1
M_File2=$(mysql -uroot -pmsandbox -S /tmp/mysql_sandbox14521.sock -e "show master status\G" | awk -F': ' '/File/{print $2}')
M_Position2=$(mysql -uroot -pmsandbox -S /tmp/mysql_sandbox14521.sock -e "show master status\G" | awk -F': ' '/Position/{print $2}')

i=1

while true
do

if [ $M_File1 = $M_File1 ] && [ $M_Position1 -eq $M_Position2 ]
then
   echo "ok"
   break
else
   sleep 1

   if [ $i -gt 60 ]
   then
      break
   fi
   continue
   let i++
fi
done


[root@mysql-server-02 sh]# 
コードをコピー

到这里基本就介绍完了。最后我们先看主从复制是否正常,如果正常,然后分别启动keepalived,然后进行故障切换测试。

slave状态:

コードをコピー
node2 [localhost] {msandbox} ((none)) > pager cat | egrep 'Master_Log_File|Relay_Master_Log_File|Read_Master_Log_Pos|Exec_Master_Log_Pos|Running'
PAGER set to 'cat | egrep 'Master_Log_File|Relay_Master_Log_File|Read_Master_Log_Pos|Exec_Master_Log_Pos|Running''
node2 [localhost] {msandbox} ((none)) > show slave status\G
              Master_Log_File: mysql-bin.000001
          Read_Master_Log_Pos: 409
        Relay_Master_Log_File: mysql-bin.000001
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
          Exec_Master_Log_Pos: 409
      Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
1 row in set (0.00 sec)

node2 [localhost] {msandbox} ((none)) > 
コードをコピー

master 状态:

コードをコピー
node1 [localhost] {msandbox} ((none)) > show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 |      409 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

node1 [localhost] {msandbox} ((none)) > 
コードをコピー

根据我前面给的判断条件,可以看出我的复制没有任何延时。
下面分别在master上和slave上启动keepalived进程。以及查看日志(上面的查看只是给大家说明如何判断复制是否延迟)

master

コードをコピー
[root@mysql-server-01 sh]# /etc/init.d/keepalived start
Starting keepalived:                                       [  OK  ]
[root@mysql-server-01 sh]# tail -f /var/log/messages
Jul 20 20:48:03 mysql-server-01 Keepalived_vrrp[13040]: Netlink reflector reports IP 192.168.87.134 added
Jul 20 20:48:03 mysql-server-01 Keepalived_vrrp[13040]: Netlink reflector reports IP 192.168.0.100 added
Jul 20 20:48:03 mysql-server-01 Keepalived_vrrp[13040]: Registering Kernel netlink reflector
Jul 20 20:48:03 mysql-server-01 Keepalived_vrrp[13040]: Registering Kernel netlink command channel
Jul 20 20:48:03 mysql-server-01 Keepalived_vrrp[13040]: Registering gratuitous ARP shared channel
Jul 20 20:48:03 mysql-server-01 Keepalived_healthcheckers[13039]: Netlink reflector reports IP 192.168.0.100 added
Jul 20 20:48:03 mysql-server-01 Keepalived_healthcheckers[13039]: Netlink reflector reports IP 192.168.87.134 added
Jul 20 20:48:03 mysql-server-01 Keepalived_healthcheckers[13039]: Netlink reflector reports IP 192.168.0.100 added
Jul 20 20:48:03 mysql-server-01 Keepalived_healthcheckers[13039]: Registering Kernel netlink reflector
Jul 20 20:48:03 mysql-server-01 Keepalived_healthcheckers[13039]: Registering Kernel netlink command channel
Jul 20 20:48:23 mysql-server-01 Keepalived_healthcheckers[13039]: Opening file '/etc/keepalived/keepalived.conf'.
Jul 20 20:48:23 mysql-server-01 Keepalived_healthcheckers[13039]: Configuration is using : 6489 Bytes
Jul 20 20:48:23 mysql-server-01 Keepalived_vrrp[13040]: Opening file '/etc/keepalived/keepalived.conf'.
Jul 20 20:48:23 mysql-server-01 Keepalived_vrrp[13040]: Configuration is using : 66476 Bytes
Jul 20 20:48:23 mysql-server-01 Keepalived_vrrp[13040]: Using LinkWatch kernel netlink reflector...
Jul 20 20:48:23 mysql-server-01 Keepalived_healthcheckers[13039]: Using LinkWatch kernel netlink reflector...
Jul 20 20:48:23 mysql-server-01 Keepalived_vrrp[13040]: VRRP_Instance(VI_1) Entering BACKUP STATE
Jul 20 20:48:23 mysql-server-01 Keepalived_vrrp[13040]: VRRP sockpool: [ifindex(3), proto(112), unicast(0), fd(10,11)]
Jul 20 20:48:23 mysql-server-01 Keepalived_vrrp[13040]: VRRP_Script(check_run) succeeded
Jul 20 20:48:27 mysql-server-01 Keepalived_vrrp[13040]: VRRP_Instance(VI_1) Transition to MASTER STATE
Jul 20 20:48:27 mysql-server-01 Keepalived_vrrp[13040]: VRRP_Group(VG1) Syncing instances to MASTER state
Jul 20 20:48:28 mysql-server-01 Keepalived_vrrp[13040]: VRRP_Instance(VI_1) Entering MASTER STATE
Jul 20 20:48:28 mysql-server-01 Keepalived_vrrp[13040]: VRRP_Instance(VI_1) setting protocol VIPs.
Jul 20 20:48:28 mysql-server-01 Keepalived_vrrp[13040]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth1 for 192.168.0.88
Jul 20 20:48:28 mysql-server-01 Keepalived_healthcheckers[13039]: Netlink reflector reports IP 192.168.0.88 added
Jul 20 20:48:33 mysql-server-01 Keepalived_vrrp[13040]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth1 for 192.168.0.88
コードをコピー

slave

 View Code

可以看见VIP已经绑定在了master上,执行ip addr看看是否有这个VIP

[root@mysql-server-01 ~]# ip addr | grep eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    inet 192.168.0.100/24 brd 192.168.0.255 scope global eth1
    inet 192.168.0.88/32 scope global eth1
[root@mysql-server-01 ~]# 

可以看见vip也已经绑定成功。

现在我们从远程机器登陆看看,使用vip,创建测试库,插入数据,最后模拟mysqld crash

コードをコピー
[root@mysql-server-03 ~]# mysql -uadmin -p123456 -h 192.168.0.88 -P 14520   
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 47
Server version: 5.6.19-log MySQL Community Server (GPL)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database dengyayun;
Query OK, 1 row affected (0.01 sec)

mysql> use dengyayun
Database changed
mysql> create table t1 ( id int);
Query OK, 0 rows affected (0.38 sec)

mysql> insert into t1 select 999;
Query OK, 1 row affected (0.03 sec)
Records: 1  Duplicates: 0  Warnings: 0

mysql> 
コードをコピー

发现使用vip登陆没有问题,创建库以及插入数据都木有问题。现在杀掉mysqld进程,看vip是否进行了漂移,以及查看数据是否存在。

[root@mysql-server-01 ~]# pkill -9 mysqld

过了一会儿,报警邮件就到了,以及vip也已经切换了。如下:

查看slave上面的message信息,如下输出:

コードをコピー
[root@mysql-server-02 ~]# tail -n 20 /var/log/messages 
Jul 20 22:00:20 mysql-server-02 Keepalived_healthcheckers[13327]: Registering Kernel netlink command channel
Jul 20 22:00:40 mysql-server-02 Keepalived_vrrp[13328]: Opening file '/etc/keepalived/keepalived.conf'.
Jul 20 22:00:40 mysql-server-02 Keepalived_vrrp[13328]: Configuration is using : 66454 Bytes
Jul 20 22:00:40 mysql-server-02 Keepalived_vrrp[13328]: Using LinkWatch kernel netlink reflector...
Jul 20 22:00:40 mysql-server-02 Keepalived_healthcheckers[13327]: Opening file '/etc/keepalived/keepalived.conf'.
Jul 20 22:00:40 mysql-server-02 Keepalived_healthcheckers[13327]: Configuration is using : 6467 Bytes
Jul 20 22:00:40 mysql-server-02 Keepalived_healthcheckers[13327]: Using LinkWatch kernel netlink reflector...
Jul 20 22:00:40 mysql-server-02 Keepalived_vrrp[13328]: VRRP_Instance(VI_1) Entering BACKUP STATE
Jul 20 22:00:40 mysql-server-02 Keepalived_vrrp[13328]: VRRP sockpool: [ifindex(3), proto(112), unicast(0), fd(10,11)]
Jul 20 22:00:40 mysql-server-02 Keepalived_vrrp[13328]: VRRP_Script(check_run) succeeded
Jul 20 22:07:47 mysql-server-02 dhclient[7343]: DHCPREQUEST on eth0 to 192.168.87.254 port 67 (xid=0x4ada08db)
Jul 20 22:07:47 mysql-server-02 dhclient[7343]: DHCPACK from 192.168.87.254 (xid=0x4ada08db)
Jul 20 22:07:49 mysql-server-02 dhclient[7343]: bound to 192.168.87.135 -- renewal in 885 seconds.
Jul 20 22:10:38 mysql-server-02 Keepalived_vrrp[13328]: VRRP_Instance(VI_1) Transition to MASTER STATE
Jul 20 22:10:38 mysql-server-02 Keepalived_vrrp[13328]: VRRP_Group(VG1) Syncing instances to MASTER state
Jul 20 22:10:39 mysql-server-02 Keepalived_vrrp[13328]: VRRP_Instance(VI_1) Entering MASTER STATE
Jul 20 22:10:39 mysql-server-02 Keepalived_vrrp[13328]: VRRP_Instance(VI_1) setting protocol VIPs.
Jul 20 22:10:39 mysql-server-02 Keepalived_vrrp[13328]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth1 for 192.168.0.88
Jul 20 22:10:39 mysql-server-02 Keepalived_healthcheckers[13327]: Netlink reflector reports IP 192.168.0.88 added
Jul 20 22:10:44 mysql-server-02 Keepalived_vrrp[13328]: VRRP_Instance(VI_1) Sending gratuitous ARPs on eth1 for 192.168.0.88
[root@mysql-server-02 ~]# 
コードをコピー

最后我们再次使用vip登陆;发现数据没有异常。复制也停止了,因为已经切换为主库。

コードをコピー
[root@mysql-server-03 ~]# mysql -uadmin -p123456 -h 192.168.0.88 -P14521
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 301
Server version: 5.6.19-log MySQL Community Server (GPL)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> select * from dengyayun.t1;
+------+
| id   |
+------+
|  999 |
+ ------ + 
セットにおける1行(0.00秒)

のMySQL>ページャ猫| egrepの'IO_Running | SQL_Running' 
猫」に設定PAGER | egrepの'IO_Running | SQL_Running」
MySQLの>ショースレーブ状態\ G 
             Slave_IO_Running:いいえ
            Slave_SQL_Running:いいえ
      Slave_SQL_Running_State:
セット内の1行(0.00秒)

のMySQL>

おすすめ

転載: www.cnblogs.com/janehoo/p/11117872.html
おすすめ