首頁 資料庫 mysql教程 利用Keepalived构建MySQL主主复制

利用Keepalived构建MySQL主主复制

Jun 07, 2016 pm 04:45 PM

MYSQL-HA有很多的实现方案,比较常见的是master+keepalived来实现MySQL-HA,来进行实现;两台MYSQL互为主从关系,通过Keepalived

概述:

MySQL-HA有很多的实现方案,比较常见的是master+keepalived来实现MySQL-HA,来进行实现;两台MySQL互为主从关系,通过Keepalived配置虚拟IP,实现当其中的一台MySQL数据库宕机后,应用能够自动切换到另外一台MySQL数据库,保证系统的高可用;在实际的生产环境中,也是通过这个方案来部署的,相信应该有值得借鉴的地方;

2.环境说明

搭建MySQL的主主复制步骤(请看链接  )

主机名

IP地址

Mysql01

192.168.47.149

192.168.47.140

Mysql02

192.168.47.148

192.168.47.140

两台数据库上面设置相应的host文件

vim /etc/hosts
127.0.0.1 Mysql01
localhost Mysql01
192.168.47.149 Mysql01
192.168.47.148 Mysql02

Keepalived的安装

3.1 #yum install keepalived –y

3.2 Mysql01进行参数文件的修改

cat /etc/keepalived/keepalived.conf

#! Configuration File for keepalived

global_defs {

router_id Mysql01 #修改为自己的主机名

}

##################第一部分###################

vrrp_instance VI_1 {

state BACKUP            #都修改成BACKUP

interface eth0

virtual_router_id 60    #默认51 主从都修改为60

priority 100            #优先级(1-254之间),另一台改为90,,备用节点必须比主节点优先级低。

advert_int 1

nopreempt                #不抢占资源,意思就是它活了之后也不会再把主抢回来

authentication {

#设置验证信息,两个节点必须一致

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

    192.168.47.140

}

}

##################第二部分###################

virtual_server 192.168.47.140 3306 {

delay_loop 6

lb_algo wrr            #LVS算法

lb_kind DR                #LVS模式

nat_mask 255.255.255.0

persistence_timeout 50 #会话保持时间

protocol TCP

real_server 192.168.47.149 3306 {

weight 1

notify_down /usr/local/script/mysql.sh #检测到服务down后执行的脚本

TCP_CHECK {

connect_timeout 10    #连接超时时间

nb_get_retry    3    #重连次数

connect_port 3306    #健康检查端口

}

}

}

3.3 Mysql02进行参数文件的修改

cat /etc/keepalived/keepalived.conf

#! Configuration File for keepalived

global_defs {

router_id Mysql02 #修改为自己的主机名

}

##################第一部分###################

vrrp_instance VI_1 {

state BACKUP #都修改成BACKUP

interface eth0

virtual_router_id 60 #默认51 主从都修改为60

priority 80 #在mysql-ha1上LVS上修改成100

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.47.140

}

}

##################第二部分###################

virtual_server 192.168.47.140 3306 {

delay_loop 6

lb_algo wrr

lb_kind DR

nat_mask 255.255.255.0

persistence_timeout 50

protocol TCP

real_server 192.168.47.140 3306 {

weight 1

notify_down /usr/local/script/mysql.sh #进行数据库状态的判断

TCP_CHECK {

connect_timeout 10

nb_get_retry 3

connect_port 3306

}

}

}

参数说明:

virtual_ipaddress:虚拟IP地址(VIP)

interface :网卡设备名称

virtual_server VIP:及Mysql服务端口

real_server :真实服务器地址

3.4 分别走两台mysql数据库上面创建以下脚本,用于判断数据库的状态

vim /usr/local/script/mysql.sh

#!/bin/bash

/etc/init.d/keepalived stop

/etc/init.d/keepalived start

3.5 keepalived的常用脚本

启动keepalived服务:service keepalived start

查看keepalived服务:service keepalived status

停止keepalived服务:service keepalived stop

3.6 进行测试

a) 使用PS命令检测服务运行状态

Ps -ef|grep keepalived

Ps -ef|grep mysql

b) 查看系统日志,确定keepalived运行正确

less /var/log/message

tail -f /var/log/messages

c) ip a查看keepalived的运行情况

注意事项:先启动mysql后启动keepalived。

Ubuntu下Nginx做负载实现高性能WEB服务器5---MySQL主主同步

生产环境MySQL主主同步主键冲突处理

MySQL主从失败 错误Got fatal error 1236

MySQL主从复制,单台服务器上实施

搭建MySQL代理服务器实现读写分离+主从同步

MySQL 5.5 主从双向同步

MySQL 5.5主从同步排错

MySQL主从复制异步半同步实例

本文永久更新链接地址:

linux

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

減少在Docker中使用MySQL內存的使用 減少在Docker中使用MySQL內存的使用 Mar 04, 2025 pm 03:52 PM

減少在Docker中使用MySQL內存的使用

如何使用Alter Table語句在MySQL中更改表? 如何使用Alter Table語句在MySQL中更改表? Mar 19, 2025 pm 03:51 PM

如何使用Alter Table語句在MySQL中更改表?

mysql無法打開共享庫怎麼解決 mysql無法打開共享庫怎麼解決 Mar 04, 2025 pm 04:01 PM

mysql無法打開共享庫怎麼解決

什麼是 SQLite?全面概述 什麼是 SQLite?全面概述 Mar 04, 2025 pm 03:55 PM

什麼是 SQLite?全面概述

在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器) 在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器) Mar 04, 2025 pm 03:54 PM

在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器)

在MacOS上運行多個MySQL版本:逐步指南 在MacOS上運行多個MySQL版本:逐步指南 Mar 04, 2025 pm 03:49 PM

在MacOS上運行多個MySQL版本:逐步指南

如何保護MySQL免受常見漏洞(SQL注入,蠻力攻擊)? 如何保護MySQL免受常見漏洞(SQL注入,蠻力攻擊)? Mar 18, 2025 pm 12:00 PM

如何保護MySQL免受常見漏洞(SQL注入,蠻力攻擊)?

哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什麼? 哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什麼? Mar 21, 2025 pm 06:28 PM

哪些流行的MySQL GUI工具(例如MySQL Workbench,PhpMyAdmin)是什麼?

See all articles