mysql 主主同步 +keepalived高可用

一.安装部署

1.数据的迁移:先导库,(将master1中的所有库导入到master2中)

master1上备份:   mysqldump  -uroot -p123  -A >/opt/mysql.sql

master2上导入:   mysql  -uroot  -p123 

 

2.更改两台master的主配置文件:

log-bin = mysql-bin

binlog_format = mixed

server-id = 1                  :此处两台服务器id不能相同

relay-log = relay-bin

relay-log-index = slave-relay-bin.index

auto-increment-increment = 2

auto-increment-offset = 1        :此处有不同,具体可以看最下面的介绍

 

3.重启两台mysql服务

 

4.两台master都创建授权用户:

grant replication slave on *.* to rep@'192.168.164.%' identified by '123';

mysql> flush privileges;

 

5.查看master1的当前binlog状态信息

show master status;

 

6.在master2上将master1设为自已的主服务器并开启slave功能

mysql> change master to master_host='192.168.164.10',master_user='rep',master_password='123',master_log_file='mysql-bin.000001',master_log_pos=609;        此处master_log_pos参数值填写master1上show master status的值

mysql> start slave;

 

7.查看master2上从的状态,以下两个值必须为yes,代表从服务器能正常连接主服务器

mysql>show slave status\G;

Slave_SQL_Running:Yes

Slave_IO_Running:Yes

 

8.查看master2的当前binlog状态信息

show master status;

 

9.在master1上将master2设为自已的主服务器并开启slave功能

mysql> change master to master_host='192.168.164.20',master_user='rep',master_password='123',master_log_file='mysql-bin.000001',master_log_pos=154;        此处master_log_pos参数值填写master2上show master status的值

mysql> start slave;

 

10.查看从的状态,以下两个值必须为yes,代表从服务器能正常连接主服务器

mysql>show slave status\G;

Slave_SQL_Running:Yes

Slave_IO_Running:Yes

 

注意:如果是克隆的虚拟机,需要更改uuid,

删除mysql/data目录下的auto.cnf文件,重启mysql后即可正常进行主主配置操作。

/usr/local/mysql/data/auto.cnf

 

11.为了解决多台mysql主节点的群集如何主键的冲突:需添加auto_increment_increment,auto_increment_offset  ,两个参数的具体含义如下:

auto_increment_increment(自增步长):   以实例中有几台服务器节点,有几台设为几

auto_increment_offset(自增起始值):群集所有节点从1开始,一直添加到服务器节点的个数的数字

比如三台mysql节点:

 

master1:auto_increment_increment=3

             auto_increment_offset=1

 

Master2:auto_increment_increment=3

             auto_increment_offset=2

 

Master3: auto_increment_increment=3

             auto_increment_offset=3

 

 

二.mysql双主+keepalived高可用。

1.安装内核开发包:

yum  -y  install  kernel-devel  openssl-devel popt-devel

 

2.安装keepalived(每台mysql都需安装):

wget https://www.keepalived.org/software/keepalived-2.0.20.tar.gz

 

3.解压:

tar zxf keepalived-2.0.20.tar.gz

 

4.配置(会自动生成/etc/init.d/keepalived脚本文件,但还需要手动添加为系统服务):

cd   keepalived-2.0.20/

./configure --prefix=/ && make && make install

 

5.配置keepalived,修改/etc/keepalived/keepalived.conf:

router_id  mysql-1   每台不相同

vrrp_instance VI_1            相同实例相同,本实验两台keepalived相同

state  BACKUP               :做双主时两台都要填BACKUP(可以避免脑裂),主从时主为MASTER,从为BACKUP。()

virtual_router_id 51          :相同的实例需要相同,(主从,主主的两台需相同)同一网络内不同实例必须不同。

priority 100                  :优先级,越大越优先(两台不相同)

nopreempt      不抢占,即允许一个priority比较低的节点作为master,即使有priority更高的节点启动

virtual_ipaddress { 192.168.164.100}   :设置虚拟ip

virtual_server 192.168.164.100 3306     :设置虚拟服务器及端口(两台keepavlied相同)

lb_kind DR      :设置LVS实现负载均衡的机制,有NAT、TUN、DR三个模式可选

protocol TCP ://指定转发协议类型,有TCP和UDP两种

real_server 192.168.164.10 3306 :配置服务节点1,(服务器节点真实ip),两台不同的keepalived服务器i配置不同的本机ip地址

weight 3 ://配置服务节点的权值,越大越高

notify_down /etc/keepalived/bin/mysql.sh          检测到mysql服务down之后,执行脚本(脚本目录需手动创建,脚本内容看文末)

 

TCP_CHECK {

connect_timeout 3 //连接超时时间

nb_get_retry 3 //重连次数

delay_before_retry 3 //重连间隔时间

connect_port 3306 //健康检查端口

}

具体设置下图:

mysql 主主同步 +keepalived高可用_第1张图片

 

6.此脚本用来当mysql服务down掉后,自动杀死keepalived服务,实现地址漂移

cat      /etc/keepalived/bin/mysql.sh

#!/bin/bash

pkill keepalived

 

 

 

 

12.至此两台mysql互为主从,mysql主主同步+keepalived高可用 配置成功

 

 

 

 

 

 

你可能感兴趣的:(运维,云计算,负载均衡,其他)