https://www.cnblogs.com/gomysql/p/3856484.html
MySQLはのような高可用性ソリューション、多くの持っているクラスター、MMM、MHA、DRBDなど、これらはより複雑で、私の以前の記事も説明されています。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
可以看见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>