环境

系统:Centos 7.4 x64

服务:Mariadb 5.5 、Keepalived 1.3.5.6


 结构

主1:192.168.1.108

主2:192.168.1.109

VIP:192.168.1.101


安装 Mysql主主复制:http://www.cnblogs.com/xiangsikai/p/9051638.html


1.两台分别安装 Keepalived

  1. yum -y install keepalived

2.修改Keepalived主配置文件(可提前备份源配置文件)

清空:echo > /etc/keepalived/keepalived.conf

vim /etc/keepalived/keepalived.conf

  1. global_defs {
  2. notification_email {
  3. # 定义通知邮箱,有多个可以换行添加
  4. xiangsikai@126.com
  5. }
  6. # 定义邮件的邮件账户
  7. xiangsikai@126.com
  8.  
  9. # 定义发件服务器
  10. smtp_server 192.168.1.164
  11.  
  12. # 定义连接smtp服务器超时时间
  13. smtp_connect_timeout 30
  14.  
  15. # id名称两端需要相同
  16. router_id Mysql-HA
  17. }
  18.  
  19. vrrp_instance VI_1 {
  20.  
  21. # 两端都设置BACKUP
  22. state BACKUP
  23.  
  24. # 定义虚拟IP的网卡
  25. interface ens32
  26.  
  27. # 定义id 两端需要相同
  28. virtual_router_id 77
  29.  
  30. # 优先级 主1 应设置成100
  31. priority 100
  32. advert_int 1
  33.  
  34. # 不主动抢占资源,只在master这台优先级高的设置,backup不设置
  35. #nopreempt
  36.  
  37. authentication {
  38.  
  39. # 关联类型
  40. auth_type PASS
  41.  
  42. # 两端密码需要相同“1111”
  43. auth_pass 1111
  44. }
  45. virtual_ipaddress {
  46.  
  47. # 定义虚拟VIP
  48. 192.168.1.101
  49. }
  50. }
  51.  
  52. # 填写虚拟VIP与端口
  53. virtual_server 192.168.1.101 3307 {
  54. delay_loop 2
  55.  
  56. # LVS算法,用不到,我们就关闭了
  57. lb_algo rr
  58.  
  59. # LVS模式,如果不关闭,备用服务器不能通过VIP连接主MySQL
  60. lb_kind DR
  61.  
  62. # 同一IP的连接60秒内被分配到同一台真实服务器
  63. #persistence_timeout 50
  64.  
  65. protocol TCP
  66.  
  67. # 填写本地mysql端IP 及 端口
  68. real_server 192.168.1.108 3307 {
  69. # 权重值
  70. weight 3
  71.  
  72. # 服务关闭后启动此端口
  73. notify_down /DATA/shell/mysql.sh
  74. TCP_CHECK {
  75.  
  76. # 连接超时
  77. connect_timeout 3
  78.  
  79. # 重试次数
  80. nb_get_retry 3
  81.  
  82. # 重试间隔时间
  83. delay_before_retry 3
  84. }
  85. }
  86. }

主1 : 有备注说明

  1. global_defs {
  2. notification_email {
  3. xiangsikai@126.com
  4. }
  5. xiangsikai@126.com
  6. smtp_server 192.168.1.164
  7. smtp_connect_timeout 30
  8. router_id Mysql-HA
  9. }
  10. vrrp_instance VI_1 {
  11. state BACKUP
  12. interface ens32
  13. virtual_router_id 77
  14. priority 50
  15. advert_int 1
  16. #nopreempt
  17. authentication {
  18. auth_type PASS
  19. auth_pass 1111
  20. }
  21. virtual_ipaddress {
  22. 192.168.1.101
  23. }
  24. }
  25.  
  26. virtual_server 192.168.1.101 3307 {
  27. delay_loop 2
  28. lb_algo rr
  29. lb_kind DR
  30. #persistence_timeout 50
  31. protocol TCP
  32. real_server 192.168.1.108 3307 {
  33. weight 3
  34. notify_down /DATA/shell/mysql.sh
  35. TCP_CHECK {
  36. connect_timeout 3
  37. nb_get_retry 3
  38. delay_before_retry 3
  39. }
  40. }
  41. }

主1:原配置文件

  1. global_defs {
  2. notification_email {
  3.  
  4. # 定义通知邮箱,有多个可以换行添加
  5. xxxxxxx@126.com
  6.  
  7. }
  8. global_defs {
  9. notification_email {
  10.  
  11. # 定义发送邮件的邮箱
  12. xxxxxx@126.com
  13.  
  14. }
  15. # 定义邮件的邮件账户
  16. xiangsikai@126.com
  17.  
  18. # 定义发件服务器
  19. smtp_server 192.168.1.164
  20.  
  21. # 定义连接smtp服务器超时时间
  22. smtp_connect_timeout 30
  23.  
  24. # id名称两端需要相同
  25. router_id Mysql-HA
  26. }
  27.  
  28. vrrp_instance VI_1 {
  29.  
  30. # 两端都设置BACKUP
  31. state BACKUP
  32.  
  33. # 定义虚拟IP的网卡
  34. interface ens32
  35.  
  36. # 定义id 两端需要相同
  37. virtual_router_id 77
  38.  
  39. # 优先级 主1 应设置成100
  40. priority 90
  41. advert_int 1
  42.  
  43. # 不主动抢占资源,只在master这台优先级高的设置,backup不设置
  44. #nopreempt
  45.  
  46. authentication {
  47.  
  48. # 关联类型
  49. auth_type PASS
  50.  
  51. # 两端需要相同的密码“1111”
  52. auth_pass 1111
  53. }
  54. virtual_ipaddress {
  55.  
  56. # 定义虚拟VIP
  57. 192.168.1.101
  58.  
  59. }
  60. }
  61.  
  62. # 填写虚拟VIP与端口
  63. virtual_server 192.168.1.101 3307 {
  64. delay_loop 2
  65.  
  66. # LVS算法,用不到,我们就关闭了
  67. lb_algo rr
  68.  
  69. # LVS模式,如果不关闭,备用服务器不能通过VIP连接主MySQL
  70. lb_kind DR
  71.  
  72. # 同一IP的连接60秒内被分配到同一台真实服务器
  73. #persistence_timeout 50
  74.  
  75. protocol TCP
  76.  
  77. # 填写本地mysql端IP 及 端口
  78. real_server 192.168.1.109 3307 {
  79.  
  80. # 权重值
  81. weight 3
  82.  
  83. # 服务关闭后启动此端口
  84. notify_down /DATA/shell/mysql.sh
  85. TCP_CHECK {
  86.  
  87. #连接超时
  88. connect_timeout 3
  89.  
  90. #重试次数
  91. nb_get_retry 3
  92.  
  93. #重试间隔时间
  94. delay_before_retry 3
  95. }
  96. }
  97. }

主2 : 有备注说明

  1. global_defs {
  2. notification_email {
  3. xiangsikai@126.com
  4. }
  5. xiangsikai@126.com
  6. smtp_server 192.168.1.164
  7. smtp_connect_timeout 30
  8. router_id Mysql-HA
  9. }
  10. vrrp_instance VI_1 {
  11. state BACKUP
  12. interface ens32
  13. virtual_router_id 77
  14. priority 50
  15. advert_int 1
  16. #nopreempt
  17. authentication {
  18. auth_type PASS
  19. auth_pass 1111
  20. }
  21. virtual_ipaddress {
  22. 192.168.1.101
  23. }
  24. }
  25.  
  26. virtual_server 192.168.1.101 3307 {
  27. delay_loop 2
  28. lb_algo rr
  29. lb_kind DR
  30. #persistence_timeout 50
  31. protocol TCP
  32. real_server 192.168.1.109 3307 {
  33. weight 3
  34. notify_down /DATA/shell/mysql.sh
  35. TCP_CHECK {
  36. connect_timeout 3
  37. nb_get_retry 3
  38. delay_before_retry 3
  39. }
  40. }
  41. }

主2:原配置文件

3.启动两端服务

  1. # 1.启动服务
  2. systemctl start keepalived
  3.  
  4. # 2.设置开机自启动
  5. systemctl enable keepalived

4.添加脚本

  1. # 1.创建脚本目录
  2. mkdir -p /DATA/shell/
  3.  
  4. # 2.创建脚本文件
  5. vim /DATA/shell/mysql.sh
  6.  
  7. #!/bin/bash
  8. pkill keepalived
  9.  
  10. # 3.给脚本添加执行权限
  11. chmod a+x /DATA/shell/mysql.sh

5.查看主VIP

  1. [root@localhost ~]# ip addr | egrep "inet "
  2. inet 127.0.0.1/8 scope host lo
  3. inet 192.168.1.109/24 brd 192.168.1.255 scope global dynamic ens32
  4. inet 192.168.1.101/32 scope global ens32

6.测试飘逸VIP,关闭服务 自行测试。

Keepalived + Mysql 主主复制高可用的更多相关文章

  1. MHA-结合MySQL半同步复制高可用集群(Centos7)

    目录 一.理论概述 本案例部署思路 二.环境 三.部署 部署MHA 部署二进制包MySQL及部署主从复制 部署半同步复制 配置MHA MHA测试 部署lvs+keepalived(lvs1,lvs2) ...

  2. mysql+keepalived 双主热备高可用

    理论介绍:我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短.MySQL双主复制,即互 ...

  3. Mysql+Keepalived双主热备高可用操作记录

    我们通常说的双机热备是指两台机器都在运行,但并不是两台机器都同时在提供服务.当提供服务的一台出现故障的时候,另外一台会马上自动接管并且提供服务,而且切换的时间非常短.MySQL双主复制,即互为Mast ...

  4. [转帖]【MySQL+keepalived】用keepalived实现MySQL主主模式的高可用

    [MySQL+keepalived]用keepalived实现MySQL主主模式的高可用 https://www.jianshu.com/p/8694d07595bc 一.实验说明 MySQL主主模式 ...

  5. keepalived + haproxy 实现web 双主模型的高可用负载均衡--转

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://xz159065974.blog.51cto.com/8618592/140581 ...

  6. mysql主备切换[高可用]

    到这一步的时候, 是主备部署已经处理好, 请关注:mysql主备部署[高可用] 这次使用的是keepalived-1.2.22.tar.gz版, 官网地址:keeplived官网 笼统知识请自行查询百 ...

  7. Mysql双主双从高可用集群的搭建且与MyCat进行整合

    1.概述 老话说的好:瞻前顾后.患得患失只会让我们失败,下定决心,干就完了. 言归正传,之前我们聊了Mysql的一主一从读写分离集群的搭建,虽然一主一从或一主多从集群解决了并发读的问题,但由于主节点只 ...

  8. 使用Keepalived实现Nginx的自动重启及双主热备高可用

    1.概述 之前我们使用Keepalived实现了Nginx服务的双机主备高可用,但是有几个问题没有解决,今天一起探讨一下. 1)在双机主备机制中,Keepalived服务如果宕了,会自动启用备机进行服 ...

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

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

  10. keepalived+MySQL双主搭建

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

随机推荐

  1. windows server 服务器添加免费域名证书的方法(Let's Encrypt)

    在 windows server 服务器上可以通过 win-acme工具添加ssl 1.首先下载工具 https://github.com/PKISharp/win-acme/releases 最新版 ...

  2. style标签进行实时编辑及修改css(转)

    心得: style也是一个标签,那么也可以使用css对其进行编辑 html5新属性 contenteditable,可以让标签元素处于可编辑状态,对于style标签也适用 为了不影响head标签里的s ...

  3. 国内Android源码下载

    因国内网络被墙的原因,按照Google提供下载Android源码的方式很难下载到,所以记录一下国内下载Android源码的步骤,主要利用的是清华大学的镜像下载. 说明: 下载环境:Ubuntu14.0 ...

  4. SurvivalShooter学习笔记(八.敌人管理器)

    敌人管理器:管理敌人的随机出生点创建 在场景中建立几个空物体,作为敌人的出生点 public class EnemyManager : MonoBehaviour { public PlayerHea ...

  5. Manacher模板,kmp,扩展kmp,最小表示法模板

    *N]; //储存临时串 *N];//中间记录 int Manacher(char tmp[]) { int len=strlen(tmp); ; ;i<len;i++) { s[cnt++]= ...

  6. sql的case when then else end 的语法实现列转行

    SELECT * FROM test5 ; RESOURCES DATETIME CNT ID1 0 2018-01-22 4 12 0 2018-01-24 10 23 0 2018-01-25 2 ...

  7. Python基础——原生数据类型(字典,列表,元组,字符串)

    字典Dictionary 字典定义了键值对的1对1管理. 1.定义字典 请看下面的栗子,我们先创建了一个具有两个元素的字典,每对都是key:value的形式. 我们能通过key得到value,但是不能 ...

  8. oracle 实现多字段匹配一个关键字查询语句

    oracle 实现多字段匹配一个关键字查询语句:有两种方法(经测试,10g中不能用,11g才行): 第一种. select * from table where ('字段名1' ||'字段名2' || ...

  9. CodeForces 156B Suspects(枚举)

    B. Suspects time limit per test 2 seconds memory limit per test 256 megabytes input standard input o ...

  10. CodeForces 156A Message(暴力)

    A. Message time limit per test 2 seconds memory limit per test 256 megabytes input standard input ou ...