使用keepalived实现mysql主从复制的自动切换
最近测试了一下mysql+keepalived实现主从自动切换,主从都需要安装keepalived,使用vip漂移实现主从自动切换,这里主要记录的是keepalived的文件配置。
这里mysql搭建的是双主。
环境:
主:192.168.184.128
从:192.168.184.133
vip:192.168.184.132
两台服务器配置的均是BACKUP,主机优先级是100,从机优先级是90.均为非抢占模式nopreempt(只有BACKUP才可以设置为nopreempt),设置非抢占模式后,在原主机恢复并正常启动keepalived后,不会自动切回,若想切回master,只需去掉该节点的nopreempt选项并且将priority改的比其他节点大,然后重新加载配置文件即可(等MASTER切过来之后再将配置文件改回去再reload一下)。
主从配置文件除了优先级priority和virtual_server中的real_server不一样外,其他均一样。
notify_master 是切换为master时执行的脚本,主要用于判断主从是否已同步,并记录下主从切换时的日志位置。
notify_backup 是切换为backup时执行的脚本,主要是修改一些使用于从库的参数。
nofify_stop 是keepalived服务停掉后执行的脚本,主要是配置一些参数,并判断是否存在写操作。
notify_down /data/mysql/bin/MySQL.sh部分是在mysql 3306端口不通时执行的操作,脚本内容是:
#! /bin/sh
pkill keepalived
keepalived停掉后就会发生主从切换。
global_defs {
notification_email{
XXXX
}
notification_email_from XXX
smtp_server 127.0.0.1
smtp_connect_timeout
router_id KeepAlive_Mysql
}
vrrp_instance VI_1 {
state BACKUP
nopreempt
interface eth0
virtual_router_id
priority
advert_int
authentication {
auth_type PASS
auth_pass
}
notify_master /home/sh/master.sh
notify_backup /home/sh/backup.sh
nofify_stop /home/sh/stop.sh
smtp_alert
virtual_ipaddress {
192.168.184.132
}
}
virtual_server 192.168.184.132 {
delay_loop
lb_algo wrr
lb_kind DR
persistence_timeout
protocol TCP
real_server 192.168.184.133 {
weight
notify_down /data/mysql/bin/MySQL.sh
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
}
}
从机keepalived.conf
global_defs {
notification_email{
XXXX
}
notification_email_from XXXX
smtp_server 127.0.0.1
smtp_connect_timeout
router_id KeepAlive_Mysql
}
vrrp_instance VI_1 {
state BACKUP
nopreempt
interface eth0
virtual_router_id
priority
advert_int
authentication {
auth_type PASS
auth_pass
}
notify_master /home/sh/master.sh
notify_backup /home/sh/backup.sh
nofify_stop /home/sh/stop.sh
smtp_alert
virtual_ipaddress {
192.168.184.132
}
}
virtual_server 192.168.184.132 {
delay_loop
lb_algo wrr
lb_kind DR
persistence_timeout
protocol TCP
real_server 192.168.184.128 {
weight
notify_down /data/mysql/bin/MySQL.sh
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
connect_port
}
}
}
关于keepalived相关参数的说明可参考:
http://outofmemory.cn/wiki/keepalived-configuration
http://www.keepalived.org/documentation.html
使用keepalived实现mysql主从复制的自动切换的更多相关文章
- Keepalived与MySQL互为主从自动切换配置
为解决Mysql数据库单点问题,实现两台MySQL数据库互为主备,双向replication.当一Master出现问题,则将Slave切换为Master继续工作. 环境说明 系统版本:CentOS L ...
- MYSQL主从复制搭建及切换操作(GTID与传统)
结构如下: MYSQL主从复制方式有默认的复制方式异步复制,5.5版本之后半同步复制,5.6版本之后新增GTID复制,包括5.7版本的多源复制. MYSQL版本:5.7.20 操作系统版本:linux ...
- Nginx+Keepalived主从双机热备+自动切换
1 安装配置nginx 参考: http://www.cnblogs.com/jager/p/4388202.html 2 安装配置keepalived tar xvf keepalived-1.2. ...
- mysql mha 主从自动切换 高可用
mha(Master High Availability)目前在MySQL多服务器(超过二台),高可用方面是一个相对成熟的解决方案. 一,什么是mha,有什么特性 1. 主服务器的自动监控和故障转移 ...
- 利用Keepalived+mysql构建高可用MySQL双主自动切转
转载:http://www.it300.com/index.php/article-15266.html 关于MySQL-HA,目前有多种解决方案,比如heartbeat.drbd.mmm.共享存储, ...
- Nginx+keepalived 脚本安装主从双机热备自动切换解决方案
Nginx+keepalived 脚本安装主从双机热备自动切换解决方案 2013-07-02 19:24:13 标签:filesnginx keepalived 原创作品,允许转载,转载时请务必以超链 ...
- MySQL 主从复制实战解析
前言:前面几篇文章讲解了在应用层读写分离的配置和使用,这篇文章将来个主从复制的实战解析. 说明:主从复制,读写分离结构图 原理图 主库生成一个线程: Binlog Dump线程 1.此线程运行在主库, ...
- mysql主从备份+keepalived自动切换
数据库这一层需要做到避免单点故障可以是主从备份和主主备份,主主备份可能有性能损耗和数据同步的问题.这里记录下主从备份, mysql进行备份之前确保mysql的版本是一样的,我这里用的都是mysql5. ...
- MySQL主从复制与lvs+keepalived单点写入读负载均衡高可用实验【转】
一.环境Master(主机A):192.168.1.1Slave(主机B) :192.168.1.2 W-VIP(写入) :192.168.1.3 R-VIP(读取) :192.168.1.4 ...
随机推荐
- c++虚函数和内联构造函数
创建一个含有虚函数的对象时, 编译器会实现 "初始化其VPTR以指向相应的VTABLE" 这个操作 ,而实现这个操作是通过 "插入隐藏代码至构造函数中" 故此时 ...
- C#多线程开发中如何更新UI界面控件内容
子线程不能修改UI线程的状态(比如文本框里面的内容). 解决的办法是写一个用来更新文本框内容的函数,然后在Worker线程里面通过BeginInvoke来利用delegate调用这个函数更新文本框. ...
- unix下输出重定向
> 为重定向符号 >> 重定向不覆盖原文件内容 example: 1. 标准输出重定向 echo "123" > /home/123.txt ---- 标准 ...
- join()方法之我见
JavaScript join() 方法 定义和用法 join() 方法用于把数组中的所有元素放入一个字符串. 元素是通过指定的分隔符进行分隔的. 语法 arrayObject.join(separa ...
- php实现函数重载
java..net等强类型预言中都有方法重载,但是PHP是弱类型语言,不能确定参数的类型, 而且如果php定义的方法接收一个参数,调用的时候传入多个也不会有问题,所以不能进行重载. 但是我们可以通过p ...
- SEO优化
SEO是由英文Search Engine Optimization缩写而来, 中文意译为“搜索引擎优化”.SEO是指从自然搜索结果获得网站流量的技术和过程,是在了解搜索引擎自然排名机制的基础上, 对网 ...
- NPOI 数据导入导出
{ //数据导入 OpenFileDialog open = new OpenFileDialog(); open.Filter = "Excle文件|*.xls"; open.T ...
- 图片压缩工具optipng/jpegoptim安装
[1]还未实践 #yum install optipng -y [2]已成功 #yum install -y libjpeg libjpeg-devel #wget http://freecode.c ...
- UE4 中Struct Emum 类型的定义方式 笔记
UE4 基础,但是不经常用总是忘记,做个笔记加深记忆: 图方便就随便贴一个项目中的STRUCT和 Enum 的.h 文件 Note:虽然USTRUCT可以定义函数,但是不能加UFUNCTION 标签喔 ...
- SQL注入的字符串连接函数
在select数据时,我们往往需要将数据进行连接后进行回显.很多的时候想将多个数据或者多行数据进行输出的时候,需要使用字符串连接函数.在sqli中,常见的字符串连接函数有concat(),group_ ...