暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

mysql双主加keepalived

IT那活儿 2022-03-12
548

点击上方“IT那活儿”,关注后了解更多内容,不管IT什么活儿,干就完了!!!

配置半同步

一、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.cnflog_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 TOMASTER_HOST='192.168.56.12',MASTER_USER='sync',MASTER_PASSWORD='sync',MASTER_PORT=3306,MASTER_AUTO_POSITION=1;start slave;show slave status\G

二、192.168.56.12:

CHANGE MASTER TOMASTER_HOST='192.168.56.11',MASTER_USER='sync',MASTER_PASSWORD='sync',MASTER_PORT=3306,MASTER_AUTO_POSITION=1;start slave;show slave status\G

三、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,如果不是就说明有问题。

安装keepalived

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.gzcd keepalived-2.1.5/./configure --prefix=/usr/local/keepalivedmakemake 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.shchmod 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 keepalivedglobal_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 keepalivedglobal_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_profilecount=1while truedomysql -uroot -p"xxxxx" -e "show status;">/dev/null 2>&1i=$?ps aux | grep mysqld | grep -v grep >/dev/null 2>&1j=$?if [ $i = 0 ]&&[ $j = 0 ]thenexit 0else if [ $i = 1 ]&&[ $j = 0 ] then exit 0 else   if [ $count -gt 5 ]   then         break   fi let count++ continue fifidone/etc/init.d/keepalived stop


本文作者:许智发

本文来源:IT那活儿(上海新炬王翦团队)

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论