架构图

安装步骤省略。

158.140 keepalived.conf

! Configuration File for keepalived

global_defs {                           #全局标识模块
notification_email { #定义邮件通知
test@163.com #目标邮箱
}
notification_email_from test@163.com #发送邮箱
smtp_server 127.0.0.1 #发送邮箱的smtp服务器
smtp_connect_timeout 30 #smtp服务器连接超时时间
router_id LVS_2
} vrrp_instance VI_1 {
state BACKUP #本实例启动状态:MASTER/BACKUP
interface eth0 #监控的网络接口
virtual_router_id 51 #vrrp实例(同一个组主备服务器设置一样)
priority 100 #优先级高的为master,不能超过255。(BACKUP可设置为50)
advert_int 1 #均衡器检测间隔1秒(服务器设置都一样)
# nopreempt
authentication { #验证类型及密码(服务器设置都一样)
auth_type PASS #认证方式,PASS或AH
auth_pass 123456 #认证密码
}
virtual_ipaddress { #虚拟ip地址virtual_ipaddress,可以定义多个
192.168.158.120
}
} virtual_server 192.168.158.120 3306 { #定义虚拟服务器,与上面的virtual_server一样
delay_loop 6 #健康检查时间间隔,6秒
lb_algo wrr #负载均衡调度算法:rr|wrr|lc|wlc|sh|dh|lblc
lb_kind DR #负载均衡转发规则:NAT|DR|TUN
nat_mask 255.255.255.0
persistence_timeout 50 #回话保持时间50秒,动态服务建议开启
protocol TCP #转发协议protocol,一般有tcp和udp两种 #后端真实服务器,有几台就设置几个
real_server 192.168.158.140 3306 {
weight 1 #权重越大负载分越大,0表示失效
#notify_down /etc/keepalived/mysqlcheck/mysql.sh
SSL_GET { #健康检查方式:HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}

158.141 keepalived.conf

! Configuration File for keepalived

global_defs {                           #全局标识模块
notification_email { #定义邮件通知
test@163.com #目标邮箱
}
notification_email_from test@163.com #发送邮箱
smtp_server 127.0.0.1 #发送邮箱的smtp服务器
smtp_connect_timeout 30 #smtp服务器连接超时时间
router_id LVS_1
} vrrp_instance VI_1 {
state BACKUP #本实例启动状态:MASTER/BACKUP
interface eth0 #监控的网络接口
virtual_router_id 51 #vrrp实例(同一个组主备服务器设置一样)
priority 99 #优先级高的为master,不能超过255。(BACKUP可设置为50)
advert_int 1 #均衡器检测间隔1秒(服务器设置都一样
authentication { #验证类型及密码(服务器设置都一样)
auth_type PASS #认证方式,PASS或AH
auth_pass 123456 #认证密码
}
virtual_ipaddress { #虚拟ip地址virtual_ipaddress,可以定义多个
192.168.158.120
}
} virtual_server 192.168.158.120 3306 { #定义虚拟服务器,与上面的virtual_server一样
delay_loop 6 #健康检查时间间隔,6秒
lb_algo wrr #负载均衡调度算法:rr|wrr|lc|wlc|sh|dh|lblc
lb_kind DR #负载均衡转发规则:NAT|DR|TUN
nat_mask 255.255.255.0
persistence_timeout 50 #回话保持时间50秒,动态服务建议开启
protocol TCP #转发协议protocol,一般有tcp和udp两种 #后端真实服务器,有几台就设置几个
real_server 192.168.158.141 3306 {
weight 1 #权重越大负载分越大,0表示失效
#notify_down /etc/keepalived/mysqlcheck/mysql.sh
SSL_GET { #健康检查方式:HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}

VIP

ifconfig eth0:0 192.168.158.120 netmask 255.255.255.0 up

ifconfig eth0:0

ifconfig eth0:0 up

ip a s dev eth0

check.sh

#!/bin/bash
while [ true ]; do
/bin/sleep 1
sh mysql_status.sh
done

mysql_status.sh

#!/bin/bash
#/usr/bin/nmap localhost | grep 3306
#lsof -i:3306
MYSQLPORT=`netstat -tlnp | grep "3306"|awk -F[:" "]+ '{print $4}'` function checkMysqlStatus(){
/usr/bin/mysql -uroot -plizhenghua --connect_timeout=5 -e "show databases;" &>/dev/null 2>&1
if [ $? -ne 0 ]
then
restartMysqlService
if [ "$MYSQLPORT" == "3306" ];then
echo "mysql restart successful......"
else
echo "mysql restart failure......"
echo "Server: $MYSQLIP mysql is down, please try to restart mysql by manual!" > /var/log/mysqlerr
#mail -s "WARN! server: $MYSQLIP mysql is down" admin@yourdomain.com < /var/log/mysqlerr
fi
else
echo "mysql is running..."
fi
} function restartMysqlService(){
# echo "测试重启mysql服务!"
echo "清除mysql残余!"
chengkill mysqld
echo "关闭keepalived!!"
chengkill keepalived
echo "清除成功!"
} if [ "$MYSQLPORT" == "3306" ]
then
checkMysqlStatus
else
restartMysqlService
fi

主主

CHANGE MASTER TO MASTER_HOST='192.168.158.140',MASTER_USER='sync',MASTER_PASSWORD='sync',MASTER_LOG_FILE='mysql-bin.000125',MASTER_LOG_POS=286514181;

start slave;

show slave status \G

漂移

守护进程模式启动check.sh

check会自动运行mysql_status.sh脚本, mysql_status脚本的功能是

检测当前mysql, 当mysql挂掉的时候, 一起干掉keepalived,

这样, 即可实现漂移。

LVS+Keepalived+Mysql+主主数据库架构[2台]的更多相关文章

  1. LVS+Keepalived+Mysql+主备数据库架构[4台]

    这是一个坑...磨了不少时间.见证自己功力有待提升... 架构图 数据库 1.安装数据库 这块不难, 直接引用:mysql安装 2.数据库主备 这块不难, 直接引用: mysql主备 虚拟VIP 重点 ...

  2. MySQL 高可用性—keepalived+mysql双主(有详细步骤和全部配置项解释)

    博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 前言:生产环境中一台mysql主机存在单 ...

  3. MySQL 高可用性—keepalived+mysql双主

    MySQL 高可用性—keepalived+mysql双主(有详细步骤和全部配置项解释) - 我的博客 - CSDN博客https://blog.csdn.net/qq_36276335/articl ...

  4. keepalived+MySQL双主搭建

    keepalived+MySQL双主搭建过程 首先要简单了解一下keepalived: Keepalived是Linux下一个轻量级别的高可用解决方案.高可用(High Avalilability,H ...

  5. Lvs+keepalived+mysql主从热备

    p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; f ...

  6. Keepalived+MySQL双主

    一.Keepalived+MySQL Replication的应用场景 MySQL的高可用方案有cluster,MMM,MHA等,这些高可用方案都要三台服务器以上,成本有点高,今天介绍一个低成本高可用 ...

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

    MySQL双主复制,即互为Master-Slave(只有一个Master提供写操作),可以实现数据库服务器的热备,但是一个Master宕机后不能实现动态切换.而Keepalived通过虚拟IP,实现了 ...

  8. keepalived+mysql双主热备

    这里使用keepalived实现mysql的双主热备高可用 实验环境: 主机名 IP 系统版本 软件版本 master 192.168.199.6/vip:192.168.199.111 Rhel7. ...

  9. Lvs+keepalived+mysql(主从复制)

    1.准备环境 操作系统:centos 6.5 2台机器主机名为node53.node54     Mysql Lvs keepalived node2 Y Y Y node3 Y Y Y       ...

随机推荐

  1. python-数据

    python基本数据类型 数字 整型 int 123 浮点型 float 3.2 布尔型 bool True/False 复数 complex 1+1j 组 序列 字符串 str "hell ...

  2. bowtie2 Linux安装

    目前最新版本为2.3.2,网址为:https://sourceforge.net/projects/bowtie-bio/files/bowtie2/2.3.2 安装分为简单的下载可执行文件和源编译安 ...

  3. sqli-labs(四)

    第七关: 输入?id=1 页面显示如下,可以看出这关大概是锻炼利用sql来写入一句话木马. 这里说我下我的探测流程(主要是为了知道后台的sql是怎样拼凑的): 输入?id=1' 报错  说明后台是用的 ...

  4. CentOS 5 yum源无法使用

    在新装的CentOS 5.7系统中,由于CentOS 5.7版本比较旧,yum源无法使用. 尝试多种方法,最终从http://blog.csdn.net/zhuix7788/article/detai ...

  5. How to export a model from SolidWorks to Google SketchUp

    How to export a model from SolidWorks to Google SketchUp While Google SketchUp is not a professional ...

  6. Fantasia (点强连通分量建图 + 树形DP)

    简化一下题意,我们先看成一副强连通的图,这时候应该是最简单了,去点任意点都是其他的乘积.那再加强一点难度,改为两个强连通图连接的非强连通图呢?那应该就是找出关键的那个点,并求出两边的乘积.但是一个一个 ...

  7. 【2017-04-20】Sql字符串注入式攻击与防御,实体类,数据访问类

    字符串攻击 所谓sql字符串注入式攻击就是在用户输入界面输入通过精心编制的含有某种指令的字符串,来改变C#中连接数据库要执行的sql语句,从而对数据库进行攻击性操作 在用户输入界面输入  a');up ...

  8. 设计模式之Memento(备忘机制)(转)

    Memento定义: memento是一个保存另外一个对象内部状态拷贝的对象.这样以后就可以将该对象恢复到原先保存的状态. Memento模式相对也比较好理解,我们看下列代码: public clas ...

  9. python模板字符串和格式化字符串

    模板字符串:用string模块里的Template Template()里面把字符串中某个值用设置变量${key}的方式先写好,然后在substitute()的方式把变量用其他值代替,就完成了字符串的 ...

  10. windows环境下 curl 安装和使用

    curl下载地址:https://curl.haxx.se/download.html,拉到页面最底下,选择红色选中的那个CAB的进行下载,如下图所示: 下载完成后,解压. 解决windows控制台c ...