日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

MHA簡介

MHA可以自動化實現主服務器故障轉移,這樣就可以快速將從服務器晉級為主服務器(通常在10-30s),而不影響復制的一致性,不需要花錢買更多的新服務器,不會有性能損耗,容易安裝,不必更改現有的部署環境,適用于任何存儲引擎。

MHA提供在線主服務器切換,改變先正運行的主服務器到另外一臺上,這個過程只需0.5-2s的時間,這個時間內數據無法寫入。

MHA Manager通過ssh連接MySQL slave服務器。所以在配置MHA的時候,我們首先實現的就是各個節點的互信。

雖然MHA試圖從宕掉的主服務器上保存二進制日志,并不是總是可行的。例如,如果主服務器硬件故障或無法通過ssh訪問,MHA沒法保存二進制日志,只進行故障轉移而丟失最新數據。
使用半同步復制,可以大大降低數據丟失的風險。MHA可以與半同步復制結合起來。如果只有一個slave已經收到了最新的二進制日志,MHA可以將最新的二進制日志應用于其他所有的slave服務器上,因此他們彼此保持一致性。

MySQL高可用架構圖

 

MySQL高可用架構圖說明

1.10.220.5.131作為MHA主節點,監控MySQL的各個節點,實現MySQL的高可用。

2.10.220.5.134下方一臺作為MHA的備用節點,實現MHA服務器的高可用。在MHA主服務器端運行MHA監測腳本,當主MHA服務器宕機之后,自動啟動備用MHA節點,完成MHA的高可用。

3.10.220.5.132作為整個MySQL集群中的主節點,用來執行客戶端的寫操作。

4.10.220.5.133作為主節點的從節點,采用主從同步的價格,實時同步主節點中的內容。

5.10.220.5.135配置MySQL-PROXY實現讀寫分離,提升整個MySQL集群結構的性能。客戶端寫的操作會被調度到10.220.5.132主節點之上,讀操作會被調度到10.220.5.129(VIP)。

6.10.220.5.139作為LVS調度器,接收客戶端的讀請求并根據LVS調度規則,把請求調度到后方節點。

7.10.220.5.137以及10.220.5.138作為MySQL整個結構中的一環,一方面從一級節點同步客戶端的寫操作,另外還要實時返回客戶端的讀請求數據

MySQL架構集群腳本詳解

上面的集群架構我已經寫成了一個腳本,可以實現一鍵部署。已經把所有腳本壓縮成一了個文件,解壓之后會有下面一些文件?,F在對整個腳本逐一進行講解。

 

1.ssh秘鑰自動分發腳本

要想實現上面的架構首先必須讓各個節點實現互信,即各個節點都可以使用ssh免密登錄到對方服務器上面,所以我們首先需要來解讀一下ssh秘鑰分發的腳本。

1. 下載expect。要想實現自動分發秘鑰就要用到expect軟件,它可以根據你要匹配的內容進行自動輸入,所以我們首先要下載expect軟件。

2. 刪除保存的秘鑰信息。首先需要判斷一下私鑰和公鑰文件,以及保存host-key信息的known_hosts文件是否存在,如果存在就刪除,這樣可以實現腳本的循環使用。

3. 自動生成秘鑰對。這個時候就要用到expect了,我們把需要執行的expect腳本內容傳送給expect,就可以執行了。

4.在各個節點分發秘鑰。把你各個節點的ip地址按照下述規則寫進去即可。

5.執行該腳本即可完成對各個節點的分發了。

 

[root@ken ~]# vim ssh1.sh
#!/bin/bash
. /etc/init.d/functions
#下載expect
yum install expect -y &>/dev/null
if [ $? -eq 0 ];then
        echo -n "download expect"
        success
        echo ""
else
        echo -n "download expect"
        fAIlure
        echo ""
        exit 8
fi
#刪除保存的秘鑰信息
if [ -f id_rsa -o -f id_rsa.pub -o known_hosts ];then
        rm -rf /root/.ssh/id*
        rm -rf /root/.ssh/known*
fi
#自動生成秘鑰對
/usr/bin/expect<<eof
spawn ssh-keygen 
expect {
"(/root/.ssh/id_rsa)" {send r;exp_continue}
"passphrase" {send r;exp_continue}
"again" {send r}
}
expect eof
exit
eof
#在各個節點分發秘鑰
for i in 1 2 3 4 5 7 8 9
do
ken=10.220.5.13$i
/usr/bin/expect<<eof
spawn ssh-copy-id $ken
expect {
"yes/no" {send yesr;exp_continue}
"password" {send or}
}
expect eof
exit
eof
done

 

2.在各個節點之上執行ssh1.sh腳本

上面的ssh1.sh腳本已經完成了本機可以連接到各個節點了,現在我們需要把這個腳本推送至各個節點之上并執行,這樣就可以實現架構中各個節點互信了。

 

[root@ken ~]# vim ssh2.sh 
#!/bin/bash
for i in 1 2 3 4 5 7 8 9 
do
ip=10.220.5.13$i
scp /root/ssh1.sh $ip:/root/ &>/dev/null
ssh $ip bash /root/ssh1.sh
done

 

3.執行下載軟件依賴的腳本

在這個腳本里面把所有的依賴包都安裝一下。

1.登錄到各個節點下載所需要的依賴軟件。

2.把mha4mysql-node這個軟件也推送到各個節點之上.

3.判斷一下對方節點之上是否已經安裝了node,沒安裝的話就再安裝一下吧。

4.啟動各個節點中的mysql.

 

[root@ken ~]# vim down2.sh
#!/bin/bash
. /etc/init.d/functions
#在各個節點下載相應的依賴軟件
for i in 1 2 3 4 5 7 8 9
do
ken=10.220.5.13$i
ssh $ken yum install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager -y &>/dev/null
if [ $? -eq 0 ];then
        echo -n "  download softs at $ken"
        success
        echo ""
else
        echo -n " download softs $ken"
        failure
        echo ""
fi

#把node軟件推送到各個節點
scp /root/mha4mysql-node-0.58-0.el7.centos.noarch.rpm $ken:/root &>/dev/null
#各個節點安裝mha node組件
if [ `ssh $ken rpm -ql mha4mysql-node | wc -l` -lt 2 ];then
ssh $ken rpm -ivh mha4mysql-node-0.58-0.el7.centos.noarch.rpm &>/dev/null
fi
#開啟各個節點中的mysql
ssh  $ken mysqld & &>/dev/null
done

 

4.執行配置MySQL-PROXY的腳本

要想實現MySQL讀寫分離,現在我們就需要用到MySQL-PROXY軟件了,現在就來安裝吧。

 

1.解壓mysql-proxy.首先我們需要準備mysql-proxy軟件,這個軟件我已經把它壓縮在了整個腳本中,大家解壓之后就可以執行一鍵安裝的腳本,這個軟件會被遠程傳送到需要安裝的服務器節點之上。

2.創建運行的用戶。首先創建一個運行mysql-proxy的系統用戶。

3.配置mysql-proxy。接下來就是配置mysql-proxy了。大家可以根據腳本操作步驟進行一一配置。

4.準備mysql-proxy的配置文件。這里使用了cat結合重定向符進行寫入,大家可以直接復制配置文件內容到你的服務器中,只需要修改成你的對應的IP地址即可

5.啟動mysql-proxy。配置完成之后現在我們就可以啟動了,如果你是按照下面腳本內容一步一步來的,應該不會報錯。如果啟動失敗,可以查看
/usr//local/mysql-proxy/logs/下面的日志文件,相信報的一些小錯誤你是可以解決的,加油。

6.如果你是和我一樣是在centos7上配置的該軟件,建議下載使用本機自帶的mysql客戶端即mariadb,避免軟件兼容問題。

 

[root@ken ~]# vim mysqlp3.sh 
#!/bin/bash
. /etc/init.d/functions
mv mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz /usr/local/ -f &>/dev/null
cd /usr/local/
tar xf mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz
ln -s mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit mysql-proxy &>/dev/null

#創建運行用戶
useradd -s /sbin/nologin -r mysql-proxy &>/dev/null

#配置proxy
#創建目錄
cd /usr/local/mysql-proxy
mkdir logs lua &>/dev/null
#準備文件
cp share/doc/mysql-proxy/rw-splitting.lua ./lua/ -f
cp share/doc/mysql-proxy/admin-sql.lua ./lua/ -f

#配置讀寫分離規則
#sed -ri 's/min_idle_connections = ?/min_idle_connections = 1' ./lua/w-splitting.lua &>/dev/null
#sed -ri 's/min_idle_connections = ?/max_idle_connections = 1' ./lua/w-splitting.lua &>/dev/null


#創建配置文件
cd /usr/local/mysql-proxy
touch mysql-proxy.cnf
chmod 0660 mysql-proxy.cnf
cat>mysql-proxy.cnf<<eof
[mysql-proxy]
user=mysql-proxy
admin-username=root
admin-password=123
proxy-address=10.220.5.135:4040
proxy-read-only-backend-addresses=10.220.5.132
proxy-backend-addresses=10.220.5.140
proxy-lua-script=/usr/local/mysql-proxy/lua/rw-splitting.lua
admin-lua-script=/usr/local/mysql-proxy/lua/admin-sql.lua
log-file=/usr/local/mysql-proxy/logs/mysql-proxy.log
log-level=debug
daemon=true
keepalive=true
eof

#啟動服務
/usr/local/mysql-proxy/bin/mysql-proxy --defaults-file=/usr/local/mysql-proxy/mysql-proxy.cnf
if ss -tnl |grep 4040 ;then
echo -n "start mysql-proxy"
        success
        echo ""
else
        echo -n "start mysql-proxy"
        failure
        echo ""
        exit 8
fi

 

5.執行配置LVS服務器端的腳本

畢竟我們是實現mysql的高性能架構,所以我們需要配置LVS實現讀操作的調度。

1.定義VIP以及后端節點的IP地址。根據你的集群架構IP端,配置好各個節點的IP地址。

2.下載所需要的依賴以及服務。在下載這里你可以再判斷一下是否下載成功,畢竟如果沒有下載成功下面的就不會配置成功了。

3.檢查是否配置成功。在這個腳本最后我添加了一行用來顯示配置的命令,如果你的配置成功的話,會顯示出來你的配置結果。

 

[root@ken ~]# vim lvs4.sh
#!/bin/bash
#3.實現lvs
#lvs主服務器端腳本
#!/bin/bash
. /etc/init.d/functions

#配置VIP及后端節點IP
vip=10.220.5.129
rip1=10.220.5.137
rip2=10.220.5.138

#下載依賴即軟件

yum install libnl* popt* kernel-devel -y &> /dev/null
ln -s /usr/src/kernels/2.6.32-754.el6.x86_64 /usr/src/linux &>/dev/null
yum install ipvsadm -y &>/dev/null
#綁定VIP以及添加后端節點服務器

ip a a $vip/24 dev eth0 &>/dev/null
ipvsadm -A -t $vip:3306 -s rr                &>/dev/null  #采用輪詢
ipvsadm -a -t $vip:3306 -r $rip1:3306 -w 1 -g  &>/dev/null  #權重為1,采用DR模式
ipvsadm -a -t $vip:3306 -r $rip2:3306 -w 1 -g  &>/dev/null  #權重為1,采用DR模式
ipvsadm -L -n --stats

 

6.執行配置LVS客戶端的腳本

LVS服務不只需要配置服務器端,客戶端也需要配置哦。畢竟我們是實現的一鍵部署,手工操作客戶端的話也太low了,所以讓腳本來代替我們完后這項工作吧!

1.首先定義一下你的VIP吧。

2.在本地回環地址之上綁定VIP。這樣前方服務器就可以正常的往后端服務器節點進行調度了。

3.IP抑制了解一下?配置LVS一定要記得IP抑制問題。

4.執行完上下兩個腳本就完成了LVS的配置了,是不是so easy信心爆棚了哪?

 

[root@ken ~]# vim lvs4c.sh 
#!/bin/bash
vip=10.220.5.129
ip a a $vip/32 dev lo:0
echo "1">/proc/sys.NET/ipv4/conf/lo/arp_ignore
echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce
echo "2">/proc/sys/net/ipv4/conf/all/arp_announce

 

7.執行配置級聯復制的腳本--一級從腳本

mysql命令可以在bash命令行執行的,只需要加個參數-e就可以了,真是要感嘆無數前輩的智慧了,這個選項對于寫自動化腳本真的實在實在實在太好用了。強烈建議分分鐘記住它,分分鐘用起來!

1.首先需要停掉slave。目的是實現腳本的復用,又強調了一遍哦。

2.重置slave配置。這樣我們又可以重新開始了啊。

3.授權一個用戶吧。這樣就可以實現兩端同步了啊。如果基于安全起見,你也可以只賦予replication slave權限,這樣會讓你的數據庫更加的安全。演示起見所以我就直接復制了all權限,畢竟可以少敲12345...鍵盤。

4.change一下master到你的主服務器端吧。

5.啟動slave吧。

6.如果你放心你是否已經配置完畢可以再加一條: mysql -uroot -p123 -e "show slave statusG"

 

[root@ken ~]# vim yijis.sh 
#!/bin/bash
mysql -uroot -p123 -e "stop slave;"
mysql -uroot -p123 -e "reset slave all;"
mysql -uroot -p123 -e "grant all on *.* to ken@'%' identified by '123';" &>/dev/null
mysql -uroot -p123 -e "change master to master_host='10.220.5.132',master_user='ken',master_password='123';"
mysql -uroot -p123 -e "start slave;"

 

8.執行配置級聯復制的腳本--二級從腳本

二級腳本的內容和一級腳本內容是一樣的,只是把master的IP地址指向你的二級從節點就可以了,所以這里就不再贅述。至于你要問我為什么不把這個腳本合在一級腳本之上的問題,還不是寫完了之后才想到的。。。真是懶得改了。

 

#!/bin/bash
mysql -uroot -p123 -e "stop slave;"
mysql -uroot -p123 -e "reset slave all;"
mysql -uroot -p123 -e "grant all on *.* to ken@'%' identified by '123';" &>/dev/null
mysql -uroot -p123 -e "change master to master_host='10.220.5.133',master_user='ken',master_password='123';";
mysql -uroot -p123 -e "start slave;"

 

9.執行配置主節點MHA的腳本

1.首先需要安裝一下MHA所依賴的包,畢竟使用日本大佬使用perl寫的。

2.在主服務端安裝manager節點。一個用來管理監控的軟件。

3.全局配置文件。你只需要復制配置文件里面的內容,并修改你的IP以及用戶就可以了。

4.主配置文件。因為我的架構是級聯復制, 所以server里面只要寫一個主節點IP一個一級從節點就可以了。

5.配置VIP腳本的文件我已經壓縮在軟件包里面了,解壓之后就可以看到了。

 

#!/bin/bash
. /etc/init.d/functions
#5.實現MHA
#在本機即manager安裝依賴包及所需軟件
yum install perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager -y &>/dev/null
if [ $? -eq 0 ];then
        echo -n "manager download softs"
        success
        echo ""
else
        echo -n "manager download softs"
        failure
        echo ""
fi
rpm -ivh mha4mysql-node-0.58-0.el7.centos.noarch.rpm  &>/dev/null
if [ $? -eq 0 ];then
        echo -n " manager download node"
        success
        echo ""
else
        echo -n "manager download node"
        failure
        echo ""
fi

rpm -ivh mha4mysql-manager-0.58-0.el7.centos.noarch.rpm  &>/dev/null
if [ $? -eq 0 ];then
echo -n "manager download manger soft"
        success
        echo ""
else
        echo -n "manager download manager softs"
        failure
        echo ""
fi
#創建工作目錄
mkdir -p /etc/mha/scripts &>/dev/null
#創建全局配置文件

cat>/etc/masterha_default.cnf<<eof
[server default]
user=root
password=123
ssh_user=root
repl_user=ken
repl_password=123
ping_interval=1
#master_binlog_dir= /var/lib/mysql,/var/log/mysql
secondary_check_script=masterha_secondary_check -s 10.220.5.132 -s 10.220.5.133
master_ip_failover_script="/etc/mha/scripts/master_ip_failover"
master_ip_online_change_script="/etc/mha/scripts/master_ip_online_change"
report_script="/etc/mha/scripts/send_report"
eof
#生成主配置文件
cat>/etc/mha/App1.cnf<<eof
[server default]
manager_workdir=/var/log/mha/app1
manager_log=/var/log/mha/app1/manager.log
[server1]
hostname=10.220.5.132
candidate_master=1
master_binlog_dir="/var/lib/mysql"
#查看方式 find / -name mysql-bin*
 
[server2]
hostname=10.220.5.133
candidate_master=1
master_binlog_dir="/var/lib/mysql"
eof
#配置VIP
cp /root/master_ip_failover /etc/mha/scripts/ -f


#配置編寫VIP腳本
cp /root/master_ip_online_change /etc/mha/scripts/ -f




#賦予腳本可執行權限
chmod +x /etc/mha/scripts/master_ip_failover
chmod +x /etc/mha/scripts/master_ip_online_change
#chmod +x /etc/mha/scripts/send_report
# 通過 masterha_check_ssh 驗證 ssh 密鑰是否正常
masterha_check_ssh --conf=/etc/mha/app1.cnf
#通過 masterha_check_repl 驗證 mysql 主從復制是否成功
masterha_check_repl --conf=/etc/mha/app1.cnf
#在master上綁定vip
ssh 10.220.5.132 ip a a 10.220.5.140/24 dev eth0:0 &>/dev/null
#通過 masterha_manager 啟動 MHA 監控(在manager角色上執行)
mkdir /var/log/mha/app1 -p &>/dev/null
touch /var/log/mha/app1/manager.log &>/dev/null
nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/mha/app1/manager.log 2>&1 &
#檢查MHA的啟動狀態
#檢查集群狀態
masterha_check_status --conf=/etc/mha/app1.cnf

 

 

10.MHA高可用監測腳本

這個監測腳本放在主服務器端后臺運行,如果發現主節點服務宕機就啟動備用節點。為了以防主機點意外關機,無法執行ssh命令啟動備用節點,你也可以把這個腳本放在備用節點,具體怎么修改相信聰明的你一下就看明白了。

 

#!/bin/bash
while true
do
  if [ `ps -aux |grep perl.*mha |wc -l` -eq 1 ];then
    ssh 10.220.5.134 nohup masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover < /dev/null > /var/log/mha/app1/manager.log 2>&1 &
    exit 3
  fi
done

 

MySQL架構集群實現

目前為止所有的腳本都已經接收完畢,現在需要把這些腳本整合在一個腳本里面,只要進行推送就行了,這樣我們就實現了一鍵部署。下面來看一下這個腳本里面都有什么吧。

1.首先關閉防火墻,以免遇到不必要的錯誤。

2.在本機(MHA主節點)運行分發秘鑰的腳本,保證能夠連同各個節點,推送腳本及軟件。

3.執行下載軟件的腳本。

4.執行mysql-proxy的腳本

5.執行部署LVS的腳本

6.執行實現級聯復制的腳本

7.打包的腳本文件以及把mha備節點的腳本都推送到備節點執行,獲得一個mha備用節點

8.執行配置mha的腳本。

9.執行監控mha主節點的腳本。

 

[root@ken ~]# vim jiagouzhu.sh
#!/bin/bash
. /etc/init.d/functions

#關閉本機防火墻
setenforce 0 &>/dev/null
systemctl stop firewalld &>/dev/null

#執行分配秘鑰腳本
bash /root/ssh1.sh

#推送腳本至各個節點
bash /root/ssh2.sh

#執行下載相應軟件及啟動mysqld的腳本
bash /root/down2.sh

#執行部署mysql-proxy的腳本
scp /root/mysql-proxy-0.8.5-linux-glibc2.3-x86-64bit.tar.gz 10.220.5.135:/root
scp /root/mysqlp3.sh 10.220.5.135:/root
ssh 10.220.5.135 bash /root/mysqlp3.sh

#執行部署lvs服務器端腳本
scp /root/lvs4.sh 10.220.5.139:/root
ssh 10.220.5.139 bash /root/lvs4.sh
#執行部署lvs客戶端腳本
scp /root/lvs4c.sh 10.220.5.137:/root
scp /root/lvs4c.sh 10.220.5.138:/root
ssh 10.220.5.137 bash /root/lvs4c.sh
ssh 10.220.5.138 bash /root/lvs4c.sh
#執行實現級聯復制腳本
scp /root/zhum.sh 10.220.5.132:/root
ssh 10.220.5.132 bash /root/zhum.sh

scp /root/yijis.sh 10.220.5.133:/root
ssh 10.220.5.133 bash /root/yijis.sh

scp /root/erjis.sh 10.220.5.137:/root
ssh 10.220.5.137 bash /root/erjis.sh

scp /root/erjis.sh 10.220.5.138:/root
ssh 10.220.5.138 bash /root/erjis.sh

#執行發送備mha腳本
scp /root/mysqljiagou.tar.gz 10.220.5.134:/root
ssh 10.220.5.134 tar xf /root/mysqljiagou.tar.gz
ssh 10.220.5.134 bash /root/ssh1.sh
ssh 10.220.5.134 bash /root/ssh2.sh
ssh 10.220.5.134 bash /root/mha6bei.sh

#執行監控主節點的腳本
#nohup bash /root/checkmha.sh &
#執行實現mha的腳本
bash /root/mha6.sh

 

當你看到下面的返回結果的時候,你的MySQL架構集群已經開始運行起來了.

 

...
Tue Oct 30 00:42:16 2018 - [info]  binlog_do_db= , binlog_ignore_db= 
Tue Oct 30 00:42:16 2018 - [info]  Replication filtering check ok.
Tue Oct 30 00:42:16 2018 - [info] GTID (with auto-pos) is supported. Skipping all SSH and Node package checking.
Tue Oct 30 00:42:16 2018 - [info] Checking SSH publickey authentication settings on the current master..
Tue Oct 30 00:42:16 2018 - [info] HealthCheck: SSH to 10.220.5.132 is reachable.
Tue Oct 30 00:42:16 2018 - [info] 
10.220.5.132(10.220.5.132:3306) (current master)
 +--10.220.5.133(10.220.5.133:3306)

Tue Oct 30 00:42:16 2018 - [info] Checking replication health on 10.220.5.133..
Tue Oct 30 00:42:16 2018 - [info]  ok.
Tue Oct 30 00:42:16 2018 - [info] Checking master_ip_failover_script status:
Tue Oct 30 00:42:16 2018 - [info]   /etc/mha/scripts/master_ip_failover --command=status --ssh_user=root --orig_master_host=10.220.5.132 --orig_master_ip=10.220.5.132 --orig_master_port=3306 


IN SCRIPT TEST====/sbin/ifconfig eth0:1 down==/sbin/ifconfig eth0:1 10.220.5.140/24===

Checking the Status of the script.. OK 
Tue Oct 30 00:42:16 2018 - [info]  OK.
Tue Oct 30 00:42:16 2018 - [warning] shutdown_script is not defined.
Tue Oct 30 00:42:16 2018 - [info] Got exit code 0 (Not master dead).

MySQL Replication Health is OK.       <<主從復制顯示正常
app1 is stopped(2:NOT_RUNNING).

[root@ken ~]# ps aux | grep perl      <<服務正常啟動
root     14382  0.4  4.3 301488 21928 pts/1    S    00:42   0:00 perl /bin/masterha_manager --conf=/etc/mha/app1.cnf --remove_dead_master_conf --ignore_last_failover
root     14469  0.0  0.1 112704   972 pts/1    R+   00:43   0:00 grep --color=auto perl

 

MySQL架構集群測試

1.檢測mha中VIP

可以看到10.220.5.140已經在mysql主服務節點之上了,檢測成功。

 

[root@ken ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
    link/ether 00:0c:29:ab:76:d6 brd ff:ff:ff:ff:ff:ff
    inet 10.220.5.132/24 brd 10.220.5.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet 10.220.5.140/24 scope global secondary eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:feab:76d6/64 scope link 
       valid_lft forever preferred_lft forever

 

2.檢測LVS節點是否配置成功

lvs節點已經配置成功

 

[root@ken ~]# ipvsadm -L -n 
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.220.5.129:3306 rr
  -> 10.220.5.137:3306            Route   1      0          0         
  -> 10.220.5.138:3306            Route   1      0          0         

 

3.檢測mysql-proxy是否配置成功

登錄成功,配置成功。

 

[root@ken ~]# mysql -uroot -p123 -h10.220.5.135 -P4040
Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MySQL connection id is 58
Server version: 5.7.23-log MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

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

MySQL [(none)]> 

 

4.創建數據庫檢測

在主節點之上創建數據庫,查看一級節點以及二級從節點是否可以同步數據。

在主節點創建數據庫ken99

[root@ken ~]# mysql -uroot -p -e "create database ken99;"

在一級從節點查看數據庫信息

 

[root@ken ~]# mysql -uroot -p -e "show databases;"
Enter password: 
+--------------------+
| Database           |
+--------------------+
| information_schema |
| ken99              |
| ken999             |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

 

在二級從節點查看數據庫信息,一級二級從節點都已經同步主節點數據庫,驗證成功。

 

[root@ken ~]# mysql -uroot -p -e "show databases;"
Enter password: 
+--------------------+
| Database           |
+--------------------+
| information_schema |
| ken99              |
| ken999             |
| mysql              |
| performance_schema |
| sys                |
+--------------------+

 

5.關掉mysql主服務器

關掉mysql的主服務器,查看VIP是否會漂移到備節點之上。

[root@ken ~]# pkill mysqld

查看備節點是否已經有了VIP。可以發現VIP已經漂移到了10.220.5.133之上,完成了mysql的高可用。

 

[root@ken ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
    link/ether 00:0c:29:ab:76:d6 brd ff:ff:ff:ff:ff:ff
    inet 10.220.5.133/24 brd 10.220.5.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet 10.220.5.140/24 scope global secondary eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:feab:76d6/64 scope link 
       valid_lft forever preferred_lft forever

分享到:
標簽:MySQL
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定