1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

mysql主主+keepalived高可用

MySQL主主+Keepalived高可用

你好,我是本际云服务器推荐网的小编小本本。MySQL双主(主主)架构方案思路:两台MySQL都可读写,互为主备,默认只使用一台(masterA)负责数据的写入,另一台(masterB)备用;masterA是masterB的主库,masterB又是masterA的主库,它们互为主从;两台主库之间做高可用,可以采用Keepalived等方案(使用VIP对外提供服务);建议采用高可用策略的时候,masterA或masterB均不因宕机恢复后而抢占VIP(非抢占模式)。这样做可以在一定程度上保证主库的高可用,在一台主库down掉之后,可以在极短的时间内切换到另一台主库上(尽可能减少主库宕机对业务造成的影响),减少了主从同步给线上主库带来的压力。

mysql主主+keepalived高可用

步骤

1. 环境

两台安装好MySQL的服务器(yum安装比较快且方便),关闭防火墙,关闭selinux。systemctlstopfirewalld(临时关闭)setenforce0(临时关闭)

2. 配置实例

mysql1:192.168.44.131
mysql2:192.168.44.133
虚拟ip:192.168.44.19902

2.1 mysql1配置

在/etc/my.cnf新增以下内容:

[mysqld]
#作为主从复制的唯一标识,集群中,不能重复
server-id = 1
#开启二进制日志
log-bin = master-log
#开启中继日志
relay-log = slave-log
auto_increment_offset = 1
auto_increment_increment = 2

注:auto_increment_offset确定AUTO_INCREMENT列值的起点,也就是初始值。auto_increment_increment控制列中的值的增量值,也就是步长。MySQL中有自增长字段,在做数据库的主主同步时需要设置自增长的两个相关配置:auto_increment_offset和auto_increment_increment。在主主同步配置时,需要将两台服务器的auto_increment_increment增长量都配置为2,而要把auto_increment_offset分别配置为1和2。

2.2 mysql2配置

[mysqld]
#作为主从复制的唯一标识,集群中,不能重复
server-id = 2
#开启二进制日志
log-bin = master-log
#开启中继日志
relay-log = slave-log
auto_increment_offset = 2
auto_increment_increment = 2

3. 开启主从同步

mysql1为主,mysql2为从:

在mysql1数据库创建同步账号并赋予权限:

mysql> create user zjf@192.168.44.% identified by 123456;

mysql> grant replication slave on *.* to zjf@192.168.44.%;

mysql> show master status;

进入mysql2数据库执行以下语句:

#log_file和log_pos的数据是mariad1上show master status得到的数据。
mysql> CHANGE MASTER TO master_host=’192.168.44.131′, master_user=’zjf’, master_password=’123456′, master_log_file=’master-log.000001′, master_log_pos=441;

开启主从:

mysql> start slave;

mysql> show slave status \G;

mysql2为主,mysql1为从:

在mysql2数据库创建同步账号并赋予权限:

mysql> create user zjf@192.168.44.% identified by 123456;

mysql> grant replication slave on *.* to zjf@192.168.44.%;

mysql> show master status;

进入mysql1数据库执行以下语句:

#log_file和log_pos的数据是mariad1上show master status得到的数据。
mysql> CHANGE MASTER TO master_host=’192.168.44.131′, master_user=’zjf’, master_password=’123456′, master_log_file=’master-log.000004′, master_log_pos=441;

开启主从:

mysql> start slave;

mysql> show slave status \G;

至此,主主同步复制配置完成!

4. Keepalived高可用

4.1 配置mysql1的/etc/keepalived/keepalived.conf

configurationFilefor keepalived

global_defs{
    router_id mysql-01 #主机标示符,不一定要用主机名,默认值取主机名
}
vrrp_instance VI_1 {
    state BACKUP #非抢占模式两台服务器都为BACKUP
    interface ens33 #根据机器的ifconfig来定,VIP要绑定的网卡
    virtual_router_id 50 #虚拟路由ID,俩节点保持一致
    #VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一组
    priority 100 #

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/6339.html