日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

源代码编译MYSQL5.6 环境下的MHA+KEEPALIVED的安装和维护

發布時間:2025/3/20 数据库 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 源代码编译MYSQL5.6 环境下的MHA+KEEPALIVED的安装和维护 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前????言

摘???要

MHA?是當?master?出現故障,挑選一個?slave?作為新的?master?并構建成新的

主從架構的管理工具。從?master?出現故障到構建成新的主從架構時間是?10-30

秒。在?master?出現故障時可能會出現?slave?同步的數據不一致的現象,此工具

可以自動應用差異的中繼日志到其他?slave?上保證數據的一致性。

一.Mha?優點

1.M?aster?crash?時可以快速的進行故障切換。

9-12?秒內可以檢測到?master?故障,?7-10?秒內可以關閉?master?機器避免腦

裂,在幾秒內可以應用差異日志,并構建新的主從架構,整個過程大約在?10-30

秒內可以完成,最大化的減少故障修復時間。

2.M?aster?crash?時可以最大化的減少數據丟失

當?master?crash?時?MHA?自動檢測選擇數據同步最全的?slave,并把差異日

志應用到其他?slave?上,?以保障數據的一致性。結合使用?mysql?

3.Semi-Synchronous?Replication?可以最大化的減少數據的丟失。

MHA?的更改升級配置等不影響線上正在運行的數據庫

使用?mha?不需要增加太多的服務器

MHA?由?MHA?Manager?和?MHA?Node?組成。?MHA?Node?運行在?MYSQL?服務器上,

所以不會因為?MHA?node?增加新的服務器。MHA?Manager?通常需要獨立運行在一

臺服務器上,所以你需要增加一臺服務器用于監控管理運行?MHA?Manager,但

是一臺服務器上的?MHA?Manager?可以同時監控管理多達百臺?master,所以總的

來說服務器增加不會太多。MHA?Manger?也可以運行在一臺?slave?上,這樣總的

服務器數也不會增加。

4.原來應用系統整體性能不會降低太多

MHA?工作在異步或半同步的主從架構上。當監控?master?時,MHA?會每隔幾

Mha?部署測試文檔

5

秒?(默認?3?秒)?向?master?發出?ping?包并且不需要大的?sql?語句用于監控?master

的健康狀況。Slave?需要開啟?binlog,整體性能不會有太大的降低。

5.MHA?適合任何存儲引擎

只要能主從復制的存儲引擎它都支持,不限于支持事物的?innodb?引擎。

Mha?部署測試文檔


二.安??裝

共有?4?臺服務器:?一個管理服務器,一個?master?服務器,兩個?slave?服務器。

操作系統?Centos?6.4?64?bit?。

192.168.186.141?MYSQL.COM

192.168.186.142?SLAVE1.COM

192.168.186.146?SLAVE2.COM

192.168.186.144?MANAGER.COM

數據庫版本mysql-5.6.10

1.首先在三臺機器上裝編譯安裝MYSQL-5.6.10

關閉selinux?iptables?服務以便后期主從同步不出錯

[root@MYSQL?~]#?cd?/usr/local/src/ [root@MYSQL?src]#?ls installmysql5.sh??mysql-5.6.10??mysql-5.6.10.tar.gz [root@MYSQL?src]#?sh?installmysql5.sh? please?enter?you?mysql?version?(eg:/mysql-5.5.34):mysql-5.6.10 please?enter?you?mysql?datadir?(eg:/data/mysql/data):/date/mysql/data

2.配置HOSTS環境


[root@MANAGER?~]#?vi?/etc/hosts[root@MYSQL?etc]#?vi?/etc/hosts127.0.0.1???localhost?localhost.localdomain?localhost4?localhost4.localdomain4 ::1?????????localhost?localhost.localdomain?localhost6?localhost6.localdomain6 192.168.186.141?MYSQL.COM 192.168.186.142?SLAVE1.COM 192.168.186.146?SLAVE2.COM 192.168.186.144?MANAGER.COM[root@MYSQL?etc]#?for?i?in??142?146?144;do?scp?/etc/hosts?192.168.186.$i:/etc/;done root@192.168.186.142's?password:? Permission?denied,?please?try?again. root@192.168.186.142's?password:? Permission?denied,?please?try?again. root@192.168.186.142's?password:? hosts?????????????????????????????????????????????????????????????????????????100%??266?????0.3KB/s???00:00???? root@192.168.186.146's?password:? hosts?????????????????????????????????????????????????????????????????????????100%??266?????0.3KB/s???00:00???? root@192.168.186.144's?password:

3.安裝MYSQL?主從半同步


#?所有mysql數據庫服務器,安裝半同步插件(semisync_master.so,semisync_slave.so)?? mysql>?install?plugin?rpl_semi_sync_master?soname?'semisync_master.so';?????? mysql>?install?plugin?rpl_semi_sync_slave?soname?'semisync_slave.so';??[root@MYSQL?etc]vi?/etc/my.cnf [mysqld] rpl_semi_sync_master_enabled=1 rpl_semi_sync_master_timeout=1000 rpl_semi_sync_slave_enabled=1 relay_log_purge=0 skip-name-resolve #socket=/usr/mysql.sock #auto_increment_offset?=?2 #auto_increment_increment?=?2 server-id?=?1 log-bin=mysql-bin read_only=1 slave-skip-errors=1396

三臺機器可以全部開啟?僅僅server-id不同

mysql>?show?variables?like?'%sync%';??

#?查看半同步狀態:??

mysql>?show?status?like?'%sync%';??

#?有幾個狀態參數值得關注的:??

rpl_semi_sync_master_status:顯示主服務是異步復制模式還是半同步復制模式??

rpl_semi_sync_master_clients:顯示有多少個從服務器配置為半同步復制模式??

rpl_semi_sync_master_yes_tx:顯示從服務器確認成功提交的數量??

rpl_semi_sync_master_no_tx:顯示從服務器確認不成功提交的數量??

rpl_semi_sync_master_tx_avg_wait_time:事務因開啟semi_sync,平均需要額外等待的時間??

rpl_semi_sync_master_net_avg_wait_time:事務進入等待隊列后,到網絡平均等待時間 ?

[root@MYSQL?src]#?service?mysqld?restart?每臺機器重啟

4.每一臺機器配置互相無交互


[root@MYSQL?src]#?cat?/etc/hosts 127.0.0.1???localhost?localhost.localdomain?localhost4?localhost4.localdomain4 ::1?????????localhost?localhost.localdomain?localhost6?localhost6.localdomain6 192.168.186.141?MYSQL.COM 192.168.186.142?SLAVE1.COM 192.168.186.146?SLAVE2.COM 192.168.186.144?MANAGER.COM[root@MYSQL?src]#?ssh-keygen? [root@MYSQL?src]#?ssh-copy-id?192.168.186.142 [root@MYSQL?src]#?ssh-copy-id?192.168.186.144 [root@MYSQL?src]#?ssh-copy-id?192.168.186.146其他臺配置方法與以上一致?保證每臺互相無交互 配置完成后每一個都登錄一次 [root@MYSQL?~]#?ssh?MANAGER.COM [root@MYSQL?~]#?ssh?SLAVE1.COM [root@MYSQL?~]#?ssh?SALVE2.COM 作用首次連接需要輸入一次YES?在know-hosts問價記錄,達成無交互

5.配置主從


執行主從腳本

建議自己做?用這個腳本要是后期帶來各種不便?不要怪我

詳見附件

[root@MYSQL?src]#?sh?mslave.sh? please?enter?you?mysql?SLAVEIP??(eg:192.168.152.138):192.168.186.142 please?enter?you?master?mysql?password??(eg:yunwei123):123 please?enter?you?slave?mysql?password??(eg:yunwei123):123 please?enter?you?master?mysql?binlog??(eg:mysql-bin.000001):mysql-bin.000001[root@MYSQL?src]#?sh?mslave.sh? please?enter?you?mysql?SLAVEIP??(eg:192.168.152.138):192.168.186.146 please?enter?you?master?mysql?password??(eg:yunwei123):123??這個是你的主MYSQL?登錄密碼 please?enter?you?slave?mysql?password??(eg:yunwei123):123????這個是你的從的MYSQL登錄密碼 please?enter?you?master?mysql?binlog??(eg:mysql-bin.000001):mysql-bin.000001至此MYSQL?安裝主從半同步配置完成

三.安裝配置MHA


?

1.安裝

每臺機器做如下操作

[root@SLAVE2?data]#rpm?-ivh?http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm[root@MANAGER?src]#?yum?clean?all Loaded?plugins:?fastestmirror,?refresh-packagekit,?security Cleaning?repos:?epel?name Cleaning?up?Everything Cleaning?up?list?of?fastest?mirrors[root@MANAGER?src]#?yum?makecache[root@MANAGER?src]#?rpm?--import?/etc/pki/rpm-gpg/*[root@SLAVE2?data]#?yum??-y?install?perl-DBD-MySQL?perl-Config-Tiny?perl-Log-Dispatch?perl-Parallel-ForkManager?perl-Config-IniFiles??ncftp?perl-Params-Validate??perl-CPAN?perl-Test-Mock-LWP.noarch?perl-LWP-Authen-Negotiate.noarch?perl-devel?[root@SLAVE2?data]#yum?install?perl-ExtUtils-CBuilder?perl-ExtUtils-MakeMaker??這個百度文檔沒有但是顯然是要裝的

以下操作管理節點需要兩個都安裝,在3臺數據庫節點只要安裝MHA的node節點:

1?#?如果安裝下面包,報依賴關系錯,請先安裝mysql-share-compat??

2?#?先安裝下面的?perl-dbd-mysql??

3?#?在下面執行perl時,如果出現報錯,需要安裝如下這幾個perl包:?perl-devel?perl-CPAN??

[root@MANAGER?src]#?tar?-xf?mha4mysql-node-0.53.tar.gz? [root@MANAGER?src]#?cd?mha4mysql-node-0.53 [root@MANAGER?mha4mysql-node-0.53]#?perl?Makefile.PL?????????? [root@MANAGER?mha4mysql-node-0.53]#?make?&&?make?install??????***字體這部分是每一臺節點都要做的[root@MANAGER?src]#?tar?-xf??mha4mysql-manager-0.53.tar.gz [root@MANAGER?src]#?cd?mha4mysql-manager-0.53 [root@MANAGER?mha4mysql-manager-0.53]#?perl?Makefile.PL? [root@MANAGER?mha4mysql-manager-0.53]#?make?&&?make?install 根據提示輸入?如果中間有卡頓現象?直接crtl+c?然后繼續會出現下載的進度條,說明是正常的 [root@MANAGER?src]#?mkdir?/etc/masterha [root@MANAGER?mha]#?mkdir?-p?/master/app1 [root@MANAGERmha]#?mkdir?-p?/scripts [root@MANAGER?mha]#?cp?samples/conf/*?/etc/masterha/ [root@MANAGERmha]#?cp?samples/scripts/*??/scripts [root@MANAGER?mha4mysql-manager-0.53]#??cp?samples/conf/*?/etc/masterha/

2.配置


[root@MANAGER?masterha]#?vi?app1.cnf? 內容如下; [server?default] manager_workdir=/masterha/app1 manager_log=/masterha/app1/manager.log user=mha_mon password=123 ssh_user=root repl_user=slave???做主從的用戶??這個也是每一臺都要授權的 repl_password=yunwei123??做主從的密碼?? ping_interval=1 shutdown_script="" master_ip_online_change_script="" report_script=""[server1] hostname=192.168.186.141 master_binlog_dir=/data/mysql/data candidate_master=1[server2] hostname=192.168.186.142 master_binlog_dir=/data/mysql/data candidate_master=1[server3] hostname=192.168.186.146 master_binlog_dir=/data/mysql/data no_master=1保存退出! [root@MANAGER?masterha]#?>masterha_default.cnf

3.測試ssh


[root@MANAGER?masterha]#?masterha_check_ssh?--global_conf=/etc/masterha/masterha_default.cnf??--conf=/etc/masterha/app1.cnf Wed?Jul??9?02:26:57?2014?-?[info]?Reading?default?configuratoins?from?/etc/masterha/masterha_default.cnf.. Wed?Jul??9?02:26:57?2014?-?[info]?Reading?application?default?configurations?from?/etc/masterha/app1.cnf.. Wed?Jul??9?02:26:57?2014?-?[info]?Reading?server?configurations?from?/etc/masterha/app1.cnf.. Wed?Jul??9?02:26:57?2014?-?[info]?Starting?SSH?connection?tests.. Wed?Jul??9?02:26:58?2014?-?[debug]? Wed?Jul??9?02:26:57?2014?-?[debug]??Connecting?via?SSH?from?root@192.168.186.141(192.168.186.141:22)?to?root@192.168.186.142(192.168.186.142:22).. Wed?Jul??9?02:26:57?2014?-?[debug]???ok. Wed?Jul??9?02:26:57?2014?-?[debug]??Connecting?via?SSH?from?root@192.168.186.141(192.168.186.141:22)?to?root@192.168.186.146(192.168.186.146:22).. Wed?Jul??9?02:26:57?2014?-?[debug]???ok. Wed?Jul??9?02:26:58?2014?-?[debug]? Wed?Jul??9?02:26:57?2014?-?[debug]??Connecting?via?SSH?from?root@192.168.186.142(192.168.186.142:22)?to?root@192.168.186.141(192.168.186.141:22).. Wed?Jul??9?02:26:57?2014?-?[debug]???ok. Wed?Jul??9?02:26:57?2014?-?[debug]??Connecting?via?SSH?from?root@192.168.186.142(192.168.186.142:22)?to?root@192.168.186.146(192.168.186.146:22)..Wed?Jul??9?02:26:58?2014?-?[debug]???ok. Wed?Jul??9?02:26:58?2014?-?[debug]? Wed?Jul??9?02:26:58?2014?-?[debug]??Connecting?via?SSH?from?root@192.168.186.146(192.168.186.146:22)?to?root@192.168.186.141(192.168.186.141:22).. Wed?Jul??9?02:26:58?2014?-?[debug]???ok. Wed?Jul??9?02:26:58?2014?-?[debug]??Connecting?via?SSH?from?root@192.168.186.146(192.168.186.146:22)?to?root@192.168.186.142(192.168.186.142:22).. Wed?Jul??9?02:26:58?2014?-?[debug]???ok. Wed?Jul??9?02:26:58?2014?-?[info]?All?SSH?connection?tests?passed?successfully.登入每臺數據庫 mysql>?grant?all?privileges?on?*.*?to?mha_mon@'%'?identified?by?'123'; Query?OK,?0?rows?affected?(1.00?sec)mysql>?flush?privileges; Query?OK,?0?rows?affected?(0.01?sec)

4.注意

[root@SLAVE1?~]#?ln?-s?/usr/local/mysql/bin/*?/usr/bin

在每臺MYSQL?服務器上做這件事情?極度重要哦

?

mysql>set?global?read_only=1;??set??global??relay_log_purge=0;

??在從上執行?或者干脆寫到my.cnf文件里面最好

?

[root@SLAVE1?~]#?vi?/etc/my.cnf read_only=1 slave-skip-errors=1396


為什么要跳過這個錯誤呢?因為啊在主里面刪除用戶的時候?從會報錯說沒有這個用戶所以跳過這個錯誤吧

?

?

如果數據庫存在空的用戶?域名的用戶?一定要刪除否則MHA??連接MYSQL?會報錯連不上?一般只要在從上面刪除?如果直接沒刪除也OK?那就OK?吧如果報錯登錄不了就刪除掉吧?或者跳過域名解析,或者你授權的時候記得也授權域名等等方法多種?我的方式是跳過域名解析的?skip-name-resolve

mysql>?select?user,host?from?mysql.user; +---------+---------------+ |?user????|?host??????????| +---------+---------------+ |?root????|?127.0.0.1?????| |?mha_mon?|?192.168.186.%?| |?repl????|?192.168.186.%?| |?slave???|?192.168.186.%?| |?root????|?::1???????????| |?????????|?SLAVE2.COM????| |?root????|?SLAVE2.COM????| |?root????|?localhost?????| +---------+---------------+ 8?rows?in?set?(0.00?sec) mysql>?drop?user?'root'@SLAVE2.COM; Query?OK,?0?rows?affected?(0.00?sec)


?

5.測試mysql


?

?

[root@MANAGER?masterha]#??masterha_check_repl???--conf=/etc/masterha/app1.cnf Wed?Jul??9?04:23:16?2014?-?[warning]?Global?configuration?file?/etc/masterha_default.cnf?not?found.?Skipping. Wed?Jul??9?04:23:16?2014?-?[info]?Reading?application?default?configurations?from?/etc/masterha/app1.cnf.. Wed?Jul??9?04:23:16?2014?-?[info]?Reading?server?configurations?from?/etc/masterha/app1.cnf.. Wed?Jul??9?04:23:16?2014?-?[info]?MHA::MasterMonitor?version?0.53. Wed?Jul??9?04:23:17?2014?-?[info]?Dead?Servers: Wed?Jul??9?04:23:17?2014?-?[info]?Alive?Servers: Wed?Jul??9?04:23:17?2014?-?[info]???192.168.186.141(192.168.186.141:3306) Wed?Jul??9?04:23:17?2014?-?[info]???192.168.186.142(192.168.186.142:3306) Wed?Jul??9?04:23:17?2014?-?[info]???SLAVE2.COM(192.168.186.146:3306) Wed?Jul??9?04:23:17?2014?-?[info]?Alive?Slaves: Wed?Jul??9?04:23:17?2014?-?[info]???192.168.186.142(192.168.186.142:3306)??Version=5.6.10-log?(oldest?major?version?between?slaves)?log-bin:enabled Wed?Jul??9?04:23:17?2014?-?[info]?????Replicating?from?192.168.186.141(192.168.186.141:3306) Wed?Jul??9?04:23:17?2014?-?[info]?????Primary?candidate?for?the?new?Master?(candidate_master?is?set) Wed?Jul??9?04:23:17?2014?-?[info]???SLAVE2.COM(192.168.186.146:3306)??Version=5.6.10-log?(oldest?major?version?between?slaves)?log-bin:enabled Wed?Jul??9?04:23:17?2014?-?[info]?????Replicating?from?192.168.186.141(192.168.186.141:3306) Wed?Jul??9?04:23:17?2014?-?[info]?????Not?candidate?for?the?new?Master?(no_master?is?set) Wed?Jul??9?04:23:17?2014?-?[info]?Current?Alive?Master:?192.168.186.141(192.168.186.141:3306) Wed?Jul??9?04:23:17?2014?-?[info]?Checking?slave?configurations.. Wed?Jul??9?04:23:17?2014?-?[info]?Checking?replication?filtering?settings.. Wed?Jul??9?04:23:17?2014?-?[info]??binlog_do_db=?,?binlog_ignore_db=? Wed?Jul??9?04:23:17?2014?-?[info]??Replication?filtering?check?ok. Wed?Jul??9?04:23:17?2014?-?[info]?Starting?SSH?connection?tests.. Wed?Jul??9?04:23:18?2014?-?[info]?All?SSH?connection?tests?passed?successfully. Wed?Jul??9?04:23:18?2014?-?[info]?Checking?MHA?Node?version.. Wed?Jul??9?04:23:19?2014?-?[info]??Version?check?ok. Wed?Jul??9?04:23:19?2014?-?[info]?Checking?SSH?publickey?authentication?settings?on?the?current?master.. Wed?Jul??9?04:23:19?2014?-?[info]?HealthCheck:?SSH?to?192.168.186.141?is?reachable. Wed?Jul??9?04:23:19?2014?-?[info]?Master?MHA?Node?version?is?0.53. Wed?Jul??9?04:23:19?2014?-?[info]?Checking?recovery?script?configurations?on?the?current?master.. Wed?Jul??9?04:23:19?2014?-?[info]???Executing?command:?save_binary_logs?--command=test?--start_pos=4?--binlog_dir=/data/mysql/data?--output_file=/var/tmp/save_binary_logs_test?--manager_version=0.53?--start_file=mysql-bin.000001? Wed?Jul??9?04:23:19?2014?-?[info]???Connecting?to?root@192.168.186.141(192.168.186.141)..?Creating?/var/tmp?if?not?exists..????ok.Checking?output?directory?is?accessible?or?not..ok.Binlog?found?at?/data/mysql/data,?up?to?mysql-bin.000001 Wed?Jul??9?04:23:20?2014?-?[info]?Master?setting?check?done. Wed?Jul??9?04:23:20?2014?-?[info]?Checking?SSH?publickey?authentication?and?checking?recovery?script?configurations?on?all?alive?slave?servers.. Wed?Jul??9?04:23:20?2014?-?[info]???Executing?command?:?apply_diff_relay_logs?--command=test?--slave_user=mha_mon?--slave_host=192.168.186.142?--slave_ip=192.168.186.142?--slave_port=3306?--workdir=/var/tmp?--target_version=5.6.10-log?--manager_version=0.53?--relay_log_info=/data/mysql/data/relay-log.info??--relay_dir=/data/mysql/data/??--slave_pass=xxx Wed?Jul??9?04:23:20?2014?-?[info]???Connecting?to?root@192.168.186.142(192.168.186.142:22)..?Checking?slave?recovery?environment?settings..Opening?/data/mysql/data/relay-log.info?...?ok.Relay?log?found?at?/data/mysql/data,?up?to?SLAVE1-relay-bin.000002Temporary?relay?log?file?is?/data/mysql/data/SLAVE1-relay-bin.000002Testing?mysql?connection?and?privileges..Warning:?Using?a?password?on?the?command?line?interface?can?be?insecure.done.Testing?mysqlbinlog?output..?done.Cleaning?up?test?file(s)..?done. Wed?Jul??9?04:23:20?2014?-?[info]???Executing?command?:?apply_diff_relay_logs?--command=test?--slave_user=mha_mon?--slave_host=SLAVE2.COM?--slave_ip=192.168.186.146?--slave_port=3306?--workdir=/var/tmp?--target_version=5.6.10-log?--manager_version=0.53?--relay_log_info=/data/mysql/data/relay-log.info??--relay_dir=/data/mysql/data/??--slave_pass=xxx Wed?Jul??9?04:23:20?2014?-?[info]???Connecting?to?root@192.168.186.146(SLAVE2.COM:22)..?Checking?slave?recovery?environment?settings..Opening?/data/mysql/data/relay-log.info?...?ok.Relay?log?found?at?/data/mysql/data,?up?to?slave2-relay-bin.000002Temporary?relay?log?file?is?/data/mysql/data/slave2-relay-bin.000002Testing?mysql?connection?and?privileges..Warning:?Using?a?password?on?the?command?line?interface?can?be?insecure.done.Testing?mysqlbinlog?output..?done.Cleaning?up?test?file(s)..?done. Wed?Jul??9?04:23:21?2014?-?[info]?Slaves?settings?check?done. Wed?Jul??9?04:23:21?2014?-?[info]? 192.168.186.141?(current?master)+--192.168.186.142+--SLAVE2.COMWed?Jul??9?04:23:21?2014?-?[info]?Checking?replication?health?on?192.168.186.142.. Wed?Jul??9?04:23:21?2014?-?[info]??ok. Wed?Jul??9?04:23:21?2014?-?[info]?Checking?replication?health?on?SLAVE2.COM.. Wed?Jul??9?04:23:21?2014?-?[info]??ok. Wed?Jul??9?04:23:21?2014?-?[warning]?master_ip_failover_script?is?not?defined. Wed?Jul??9?04:23:21?2014?-?[warning]?shutdown_script?is?not?defined. Wed?Jul??9?04:23:21?2014?-?[info]?Got?exit?code?0?(Not?master?dead).MySQL?Replication?Health?is?OK.至此說明你的MHA?已經配置好了

?6.啟動

[root@MANAGER?~]#?nohup?masterha_manager?--conf=/etc/mastermha/app1.cnf?>?/tmp/mha_manager.log??</dev/null?2>&1?&

???啟動MHA

四.測試重構


1.測試

測試?將MYSQL.COM機器上的MYSQL服務關閉?,注意觀察?manager.log??日志會發現?切換到了SLAVE1.COM?并且SLAVE1.COM變成了主??而SLAVE2.COM?則變成了SLAVE1.COM?的從


root@MANAGER?app1]#?tail?-f?manager.log???這是啟動后還沒關閉主數據庫的日志內容 192.168.186.141?(current?master)+--192.168.186.142+--SLAVE2.COMWed?Jul??9?18:52:32?2014?-?[warning]?master_ip_failover_script?is?not?defined. Wed?Jul??9?18:52:32?2014?-?[warning]?shutdown_script?is?not?defined. Wed?Jul??9?18:52:32?2014?-?[info]?Set?master?ping?interval?1?seconds. Wed?Jul??9?18:52:32?2014?-?[warning]?secondary_check_script?is?not?defined.?It?is?highly?recommended?setting?it?to?check?master?reachability?from?two?or?more?routes. Wed?Jul??9?18:52:32?2014?-?[info]?Starting?ping?health?check?on?192.168.186.141(192.168.186.141:3306).. Wed?Jul??9?18:52:32?2014?-?[info]?Ping(SELECT)?succeeded,?waiting?until?MySQL?doesn't?respond..[root@MYSQL?~]#?service?mysqld?stop Shutting?down?MySQL.....?SUCCESS!?[root@MANAGER?app1]#?tail?-f?manager.log???最要看最后幾行?就知道有沒有切換成功 192.168.186.141?(current?master)+--192.168.186.142+--SLAVE2.COM Wed?Jul??9?18:56:47?2014?-?[info]?Dead?Servers: Wed?Jul??9?18:56:47?2014?-?[info]???192.168.186.141(192.168.186.141:3306) Wed?Jul??9?18:56:47?2014?-?[info]?Alive?Servers: Wed?Jul??9?18:56:47?2014?-?[info]???192.168.186.142(192.168.186.142:3306) Wed?Jul??9?18:56:47?2014?-?[info]???SLAVE2.COM(192.168.186.146:3306) Wed?Jul??9?18:56:47?2014?-?[info]?Alive?Slaves: Wed?Jul??9?18:56:47?2014?-?[info]???192.168.186.142(192.168.186.142:3306)??Version=5.6.10-log?(oldest?major?version?between?slaves)?log-bin:enabled Wed?Jul??9?18:56:47?2014?-?[info]?????Replicating?from?192.168.186.141(192.168.186.141:3306) Wed?Jul??9?18:56:47?2014?-?[info]?????Primary?candidate?for?the?new?Master?(candidate_master?is?set) Wed?Jul??9?18:56:47?2014?-?[info]???SLAVE2.COM(192.168.186.146:3306)??Version=5.6.10-log?(oldest?major?version?between?slaves)?log-bin:enabled Wed?Jul??9?18:56:47?2014?-?[info]?????Replicating?from?192.168.186.141(192.168.186.141:3306) Wed?Jul??9?18:56:47?2014?-?[info]?????Not?candidate?for?the?new?Master?(no_master?is?set) Wed?Jul??9?18:56:47?2014?-?[info]?Checking?slave?configurations.. Wed?Jul??9?18:56:47?2014?-?[info]?Checking?replication?filtering?settings.. Wed?Jul??9?18:56:47?2014?-?[info]??Replication?filtering?check?ok. Wed?Jul??9?18:56:47?2014?-?[info]?Master?is?down! Wed?Jul??9?18:56:47?2014?-?[info]?Terminating?monitoring?script. Wed?Jul??9?18:56:47?2014?-?[info]?Got?exit?code?20?(Master?dead). Wed?Jul??9?18:56:47?2014?-?[info]?MHA::MasterFailover?version?0.53. Wed?Jul??9?18:56:47?2014?-?[info]?Starting?master?failover. Wed?Jul??9?18:56:47?2014?-?[info]?*?Phase?2:?Dead?Master?Shutdown?Phase?completed. Wed?Jul??9?18:56:47?2014?-?[info]???192.168.186.142(192.168.186.142:3306)??Version=5.6.10-log?(oldest?major?version?between?slaves)?log-bin:enabled Wed?Jul??9?18:56:47?2014?-?[info]?????Replicating?from?192.168.186.141(192.168.186.141:3306) Wed?Jul??9?18:56:47?2014?-?[info]?????Primary?candidate?for?the?new?Master?(candidate_master?is?set) Wed?Jul??9?18:56:47?2014?-?[info]???SLAVE2.COM(192.168.186.146:3306)??Version=5.6.10-log?(oldest?major?version?between?slaves)?log-bin:enabled Wed?Jul??9?18:56:47?2014?-?[info]?????Replicating?from?192.168.186.141(192.168.186.141:3306) Wed?Jul??9?18:56:47?2014?-?[info]?????Not?candidate?for?the?new?Master?(no_master?is?set) Wed?Jul??9?18:56:47?2014?-?[info]?The?oldest?binary?log?file/position?on?all?slaves?is?mysql-bin.000001:214 Wed?Jul??9?18:56:47?2014?-?[info]?Oldest?slaves: Wed?Jul??9?18:56:47?2014?-?[info]???192.168.186.142(192.168.186.142:3306)??Version=5.6.10-log?(oldest?major?version?between?slaves)?log-bin:enabled Wed?Jul??9?18:56:47?2014?-?[info]?????Replicating?from?192.168.186.141(192.168.186.141:3306) Wed?Jul??9?18:56:47?2014?-?[info]?????Primary?candidate?for?the?new?Master?(candidate_master?is?set) Wed?Jul??9?18:56:47?2014?-?[info]???SLAVE2.COM(192.168.186.146:3306)??Version=5.6.10-log?(oldest?major?version?between?slaves)?log-bin:enabled Wed?Jul??9?18:56:47?2014?-?[info]?????Replicating?from?192.168.186.141(192.168.186.141:3306) Wed?Jul??9?18:56:47?2014?-?[info]?????Not?candidate?for?the?new?Master?(no_master?is?set) Wed?Jul??9?18:56:47?2014?-?[info]? Wed?Jul??9?18:56:47?2014?-?[info]?*?Phase?3.2:?Saving?Dead?Master's?Binlog?Phase.. Wed?Jul??9?18:56:47?2014?-?[info]? Wed?Jul??9?18:56:48?2014?-?[info]?Fetching?dead?master's?binary?logs.. Wed?Jul??9?18:56:48?2014?-?[info]?Executing?command?on?the?dead?master?192.168.186.141(192.168.186.141:3306):?save_binary_logs?--command=save?--start_file=mysql-bin.000001??--start_pos=214?--binlog_dir=/data/mysql/data?--output_file=/var/tmp/saved_master_binlog_from_192.168.186.141_3306_20140709185647.binlog?--handle_raw_binlog=1?--disable_log_bin=0?--manager_version=0.53Creating?/var/tmp?if?not?exists..????ok.Concat?binary/relay?logs?from?mysql-bin.000001?pos?214?to?mysql-bin.000001?EOF?into?/var/tmp/saved_master_binlog_from_192.168.186.141_3306_20140709185647.binlog?..Dumping?binlog?format?description?event,?from?position?0?to?120..?ok.Dumping?effective?binlog?data?from?/data/mysql/data/mysql-bin.000001?position?214?to?tail(237)..?ok.Concat?succeeded. Wed?Jul??9?18:56:48?2014?-?[info]?scp?from?root@192.168.186.141:/var/tmp/saved_master_binlog_from_192.168.186.141_3306_20140709185647.binlog?to?local:/masterha/app1/saved_master_binlog_from_192.168.186.141_3306_20140709185647.binlog?succeeded. Wed?Jul??9?18:56:49?2014?-?[info]?HealthCheck:?SSH?to?192.168.186.142?is?reachable. Wed?Jul??9?18:56:49?2014?-?[info]?HealthCheck:?SSH?to?SLAVE2.COM?is?reachable. Wed?Jul??9?18:56:49?2014?-?[info]? Wed?Jul??9?18:56:49?2014?-?[info]?*?Phase?3.3:?Determining?New?Master?Phase.. Wed?Jul??9?18:56:49?2014?-?[info]? Wed?Jul??9?18:56:49?2014?-?[info]?Finding?the?latest?slave?that?has?all?relay?logs?for?recovering?other?slaves.. Wed?Jul??9?18:56:49?2014?-?[info]?All?slaves?received?relay?logs?to?the?same?position.?No?need?to?resync?each?other. Wed?Jul??9?18:56:49?2014?-?[info]?Searching?new?master?from?slaves.. Wed?Jul??9?18:56:49?2014?-?[info]??Candidate?masters?from?the?configuration?file: Wed?Jul??9?18:56:49?2014?-?[info]???192.168.186.142(192.168.186.142:3306)??Version=5.6.10-log?(oldest?major?version?between?slaves)?log-bin:enabled Wed?Jul??9?18:56:49?2014?-?[info]?????Replicating?from?192.168.186.141(192.168.186.141:3306) Wed?Jul??9?18:56:49?2014?-?[info]?????Primary?candidate?for?the?new?Master?(candidate_master?is?set) Wed?Jul??9?18:56:49?2014?-?[info]??Non-candidate?masters: Wed?Jul??9?18:56:49?2014?-?[info]???SLAVE2.COM(192.168.186.146:3306)??Version=5.6.10-log?(oldest?major?version?between?slaves)?log-bin:enabled Wed?Jul??9?18:56:49?2014?-?[info]?????Replicating?from?192.168.186.141(192.168.186.141:3306) Wed?Jul??9?18:56:49?2014?-?[info]?????Not?candidate?for?the?new?Master?(no_master?is?set) Wed?Jul??9?18:56:49?2014?-?[info]??Searching?from?candidate_master?slaves?which?have?received?the?latest?relay?log?events.. Wed?Jul??9?18:56:49?2014?-?[info]?New?master?is?192.168.186.142(192.168.186.142:3306) Wed?Jul??9?18:56:49?2014?-?[info]?Starting?master?failover.. Wed?Jul??9?18:56:49?2014?-?[info]? From: 192.168.186.141?(current?master)+--192.168.186.142+--SLAVE2.COMTo: 192.168.186.142?(new?master)+--SLAVE2.COM Wed?Jul??9?18:56:49?2014?-?[info]? Wed?Jul??9?18:56:49?2014?-?[info]?*?Phase?3.3:?New?Master?Diff?Log?Generation?Phase.. Wed?Jul??9?18:56:49?2014?-?[info]? Wed?Jul??9?18:56:49?2014?-?[info]??This?server?has?all?relay?logs.?No?need?to?generate?diff?files?from?the?latest?slave. Wed?Jul??9?18:56:49?2014?-?[info]?Sending?binlog.. Wed?Jul??9?18:56:50?2014?-?[info]?scp?from?local:/masterha/app1/saved_master_binlog_from_192.168.186.141_3306_20140709185647.binlog?to?root@192.168.186.142:/var/tmp/saved_master_binlog_from_192.168.186.141_3306_20140709185647.binlog?succeeded. Wed?Jul??9?18:56:50?2014?-?[info]? Wed?Jul??9?18:56:50?2014?-?[info]?*?Phase?3.4:?Master?Log?Apply?Phase.. Wed?Jul??9?18:56:50?2014?-?[info]? Wed?Jul??9?18:56:50?2014?-?[info]?*NOTICE:?If?any?error?happens?from?this?phase,?manual?recovery?is?needed. Wed?Jul??9?18:56:50?2014?-?[info]?Starting?recovery?on?192.168.186.142(192.168.186.142:3306).. Wed?Jul??9?18:56:50?2014?-?[info]??Generating?diffs?succeeded. Wed?Jul??9?18:56:50?2014?-?[info]?Waiting?until?all?relay?logs?are?applied. Wed?Jul??9?18:56:50?2014?-?[info]??done. Wed?Jul??9?18:56:50?2014?-?[info]?Getting?slave?status.. Wed?Jul??9?18:56:50?2014?-?[info]?This?slave(192.168.186.142)'s?Exec_Master_Log_Pos?equals?to?Read_Master_Log_Pos(mysql-bin.000001:214).?No?need?to?recover?from?Exec_Master_Log_Pos. Wed?Jul??9?18:56:50?2014?-?[info]?Connecting?to?the?target?slave?host?192.168.186.142,?running?recover?script.. Wed?Jul??9?18:56:50?2014?-?[info]?Executing?command:?apply_diff_relay_logs?--command=apply?--slave_user=mha_mon?--slave_host=192.168.186.142?--slave_ip=192.168.186.142??--slave_port=3306?--apply_files=/var/tmp/saved_master_binlog_from_192.168.186.141_3306_20140709185647.binlog?--workdir=/var/tmp?--target_version=5.6.10-log?--timestamp=20140709185647?--handle_raw_binlog=1?--disable_log_bin=0?--manager_version=0.53?--slave_pass=xxx Wed?Jul??9?18:56:50?2014?-?[info]? MySQL?client?version?is?5.6.10.?Using?--binary-mode. Applying?differential?binary/relay?log?files?/var/tmp/saved_master_binlog_from_192.168.186.141_3306_20140709185647.binlog?on?192.168.186.142:3306.?This?may?take?long?time... Applying?log?files?succeeded. Wed?Jul??9?18:56:50?2014?-?[info]??All?relay?logs?were?successfully?applied. Wed?Jul??9?18:56:50?2014?-?[info]?Getting?new?master's?binlog?name?and?position.. Wed?Jul??9?18:56:50?2014?-?[info]??mysql-bin.000007:504 Wed?Jul??9?18:56:50?2014?-?[info]??All?other?slaves?should?start?replication?from?here.?Statement?should?be:?CHANGE?MASTER?TO?MASTER_HOST='192.168.186.142',?MASTER_PORT=3306,?MASTER_LOG_FILE='mysql-bin.000007',?MASTER_LOG_POS=504,?MASTER_USER='repl',?MASTER_PASSWORD='xxx'; Wed?Jul??9?18:56:50?2014?-?[warning]?master_ip_failover_script?is?not?set.?Skipping?taking?over?new?master?ip?address. Wed?Jul??9?18:56:50?2014?-?[info]?Setting?read_only=0?on?192.168.186.142(192.168.186.142:3306).. Wed?Jul??9?18:56:50?2014?-?[info]??ok. Wed?Jul??9?18:56:50?2014?-?[info]?**?Finished?master?recovery?successfully. Wed?Jul??9?18:56:50?2014?-?[info]?*?Phase?3:?Master?Recovery?Phase?completed. Wed?Jul??9?18:56:50?2014?-?[info]? Wed?Jul??9?18:56:50?2014?-?[info]?*?Phase?4:?Slaves?Recovery?Phase.. Wed?Jul??9?18:56:50?2014?-?[info]? Wed?Jul??9?18:56:50?2014?-?[info]?*?Phase?4.1:?Starting?Parallel?Slave?Diff?Log?Generation?Phase.. Wed?Jul??9?18:56:50?2014?-?[info]? Wed?Jul??9?18:56:50?2014?-?[info]?--?Slave?diff?file?generation?on?host?SLAVE2.COM(192.168.186.146:3306)?started,?pid:?3135.?Check?tmp?log?/masterha/app1/SLAVE2.COM_3306_20140709185647.log?if?it?takes?time.. Wed?Jul??9?18:56:50?2014?-?[info]? Wed?Jul??9?18:56:50?2014?-?[info]?Log?messages?from?SLAVE2.COM?... Wed?Jul??9?18:56:50?2014?-?[info]? Wed?Jul??9?18:56:50?2014?-?[info]??This?server?has?all?relay?logs.?No?need?to?generate?diff?files?from?the?latest?slave. Wed?Jul??9?18:56:50?2014?-?[info]?End?of?log?messages?from?SLAVE2.COM. Wed?Jul??9?18:56:50?2014?-?[info]?--?SLAVE2.COM(192.168.186.146:3306)?has?the?latest?relay?log?events. Wed?Jul??9?18:56:50?2014?-?[info]?Generating?relay?diff?files?from?the?latest?slave?succeeded. Wed?Jul??9?18:56:50?2014?-?[info]? Wed?Jul??9?18:56:50?2014?-?[info]?*?Phase?4.2:?Starting?Parallel?Slave?Log?Apply?Phase.. Wed?Jul??9?18:56:50?2014?-?[info]? Wed?Jul??9?18:56:50?2014?-?[info]?--?Slave?recovery?on?host?SLAVE2.COM(192.168.186.146:3306)?started,?pid:?3137.?Check?tmp?log?/masterha/app1/SLAVE2.COM_3306_20140709185647.log?if?it?takes?time.. Wed?Jul??9?18:56:51?2014?-?[info]? Wed?Jul??9?18:56:51?2014?-?[info]?Log?messages?from?SLAVE2.COM?... Wed?Jul??9?18:56:51?2014?-?[info]? Wed?Jul??9?18:56:50?2014?-?[info]?Sending?binlog.. Wed?Jul??9?18:56:51?2014?-?[info]?scp?from?local:/masterha/app1/saved_master_binlog_from_192.168.186.141_3306_20140709185647.binlog?to?root@SLAVE2.COM:/var/tmp/saved_master_binlog_from_192.168.186.141_3306_20140709185647.binlog?succeeded. Wed?Jul??9?18:56:51?2014?-?[info]?Starting?recovery?on?SLAVE2.COM(192.168.186.146:3306).. Wed?Jul??9?18:56:51?2014?-?[info]??Generating?diffs?succeeded. Wed?Jul??9?18:56:51?2014?-?[info]?Waiting?until?all?relay?logs?are?applied. Wed?Jul??9?18:56:51?2014?-?[info]??done. Wed?Jul??9?18:56:51?2014?-?[info]?Getting?slave?status.. Wed?Jul??9?18:56:51?2014?-?[info]?This?slave(SLAVE2.COM)'s?Exec_Master_Log_Pos?equals?to?Read_Master_Log_Pos(mysql-bin.000001:214).?No?need?to?recover?from?Exec_Master_Log_Pos. Wed?Jul??9?18:56:51?2014?-?[info]?Connecting?to?the?target?slave?host?SLAVE2.COM,?running?recover?script.. Wed?Jul??9?18:56:51?2014?-?[info]?Executing?command:?apply_diff_relay_logs?--command=apply?--slave_user=mha_mon?--slave_host=SLAVE2.COM?--slave_ip=192.168.186.146??--slave_port=3306?--apply_files=/var/tmp/saved_master_binlog_from_192.168.186.141_3306_20140709185647.binlog?--workdir=/var/tmp?--target_version=5.6.10-log?--timestamp=20140709185647?--handle_raw_binlog=1?--disable_log_bin=0?--manager_version=0.53?--slave_pass=xxx Wed?Jul??9?18:56:51?2014?-?[info]? MySQL?client?version?is?5.6.10.?Using?--binary-mode. Applying?differential?binary/relay?log?files?/var/tmp/saved_master_binlog_from_192.168.186.141_3306_20140709185647.binlog?on?SLAVE2.COM:3306.?This?may?take?long?time... Applying?log?files?succeeded. Wed?Jul??9?18:56:51?2014?-?[info]??All?relay?logs?were?successfully?applied. Wed?Jul??9?18:56:51?2014?-?[info]??Resetting?slave?SLAVE2.COM(192.168.186.146:3306)?and?starting?replication?from?the?new?master?192.168.186.142(192.168.186.142:3306).. Wed?Jul??9?18:56:51?2014?-?[info]??Executed?CHANGE?MASTER. Wed?Jul??9?18:56:51?2014?-?[info]??Slave?started. Wed?Jul??9?18:56:51?2014?-?[info]?End?of?log?messages?from?SLAVE2.COM. Wed?Jul??9?18:56:51?2014?-?[info]?--?Slave?recovery?on?host?SLAVE2.COM(192.168.186.146:3306)?succeeded. Wed?Jul??9?18:56:51?2014?-?[info]?All?new?slave?servers?recovered?successfully. Wed?Jul??9?18:56:51?2014?-?[info]? Wed?Jul??9?18:56:51?2014?-?[info]?*?Phase?5:?New?master?cleanup?phease.. Wed?Jul??9?18:56:51?2014?-?[info]? Wed?Jul??9?18:56:51?2014?-?[info]?Resetting?slave?info?on?the?new?master.. Wed?Jul??9?18:56:51?2014?-?[info]??192.168.186.142:?Resetting?slave?info?succeeded. Wed?Jul??9?18:56:51?2014?-?[info]?Master?failover?to?192.168.186.142(192.168.186.142:3306)?completed?successfully. Wed?Jul??9?18:56:51?2014?-?[info]?-----?Failover?Report?-----app1:?MySQL?Master?failover?192.168.186.141?to?192.168.186.142?succeededMaster?192.168.186.141?is?down!Check?MHA?Manager?logs?at?MANAGER.COM:/masterha/app1/manager.log?for?details.Started?automated(non-interactive)?failover. The?latest?slave?192.168.186.142(192.168.186.142:3306)?has?all?relay?logs?for?recovery. Selected?192.168.186.142?as?a?new?master. 192.168.186.142:?OK:?Applying?all?logs?succeeded. SLAVE2.COM:?This?host?has?the?latest?relay?log?events. Generating?relay?diff?files?from?the?latest?slave?succeeded. SLAVE2.COM:?OK:?Applying?all?logs?succeeded.?Slave?started,?replicating?from?192.168.186.142. 192.168.186.142:?Resetting?slave?info?succeeded. 192.168.186.142:?Resetting?slave?info?succeeded.

看到192.168.186.142:?Resetting?slave?info?succeeded.


Master?failover?to?192.168.186.142(192.168.186.142:3306)?completed?successfully.??說明切換成功了


[root@slave2?~]#?mysql?-e?"show?slave?status\G" ***************************?1.?row?***************************Slave_IO_State:?Waiting?for?master?to?send?eventMaster_Host:?192.168.186.142Master_User:?replMaster_Port:?3306Connect_Retry:?60Master_Log_File:?mysql-bin.000007Read_Master_Log_Pos:?504Relay_Log_File:?slave2-relay-bin.000002Relay_Log_Pos:?283Relay_Master_Log_File:?mysql-bin.000007Slave_IO_Running:?YesSlave_SQL_Running:?Yes 看到已經切換到和142同步了?本來是和141同步的?此時的SALVE1.COM已經變成主了?說明已然生效

2.重構


?

重構我想就不要我做了吧,就是這時候等于你的主掛了?切換在SLAVE1.COM?上變成了主?因此重構我提供一種方案(方案多種),拿出一臺新的服務器重新加入以142為主做成從?再app1.conf配置文件中加入?


[root@MANAGER?app1]#?rm?-rf?app1.failover.complete

刪除該文件后?再次啟動manager端即可


五.擴展Keepalived


1.安裝keepalived


[root@MYSQL?src]#?wget?http://www.keepalived.org/software/keepalived-1.2.12.tar.gz [root@MYSQL?src]#?tar?-xf?keepalived-1.2.12.tar.gz? [root@MYSQL?src]#?cd?keepalived-1.2.12 [root@MYSQL?src]#?yum?-y?install?gcc?gcc-c++?gcc-g77?ncurses-devel?bison?libaio-devel?cmake?libnl*?libpopt*?popt-static?openssl-devel [root@MYSQL?keepalived-1.2.12]#?./configure [root@MYSQL?keepalived-1.2.12]#?make?&&?make?install [root@MYSQL?src]#mkdir?/etc/keepalived/[root@MYSQL?src]#?cp?/usr/local/etc/keepalived/keepalived.conf?/etc/keepalived/ [root@MYSQL?src]#??cp?/usr/local/etc/rc.d/init.d/keepalived?/etc/init.d/ [root@MYSQL?src]#?cp?/usr/local/etc/sysconfig/keepalived?/etc/sysconfig/ [root@MYSQL?src]#cp?/usr/local/sbin/keepalived?/usr/sbin/

2.配置keepalived


[root@MYSQL?keepalived]#?vi?keepalived.conf? !?Configuration?File?for?keepalivedglobal_defs?{notification_email?{acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from?Alexandre.Cassen@firewall.locsmtp_server?192.168.200.1smtp_connect_timeout?30router_id?LVS_DEVEL???????????##配置是為了標識當前節點,兩個節點的此項設置可相同,也可不相同 }vrrp_instance?VI_1?{state?MASTER??????????????????#指定A節點為主節點?備用節點上設置為BACKUP即可interface?eth0virtual_router_id?51?????????????#VRRP組名,兩個節點的設置必須一樣,以指明各個節點屬于同一VRRPpriority?100??????#主節點的優先級(1-254之間),備用節點必須比主節點優先級低????????????????advert_int?1authentication?{??????????#設置驗證信息,兩個節點必須一致auth_type?PASS???????????auth_pass?1111} virtual_ipaddress?{ 192.168.200.16} }

3.檢測mysql服務腳本


[root@MYSQL?keepalived]#?vi?/root/check_mysql.sh? #!/bin/bash MYSQL=/usr/local/mysql/bin/mysql MYSQL_HOST=127.0.0.1 MYSQL_USER=root MYSQL_PASSWORD=123 CHECK_TIME=3 #mysql??is?working?MYSQL_OK?is?1?,?mysql?down?MYSQL_OK?is?0 MYSQL_OK=1 function?check_mysql_helth?(){ $MYSQL?-h?$MYSQL_HOST?-u?$MYSQL_USER?-e?"show?status;"?>/dev/null?2>&1 if?[?$??=?0?]?;thenMYSQL_OK=1 elseMYSQL_OK=0 fireturn?$MYSQL_OK } while?[?$CHECK_TIME?-ne?0?] dolet?"CHECK_TIME?-=?1"check_mysql_helth if?[?$MYSQL_OK?=?1?]?;?thenCHECK_TIME=0exit?0 fi if?[?$MYSQL_OK?-eq?0?]?&&??[?$CHECK_TIME?-eq?0?] thenpkill?keepalived exit?1 fi sleep?1 Done

該腳本做一個計劃任務每分鐘做一次檢查MYSQL?服務如果掛掉了的話?VIP?就會在SALVE1.COM?上生效?這樣的話?client?端連接的VIP?就會從MYSQL.COM?上變到了SLAVE1.COM?上??此時SLAVE1.COM?由于MHA的生效?已經變為主對外提供服務了?VIP?也在SALVE1.COM上?所以從頭到尾?客戶端只需要連接VIP?就可以了


[root@MYSQL?keepalived]#?yum?-y?install?cronie [root@MYSQL?~]#?crontab??-l */1?*?*?*?*?bash?/root/checkmysql.sh

以上步驟再在下一次切換的SLAVE上做一次也就是SLAVE1.COM上做一次?keepalived.conf配置文件不同的地方已做注釋


4.啟動測試


兩邊啟動keepalived

[root@MYSQL?keepalived]#?keepalived?-f?/etc/keepalived/keepalived.conf [root@MYSQL?keepalived]#?ps?-ef?|grep?keep root??????3230?????1??0?23:27??????????00:00:00?keepalived?-f?/etc/keepalived/keepalived.conf root??????3231??3230??0?23:27??????????00:00:00?keepalived?-f?/etc/keepalived/keepalived.conf root??????3232??3230??0?23:27??????????00:00:00?keepalived?-f?/etc/keepalived/keepalived.conf root??????3234??2538??0?23:27?pts/0????00:00:00?grep?keep[root@MYSQL?keepalived]#?ip?a 1:?lo:?<LOOPBACK,UP,LOWER_UP>?mtu?16436?qdisc?noqueue?state?UNKNOWN?link/loopback?00:00:00:00:00:00?brd?00:00:00:00:00:00inet?127.0.0.1/8?scope?host?loinet6?::1/128?scope?host?valid_lft?forever?preferred_lft?forever 2:?eth0:?<BROADCAST,MULTICAST,UP,LOWER_UP>?mtu?1500?qdisc?pfifo_fast?state?UP?qlen?1000link/ether?00:0c:29:c9:85:ba?brd?ff:ff:ff:ff:ff:ffinet?192.168.186.141/24?brd?192.168.186.255?scope?global?eth0inet?192.168.200.16/32?scope?global?eth0inet6?fe80::20c:29ff:fec9:85ba/64?scope?link?valid_lft?forever?preferred_lft?forever


測試關閉該主機的MYSQL?服務看看VIP?是否飄到配好keepaliveSLAVE1.COM上?MHA中的MYSQL?主是不是也變成了SLAVE1.COM

如是?至此全部完成。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。謝謝!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

mha日常維護命令

1.查看ssh登陸是否成功 masterha_check_ssh?--conf=/etc/masterha/app1.cnf 2.查看復制是否建立好 masterha_check_repl?--conf=/etc/masterha/app1.cnf 3.啟動mha nohup?masterha_manager?--conf=/etc/masterha/app1.cnf?>?/tmp/mha_manager.log??<?/dev/null?2>&1?&? 當有slave節點宕掉的情況是啟動不了的,加上--ignore_fail_on_start即使有節點宕掉也能啟動mha nohup?masterha_manager?--conf=/etc/masterha/app1.cnf??--ignore_fail_on_start?>?/tmp/mha_manager.log??<?/dev/null?2>&1?&? 4.檢查啟動的狀態 masterha_check_status?--conf=/etc/masterha/app1.cnf 5.停止mha masterha_stop??--conf=/etc/masterha/app1.cnf 6.failover后下次重啟 每次failover切換后會在管理目錄生成文件app1.failover.complete?,下次在切換的時候會發現有這個文件導致切換不成功,需要手動清理掉。 rm?-rf?/masterha/app1/app1.failover.complete 也可以加上參數--ignore_last_failover 7.手工failover 手工failover場景,master死掉,但是masterha_manager沒有開啟,可以通過手工failover: masterha_master_switch?--conf=/etc/masterha/app1.cnf?--dead_master_host=10.50.2.10?--master_state=dead?--new_master_host=10.50.2.12?--ignore_last_failover 8.masterha_manager是一種監視和故障轉移的程序。另一方面,masterha_master_switch程序不監控主庫。?masterha_master_switch可以用于主庫故障轉移,也可用于在線總開關。 9.手動在線切換 masterha_master_switch?--conf=/etc/app1.cnf?--master_state=alive?--new_master_host=192.168.119.74?--orig_master_is_new_slave 或者 masterha_master_switch?--conf=/etc/app1.cnf?--master_state=alive?--new_master_host=192.168.119.74?--orig_master_is_new_slave?--running_updates_limit=10000 --orig_master_is_new_slave切換時加上此參數是將原master變為slave節點,如果不加此參數,原來的master將不啟動 --running_updates_limit=10000?切換時候選master如果有延遲的話,mha切換不能成功,加上此參數表示延遲在此時間范圍內都可切換(單位為s),但是切換的時間長短是由recover時relay日志的大小決定 手動在線切換mha,切換時需要將在運行的mha停掉后才能切換。 在備庫先執行DDL,一般先stop?slave,一般不記錄mysql日志,可以通過set?SQL_LOG_BIN?=?0實現。然后進行一次主備切換操作,再在原來的主庫上執行DDL。這種方法適用于增減索引,如果是增加字段就需要額外注意。 可以通過如下命令停止mha masterha_stop?--conf=/etc/app1.cnf


?


轉載于:https://blog.51cto.com/zuoyuezong/1439579

總結

以上是生活随笔為你收集整理的源代码编译MYSQL5.6 环境下的MHA+KEEPALIVED的安装和维护的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 狠狠热视频 | 高清国产一区二区三区四区五区 | 香蕉视频首页 | 黄色一级图片 | 电影《走路上学》免费 | 国产清纯白嫩初高中在线观看性色 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 中文字幕一本 | 狠狠爱综合 | 国产在线网址 | 亚洲图片偷拍区 | 狼人av在线 | 一区二区在线视频观看 | 法国空姐在线观看视频 | 欧美精品成人一区二区在线观看 | 国产黄色大片免费看 | 久久久精品免费视频 | 91av综合 | 婷婷开心激情网 | 国内精久久久久久久久久人 | 激情成人av | 中文字幕一区二区三区夫目前犯 | 婷婷丁香综合网 | 国产一区二区三区四区五区六区 | 日本爽爽爽爽爽爽在线观看免 | 午夜影院在线看 | 优优色影院 | 成人p站在线观看 | 国产精品人人做人人爽 | 深夜久久 | 四虎在线看片 | 日日操影院 | 91一起草 | 日本不卡一区二区三区在线观看 | 亚洲一区二区天堂 | 91精选国产 | 全国男人的天堂网 | 日韩人妻精品一区二区三区 | 日本高清免费aaaaa大片视频 | 亚洲精品国产成人久久av盗摄 | 理论片一区 | 欧美另类在线视频 | 日本理论片午伦夜理片在线观看 | 亚洲av无码精品色午夜果冻不卡 | 国产制服91一区二区三区制服 | 美女屁股眼视频免费 | 无码国精品一区二区免费蜜桃 | a级片在线免费观看 | 天天草天天射 | av软件在线观看 | 日韩中文一区二区 | 视频一区二区三区在线观看 | 99嫩草 | 黄色工厂在线观看 | 操处女逼视频 | 国产三级自拍 | 欧美国产乱视频 | 海角国产乱辈乱精品视频 | 瑟瑟av| 韩国一区二区视频 | 少妇极品熟妇人妻无码 | 亚洲午夜视频 | 国产同性人妖ts口直男 | av网在线播放 | 歪歪视频在线观看 | 夜夜狠狠擅视频 | 国产麻豆交换夫妇 | 国产主播福利在线 | 日本一级大片 | 操比视频网站 | 日本一区二区三区四区五区 | 中文字幕第315页 | 性生交大片免费看女人按摩 | 日美女逼逼 | 日韩人妻无码精品综合区 | 草久久免费视频 | 狠狠干成人 | 99嫩草| 成人免费视屏 | 不卡av在线免费观看 | 天天操人人 | 中国极品少妇xxxx | 亚洲激情欧美激情 | 国产69精品久久久久久久久久 | 在线观看av免费 | 91麻豆映画传媒 | 欧美在线三区 | 国产一区不卡在线观看 | 法国空姐电影在线 | av动漫免费看 | 在线免费观看污网站 | 少妇高潮久久久久久潘金莲 | 无码精品一区二区三区在线 | www伊人网 | 亚洲精品国产手机 | 91av视频免费观看 | 91网站免费观看 | 日日干夜夜拍 | 久久久社区 |