使用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 ...
随机推荐
- 使用javascript打开一个新页而不被浏览器屏蔽
使用javascript打开一个新页面可以有几种方式,但各有利弊,以下做下分析 1.window.open(url) 这是新手最常用的方法,好处是简单易用,坏处,很简单,会被很多浏览器拦截而导致功能失 ...
- Mac下设置系统PATH
1. 进入当前用户的home目录 输入cd ~ 2. 创建.bash_profile 输入touch .bash_profile 3. 编辑.bash_profile文件 输入open -e .bas ...
- eclipse或myeclipse快捷键
MyEclipse 快捷键1(CTRL) ------------------------------------- Ctrl+1 快速修复 Ctrl+D: 删除当前行 Ctrl+Q 定位到最后编辑 ...
- Pycharm中使用GitHub
Pycharm是当前进行python开发,尤其是Django开发最好的IDE.GitHub是程序员的圣地,几乎人人都在用. 本文假设你对pycharm和github都有一定的了解,并且希望在pycha ...
- iOS应用性能调优好文mark
http://www.cocoachina.com/ios/20150408/11501.html
- Binary Tree Preorder Traversal -- LEETCODE 144
方法一:(迭代) class Solution { public: vector<int> preorderTraversal(TreeNode* root) { vector<in ...
- Prototype之个人见解
prototype js 的对象比较 由于 js 是解释执行的语言, 那么再代码中出现函数与对象如果重复执行, 会创建多个副本 在代码中重复执行的代码容易出现重复的对象 创建一个 Person 构造函 ...
- LINQ To SQL
议程 1.LINQ To SQL概述 2.LINQ To SQL对象模型 3.LINQ To SQL查询 用到的数据库 SQL Server 2005,数据库名为Test. 两张表,分别为Studen ...
- Android HandlerThread 的使用及其Demo (转)
转自http://www.cnblogs.com/hnrainll/p/3597246.html 介绍 首先我们来看看为什么我们要使用HandlerThread?在我们的应用程序当中为了实现同时完成多 ...
- bash 取文件特定行
比如,想要取某文件10-20行 可以用sed sed -n '10,20p' XXX.txt 非常方便!