一、192.168.56.11:
install plugin rpl_semi_sync_master SONAME semisync_master.so;
上:加載半同步的插件。
install plugin rpl_semi_sync_slave SONAME semisync_slave.so;
上:因?yàn)槲覀円鲭p主,所以要將主從角色的插件都加載。
注意:一定要先加載插件,如果先添加參數(shù)是會報(bào)錯(cuò)的。
vi /etc/my.cnf
log_bin
#上:開啟binlog用于數(shù)據(jù)同步。
server_id=1001
#上:主從必須配置不一樣的server_id。配置一樣的話同步機(jī)制會啟動失敗。
rpl_semi_sync_master_enabled=1
#上:開啟半同步機(jī)制,角色為主。
rpl_semi_sync_master_timeout=1000
#上:主角色的等待從返回ack的超時(shí)時(shí)間,超過這個(gè)時(shí)間就會退化成異步復(fù)制。
rpl_semi_sync_slave_enabled=1
#上:開啟半同步機(jī)制,角色為從,因?yàn)槲覀円渲秒p主所以這兩種角色的控制要都打開。
master_info_repository=TABLE;
#將master_info信息記錄到表上。
relay_log_info_repository=TABLE;
#將relay_log_info信息記錄到表上。
gtid_mode=ON
#開啟gtid。
enforce_gtid_consistency=ON
#開啟嚴(yán)格模式,不允許執(zhí)行可能導(dǎo)致數(shù)據(jù)不一致的sql語句。比如create table as select。
(以上:添加如上配置到my.cnf文件當(dāng)中)
systemctl restart mysqld
重啟Mysql讓這些配置生效。
show variables like %rpl%;
上:可以看到主從角色的半同步控制都已經(jīng)激活。
select * from mysql.plugin;
上:可以看到兩個(gè)角色的半同步插件都已經(jīng)加載。
create user sync@% identified by sync;
grant replication slave on *.* to sync@%;
上:創(chuàng)建同步賬號。
二、192.168.56.12:
12的配置步驟完全重復(fù)11的。
server_id=1002
注:唯一不一樣的地方就是這個(gè)server_id。剩下的都是按照11的配置再來一次。
一、192.168.56.11:
CHANGE MASTER TO
MASTER_HOST=192.168.56.12,
MASTER_USER=sync,
MASTER_PASSWORD=sync,
MASTER_PORT=3306,
MASTER_AUTO_POSITION=1;
start slave;
show slave statusG
二、192.168.56.12:
CHANGE MASTER TO
MASTER_HOST=192.168.56.11,
MASTER_USER=sync,
MASTER_PASSWORD=sync,
MASTER_PORT=3306,
MASTER_AUTO_POSITION=1;
start slave;
show slave statusG
三、192.168.56.11,192.168.56.12:
show status like %rpl%;
注:查看Rpl_semi_sync_master_clients的值是不是1,Rpl_semi_sync_master_status和Rpl_semi_sync_slave_status的值是不是都為ON,如果不是就說明有問題。
192.168.56.11以及192.168.56.12:
yum -y install e2fsprogs-devel keyutils-libs-devel libsepol-devel libselinux-devel krb5-devel zlib-devel
openssl-devel popt-devel
上:安裝依賴包。
tar zxvf keepalived-2.1.5.tar.gz
cd keepalived-2.1.5/
./configure --prefix=/usr/local/keepalived
make
make install
上:編譯安裝。
cd /software/keepalived-2.1.5/keepalived/etc/init.d/
cp keepalived /etc/init.d/
上:方便啟動keepalived服務(wù)。
cd /etc/keepalived/
vi keepalived.conf
上:編輯keepalived的配置文件。
vi /etc/keepalived/bin/mysql_check.sh
chmod 755 /etc/keepalived/bin/mysql_check.sh
上:添加監(jiān)控mysql是否存活的腳本。
systemctl start k
eepalived
上:因?yàn)閂IP要綁定192.168.56.11所以先啟動11。
VIP為192.168.56.13
一、192.168.56.11的keepalived.conf
! Configuration File for keepalived
global_defs {
router_id KeepAlive_MySQL
}
vrrp_script check_run {
script "/etc/keepalived/bin/mysql_check.sh"
interval 30
}
vrrp_sync_group VG1 {
group {
VI_1
}
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
mcast_src_ip 192.168.56.11
virtual_router_id 51
priority 100
advert_int 1
nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
check_run
}
virtual_ipaddress {
192.168.56.13
}
}
二、192.168.56.12的keepalived.conf
! Configuration File for keepalived
global_defs {
router_id KeepAlive_MySQL
}
vrrp_script check_run {
script "/etc/keepalived/bin/mysql_check.sh"
interval 30
}
vrrp_sync_group VG1 {
group {
VI_1
}
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
mcast_src_ip 192.168.56.12 ---本機(jī)IP地址
virtual_router_id 51
priority 90
advert_int 1
nopreempt
authentication {
auth_type PASS
auth_pass 1111
}
track_script {
check_run
}
#視情況自行添加以下檢測腳本:
# notify_master "/home/sh/master.sh"
# notify_backup "/home/sh/backup.sh
# notify_stop "/home/sh/stop.sh
virtual_ipaddress {
192.168.56.13
}
}
三、192.168.56.11以及192.168.56.12的mysql_check.sh
#!/bin/bash
. /root/.bash_profile
count=1
while true
do
mysql -uroot -p"xxxxx" -e "show status;">/dev/null 2>&1
i=$?
ps aux | grep mysqld | grep -v grep >/dev/null 2>&1
j=$?
if [ $i = 0 ]&&[ $j = 0 ]
then
exit 0
else
if [ $i = 1 ]&&[ $j = 0 ]
then
exit 0
else
if [ $count -gt 5 ]
then
break
fi
let count++
continue
fi
fi
done
/etc/init.d/keepalived stop
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/129631.html
MySQL高可用方案測試 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; margin...
摘要:雙主是一個(gè)比較簡單的高可用架構(gòu),適用于中小集群,今天就說說怎么用做的高可用。缺點(diǎn)也比較明顯,就是增加從節(jié)點(diǎn)的情況下,從節(jié)點(diǎn)不會主動切換同步對象,而且腳本需要自己實(shí)現(xiàn),有一定風(fēng)險(xiǎn)。 雙主 + keepalived 是一個(gè)比較簡單的 MySQL 高可用架構(gòu),適用于中小 MySQL 集群,今天就說說怎么用 keepalived 做 MySQL 的高可用。 1 概述 1.1 keepalive...
摘要:雙主是一個(gè)比較簡單的高可用架構(gòu),適用于中小集群,今天就說說怎么用做的高可用。缺點(diǎn)也比較明顯,就是增加從節(jié)點(diǎn)的情況下,從節(jié)點(diǎn)不會主動切換同步對象,而且腳本需要自己實(shí)現(xiàn),有一定風(fēng)險(xiǎn)。 雙主 + keepalived 是一個(gè)比較簡單的 MySQL 高可用架構(gòu),適用于中小 MySQL 集群,今天就說說怎么用 keepalived 做 MySQL 的高可用。 1 概述 1.1 keepalive...
閱讀 1356·2023-01-11 13:20
閱讀 1707·2023-01-11 13:20
閱讀 1215·2023-01-11 13:20
閱讀 1906·2023-01-11 13:20
閱讀 4165·2023-01-11 13:20
閱讀 2757·2023-01-11 13:20
閱讀 1402·2023-01-11 13:20
閱讀 3671·2023-01-11 13:20