一、192.168.56.11:
install plugin rpl_semi_sync_master SONAME semisync_master.so;
上:加載半同步的插件。
install plugin rpl_semi_sync_slave SONAME semisync_slave.so;
上:因為我們要做雙主,所以要將主從角色的插件都加載。
注意:一定要先加載插件,如果先添加參數是會報錯的。
vi /etc/my.cnf
log_bin
#上:開啟binlog用于數據同步。
server_id=1001
#上:主從必須配置不一樣的server_id。配置一樣的話同步機制會啟動失敗。
rpl_semi_sync_master_enabled=1
#上:開啟半同步機制,角色為主。
rpl_semi_sync_master_timeout=1000
#上:主角色的等待從返回ack的超時時間,超過這個時間就會退化成異步復制。
rpl_semi_sync_slave_enabled=1
#上:開啟半同步機制,角色為從,因為我們要配置雙主所以這兩種角色的控制要都打開。
master_info_repository=TABLE;
#將master_info信息記錄到表上。
relay_log_info_repository=TABLE;
#將relay_log_info信息記錄到表上。
gtid_mode=ON
#開啟gtid。
enforce_gtid_consistency=ON
#開啟嚴格模式,不允許執行可能導致數據不一致的sql語句。比如create table as select。
(以上:添加如上配置到my.cnf文件當中)
systemctl restart mysqld
重啟Mysql讓這些配置生效。
show variables like %rpl%;
上:可以看到主從角色的半同步控制都已經激活。
select * from mysql.plugin;
上:可以看到兩個角色的半同步插件都已經加載。
create user sync@% identified by sync;
grant replication slave on *.* to sync@%;
上:創建同步賬號。
二、192.168.56.12:
12的配置步驟完全重復11的。
server_id=1002
注:唯一不一樣的地方就是這個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服務。
cd /etc/keepalived/
vi keepalived.conf
上:編輯keepalived的配置文件。
vi /etc/keepalived/bin/mysql_check.sh
chmod 755 /etc/keepalived/bin/mysql_check.sh
上:添加監控mysql是否存活的腳本。
systemctl start k
eepalived
上:因為VIP要綁定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 ---本機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
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129631.html
MySQL高可用方案測試 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; margin...
摘要:雙主是一個比較簡單的高可用架構,適用于中小集群,今天就說說怎么用做的高可用。缺點也比較明顯,就是增加從節點的情況下,從節點不會主動切換同步對象,而且腳本需要自己實現,有一定風險。 雙主 + keepalived 是一個比較簡單的 MySQL 高可用架構,適用于中小 MySQL 集群,今天就說說怎么用 keepalived 做 MySQL 的高可用。 1 概述 1.1 keepalive...
摘要:雙主是一個比較簡單的高可用架構,適用于中小集群,今天就說說怎么用做的高可用。缺點也比較明顯,就是增加從節點的情況下,從節點不會主動切換同步對象,而且腳本需要自己實現,有一定風險。 雙主 + keepalived 是一個比較簡單的 MySQL 高可用架構,適用于中小 MySQL 集群,今天就說說怎么用 keepalived 做 MySQL 的高可用。 1 概述 1.1 keepalive...
閱讀 1346·2023-01-11 13:20
閱讀 1684·2023-01-11 13:20
閱讀 1132·2023-01-11 13:20
閱讀 1858·2023-01-11 13:20
閱讀 4100·2023-01-11 13:20
閱讀 2704·2023-01-11 13:20
閱讀 1385·2023-01-11 13:20
閱讀 3597·2023-01-11 13:20