mysql主主同步+keepalived

1.安装数据库,配置主主,然后在keepalived
数据库安装完毕
yum install mysql-server yum install mysql-devel
========================================================
[[email protected] ~]# rpm -qa|grep mysql
mysql-devel-5.1.73-3.el6_5.x86_64
mysql-libs-5.1.73-3.el6_5.x86_64
mysql-5.1.73-3.el6_5.x86_64
mysql-server-5.1.73-3.el6_5.x86_64

mysqladmin -uroot password yaoshao123
主主同步
http://www.cnblogs.com/xiaoit/p/3977843.html
http://www.linuxidc.com/Linux/2013-05/83784.htm
(1)同步帐号
yao yaoshaoyun
grant replication slave on *.* to ‘yao‘@‘%‘ identified by ‘yaoshao123‘;
create database zabbix;
(2)vi /etc/my.conf

port = 3306
log_bin=/var/lib/mysql/mysql-binlog
server-id=1
binlog_do_db=zabbix

server-id=2
master-host=192.168.31.154
master-user=yao
master-password=yaoshao123
master-port=3306
master-connect-retry=5
replicate-do-db=zabbix
(3)主主新增添加以下

####server-id=1 原本为主########
#[mysqld]
master-host=192.168.31.154
master-user=yao
master-password=yaoshao123
master-port=3306
master-connect-retry=5
replicate-do-db = zabbix
log-slave-updates
sync_binlog=1
auto_increment_offset=1
auto_increment_increment=2
####server-id=2 原本为备########
#[mysqld]

log_bin=/var/lib/mysql/mysql-binlog
binlog_do_db=zabbix
log-slave-updates
sync_binlog=1
auto_increment_offset=2
auto_increment_increment=2

开始同步,最好锁表,好让从服务器定位同步位置。初次同步完成后,记得解锁。
flush tables with read lock;
unlock tables;
分别查看两台mysql>show slave status是看到
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
说明同步成功

下面是两台的my.conf
A 192.168.31.154
#---------------byyao-------------
port = 3306
log_bin=/var/lib/mysql/mysql-binlog
server-id=1
binlog_do_db=zabbix
#------------zhuzhu--------------
master-host=192.168.31.109
master-user=yao
master-password=yaoshao123
master-port=3306
master-connect-retry=5
replicate-do-db = zabbix
log-slave-updates
sync_binlog=1
auto_increment_offset=1
auto_increment_increment=2
#--------------byyao--------------

B192.168.31.109
#--------------byyao------------
server-id=2
master-host=192.168.31.154
master-user=yao
master-password=yaoshao123
master-port=3306
master-connect-retry=5
replicate-do-db=zabbix
#-------------zhuzhu------------
log_bin=/var/lib/mysql/mysql-binlog
log-slave-updates
sync_binlog=1
auto_increment_offset=2
auto_increment_increment=2
#--------------byyao------------

主主同步效果图

往从数据库新建一个表yaoshao,在主数据库查看

----------------------------------------keepalived 配置-----------------------------------

vi /etc/keepalived/keepalived.conf

主AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

vrrp_instance VI_1 {
   state backup       #两台配置此处均是BACKUP
   interface eth0
   virtual_router_id 51
   priority 100       #优先级,另一台改为90
   advert_int 1
   nopreempt          #不抢占,只在优先级高的机器上设置即可,优先级低的机器不设置
   authentication {
       auth_type PASS
       auth_pass 1111
   }
   virtual_ipaddress {
       192.168.31.122
   }
}

virtual_server 192.168.31.122 3306 {
   delay_loop 6
   lb_algo wrr
   lb_kind DR
   persistence_timeout 50        #会话保持时间
   protocol TCP

real_server 192.168.31.154 3306 {
       weight 3
       notify_down /usr/shell/killkeepalived.sh    #检测到mysql服务挂了就执行这个脚本(脚本
要自己写哈)
       TCP_CHECK {
       connect_timeout 10        #连接超时时间
       nb_get_retry 3            #重连次数
       delay_before_retry 3      #重连间隔时间
       connect_port 3306         #健康检查端口
        }
       }
}

备BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

vrrp_instance VI_1 {
   state backup
   interface eth0
   virtual_router_id 51
   priority 90
   advert_int 1
   authentication {
       auth_type PASS
       auth_pass 1111
   }
   virtual_ipaddress {
       192.168.31.122
   }
}

virtual_server 192.168.31.122 3306 {
   delay_loop 6
   lb_algo wrr
   lb_kind DR
   persistence_timeout 50
   protocol TCP

real_server 192.168.31.109 3306 {
       weight 3
       notify_down /usr/shell/killkeepalived.sh
       TCP_CHECK {
       connect_timeout 10
       nb_get_retry 3
       delay_before_retry 3
       connect_port 3306
           }
       }
}

------------------------脚本--两台都一样-----直接关闭,然后在corntab里尝试对mysqld和keepalived重启--------------

[[email protected] ~]# cat /usr/shell/killkeepalived.sh
#/bin/sh
/sbin/service keepalived stop

-----------------或者先判断尝试重启MYSQL不行在关闭keepalived--------

#!/bin/bash
#PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
A=`ps -C mysqld --no-header|wc -l`
if [ $A -eq 0 ];then
/etc/init.d/mysqld start ##这个地方写你nginx命令的路径
sleep 3
if [`ps -C mysqld --no-header|wc -l` -eq 0 ];then
killall keepalived
fi
fi

------------------------测试效果--------------------
两台机子都开起来,mysql -h 192.168.32.122 -uroot -pyaoshao123

mysql> show databases;
ERROR 2013 (HY000): Lost connection to MySQL server during query
mysql> show databases;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    19
Current database: *** NONE ***

+--------------------+
| Database           |
+--------------------+
| information_schema |
| B                  |
| test               |
| zabbix             |
+--------------------+
4 rows in set (0.04 sec)

===========关闭B这一台================

mysql> show databases;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    143
Current database: *** NONE ***

+--------------------+
| Database           |
+--------------------+
| information_schema |
| A                  |
| test               |
| zabbix             |
+--------------------+

稍微延迟

OK搞定了。。。。。

时间: 2024-09-30 14:45:25

mysql主主同步+keepalived的相关文章

Keepalived +Mysql 主主同步

一.配置Mysql主主同步 1,修改/etc/my.cnf,创建同步用户 Master104 [[email protected] ~]# vim /etc/my.cnf [mysqld] server-id = 1                    #backup这台设置2 log-bin = mysql-bin binlog-ignore-db = mysql,information_schema       #忽略写入binlog日志的库 auto-increment-incremen

mysql主主同步机制+keepalived实现MySQL高可用

一.概述 MySQL-HA目前有很多实现方案,今天就用MySQL双master+keepalived来实现MySQL-HA. 在MySQL-HA环境中,MySQL互为主从关系,这样就保证了两台MySQL数据的一致性. 然后用keepalived实现虚拟IP,通过keepalived来实现MySQL故障时自动切换. 二.实验环境 虚拟机 IP 操作系统 vCPU/个 内存/G 硬盘/G 虚拟IP Mysql01 192.168.1.100 Ubuntu14.04 1 1 20 192.168.1.

keepalived+mysql双主

       mysql高可用keepalived+mysql双主 MySQL的高可用方案一般有如下几种: keepalived+双主,MHA,PXC,MMM,Heartbeat+DRBD等,比较常用的是keepalived+双主,MHA和PXC. 本节主要介绍了利用 keepalived 实现 MySQL 数据库的高可用. Keepalived+mysql双主来实现MySQL-HA,我们必须保证两台MySQL数据库的数据完全一样,基本思路是两台MySQL互为主从关系,通过Keepalived配

centos lvs+keepalived+mysql实现mysql数据库热备主主复制-亲测ok

实验环境: linux:centos6.6 虚拟ip(vip):192.168.135.199 mysql master:192.168.20.193 mysql slave:192.168.20.195 (这里只是为了后文方便区分,一个叫master,一个叫slave,其实在主主复制中,都是master也都是slave,没有主从之分) mysql的版本: [[email protected] ~]# mysql -V mysql  Ver 14.14 Distrib 5.1.73, for r

keepalived+mysql双主复制高可用方案

MySQL双主复制,即互为Master-Slave(只有一个Master提供写操作),可以实现数据库服务器的热备,但是一个Master宕机后不能实现动态切换.而Keepalived通过虚拟IP,实现了双主对外的统一接口以及自动检查.失败切换机制.联合使用,可以实现MySQL数据库的高可用方案. 实验环境:OS:centos 6.x x86_64系统MySQL版本: :mysql 5.6.22   64 位A: master :192.168.79.3 3306B: slave :192.168.

MySQL主主互备结合keepalived实现高可用

试验环境: master:192.168.1.210(CentOS6.5) slave:192.168.1.211(CentOS6.5) VIP:192.168.1.208 MySQL主主互备模式配置 step1:Master服务的/etc/my.cnf配置 [mysqld] basedir = /usr/local/mysql datadir = /var/lib/mysql port = 3306 socket = /var/lib/mysql/mysql.sock server_id = 

mysql主主复制+keepalived 打造高可用mysql集群

为了响应公司需求,打造出更安全的mysql集群,能够实现mysql故障后切换,研究了几天终于有了成果,一起分享一下. 首先介绍一下这套集群方案实现的功能 1.mysql服务器故障后自动转移,修好后自动切回 2.mysql服务故障自动转移,修好后自动切回 3.可以实现在几秒钟内转移 以下内容均是实验环境,请根据实际情况修改响应参数 实验环境: mysql1 ip:10.1.1.20 mysql2  ip:10.1.1.21 mysql vip:10.1.1.25 三台机器均安装centos 6.5

LVS+MYCAT+读写分离+MYSQL主备同步部署手册

LVS+MYCAT+读写分离+MYSQL主备同步部署手册 1          配置MYSQL主备同步…. 2 1.1       测试环境… 2 1.2       配置主数据库… 2 1.2.1         编辑my.cnf文件… 2 1.2.2         重启数据库… 2 1.3       锁定主数据库DDL操作… 2 1.4       主备已有数据同步… 2 1.5       停止从服务… 3 1.6       配置备用数据库… 3 1.6.1         编辑my

通过KeepAlived搭建MySQL双主模式的高可用集群系统

企业级MySQL集群具备高可用.可扩展.易管理.低成本的特点.下面将介绍企业环境中经常应用的一个解决方案,即MySQL的双主互备架构,主要设计思路是通过MySQL Replication技术将两台MySQL Server互相将对方作为自己的Master,自己又同时作为对方的Slave来进行复制.这样就实现了高可用构架中的数据同步功能,同时,将采用KeepAlived来实现Mysql的自动failover.在这个构架中,虽然两台MySQL Server互为主从,但同一时刻只有一个MySQL Ser