heartbeat实现Mysql主主高可用

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

heartbeat实现Mysql主主高可用

先声明本文非原创,参照 http://blog.chinaunix.net/uid-20639775-id-3337481.html 完善与加了一些注解而已。
1.1  方案简介
本方案使用heartbeat+mysql主主同步来实现mysql数据库的高可用, 当服务器或者masterheartbeat宕掉以后会自动切换到backup上,服务器或者masterheartbeat恢复以后可以自动切换回来,master继续提供服务。
1.2  方案优缺点
Ø   优点:

易于配置,架构复杂度低

开源,费用低,无特殊硬件或是网络组件要求

自动虚拟IP管理

数据复制保持基本一致

Ø   缺点:
mysql不可用的情况下不能进行自动切换,需要通过crm模式实现或者额外的脚本实现(比如shell脚本监测到mastermysql不可用就将主上的heartbeat停掉,这样就会切换到backup中去)
不方便扩展。
可能会发生脑裂问题。
1.3  方案架构图

1.4  适用场景
该方案适合只有两台数据库的情况,访问量不大,不需要实现读写分离的情况。
1.5  方案实战
1.5.1 实战环境介绍
 
服务器名
IP
VIP
系统
Mysql
Master A
192.168.1.28
192.168.1.30
Centos  6.3  64bit
5. 5.27
MasterB
192.168.1.29
Centos  6.3  64bit
5. 5.27
1.5.2 Mysql的安装和配置 以及主主同步配置
1.5.4 Heardbeat的安装
A,B 服务器都需要安装heardheat软件。下面两种安装方式任选其一。
Ø   Rpm包的安装方式 , 下载 yum
rpm -ivh epel-release-6-8.noarch.rpm
yum -y install heartbeat-*
Ø   源代码编译安装方式
# tar xf 7e3a82377fa8.tar.bz2 
cd Heartbeat-3-0-7e3a82377fa8/ cd heartbeat-2.1.3
./configure
 Make
 make install
1.5.5 Heartbeat的配置
Hearbeat的配置主要包括三个配置文件,authkeysha.cfharesources的配置,下面就分别来看!
cp /usr/share/doc/heartbeat-3.0.4/authkeys  /etc/ha.d/
cp /usr/share/doc/heartbeat-3.0.4/ ha.cf  /etc/ha.d/
cp /usr/share/doc/heartbeat-3.0.4/ haresources  /etc/ha.d/
Ø   Hosts文件的配置
需要在hosts文件中添加master A master B 主机,加快节点间的通信
Master  A master B hosts节点添加的内容一样,我的配置添加如下内容:
vim /etc/hosts
192.168.1.28    master1
192.168.1.29    master2
Ø   主机名配置
[root@master 1  ~]# vim /etc/sysconfig/network
HOSTNAME=master 1
[root@master2 ~]# vim /etc/sysconfig/network
HOSTNAME=master2
Ø   禁用 selinux
[ root@master 1  ~]# vim /etc/selinux/config 
SELINUX=disabled
[ root@master 2  ~]# vim /etc/selinux/config 
SELINUX=disabled
Ø   Authkerys的配置
这个文件用来配置密码认证方式,支持3种认证方式,crcmd5sha1,从左到右安全性越来越高,消耗的资源也越多。因此如果heartbeat运行在安全的网路之上,比如私网,那么可以将验证方式设置成crc A B authkeys配置一样。我的authkeys文件配置如下:
vim /etc/ha.d/authkeys
auth 1
1 crc
Ø   ha.cf的配置
Master  A ha.cf的配置
vim /etc/ha.d/ha.cf
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport 694
ucast eth0 192.168.1.28  master AIP
auto_failback on
node      master 1
node    master2
ping 10.10.10.254    网关
respawn hacluster /usr/lib64/heartbeat/ipfail  默认是lib修改lib64
compression bz2 
compression_threshold 2
Master B ha.cf的配置
vim /etc/ha.d/ha.cf
logfile /var/log/ha-log
logfacility local0
keepalive 2
deadtime 30
warntime 10
initdead 120
udpport 694
ucast eth0 192.168.1.29
auto_failback on
node      master1
node    master2
ping 10.10.10.254
respawn hacluster /usr/lib64/heartbeat/ipfail
compression bz2
compression_threshold 2
Ø   A,B 服务器 haresources的配置 一样
haresources用来设置master的主机名、虚拟IP、服务以及磁盘挂载等,masterbackup的配置是一样的,下面的mysqld需要做成服务,放在/etc/rc.d/init.d/目录下,配置配置如下:
vim /etc/ha.d/haresources  添加下面一行
m aster 2  192.168.1.30/24/eth0 mysqld  这表示资源将在启动在master1
1.5.6 Heartbeat的启动
在启动master  A master B 上的mysqld启动以后, 启动master  A master B heartbeat
[root@master 1  ~]# chkconfig heartbeat on
[root@master2 ~]# chkconfig heartbeat on
[root@master1 ~]# ifconfig  查看虚拟 IP没有起来
eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:48:D0:64  
          inet addr:192.168.1.30  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
1.5.7 方案测试
环境搭建好以后,就需要进行周密的测试,看是否实现了预期的功能:
Ø   停掉master  A 上的mysqld,看看是否切换
Ø   停掉master  A heartheat看看是否能正常切换。
Ø   停掉master  A 的网络或者直接将master系统shutdown,看看能否正常切换。
Ø   启动master  A heartbeat看看是否能正常切换回来。
Ø   重新启动master看看能否切换过程是否OK
1.5.8  解决问题
如果重启机器后 heartbeat不能启动,则需要查看/var/log/ha-log
ERROR: Current node [test1] not in configuration! 
配置文件有问题,由于我临时用hostname修改的主机名,重启后不生效。需要修改主机名与ha.cf中定义的node后面的一样
ERROR: glib: ucast: error binding socket. Retrying: Permission denied
禁用 selinux









本文转自 deng304749970 51CTO博客,原文链接:http://blog.51cto.com/damondeng/1152283,如需转载请自行联系原作者
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
监控 关系型数据库 MySQL
HeartBeat监控Mysql状态
HeartBeat监控Mysql状态
|
2月前
|
运维 监控 关系型数据库
MySQL高可用方案:MHA与Galera Cluster对比
本文深入对比了MySQL高可用方案MHA与Galera Cluster的架构原理及适用场景。MHA适用于读写分离、集中写入的场景,具备高效写性能与简单运维优势;而Galera Cluster提供强一致性与多主写入能力,适合对数据一致性要求严格的业务。通过架构对比、性能分析及运维复杂度评估,帮助读者根据自身业务需求选择最合适的高可用方案。
|
2月前
|
SQL 监控 关系型数据库
MySQL主从复制:构建高可用架构
本文深入解析MySQL主从复制原理与实战配置,涵盖复制架构、监控管理、高可用设计及性能优化,助你构建企业级数据库高可用方案。
|
存储 SQL 关系型数据库
Mysql高可用架构方案
本文阐述了Mysql高可用架构方案,介绍了 主从模式,MHA模式,MMM模式,MGR模式 方案的实现方式,没有哪个方案是完美的,开发人员在选择何种方案应用到项目中也没有标准答案,合适的才是最好的。
896 3
Mysql高可用架构方案
|
9月前
|
监控 关系型数据库 MySQL
云数据库:从零到一,构建高可用MySQL集群
在互联网时代,数据成为企业核心资产,传统单机数据库难以满足高并发、高可用需求。云数据库通过弹性扩展、分布式架构等优势解决了这些问题,但也面临数据安全和性能优化挑战。本文介绍了如何从零开始构建高可用MySQL集群,涵盖选择云服务提供商、创建实例、配置高可用架构、数据备份恢复及性能优化等内容,并通过电商平台案例展示了具体应用。
|
运维 容灾 关系型数据库
介绍几种 MySQL 官方高可用方案
MySQL 官方提供了多种高可用部署方案,从最基础的主从复制到组复制再到 InnoDB Cluster 等等。本篇文章以 MySQL 8.0 版本为准,介绍下不同高可用方案架构原理及使用场景。
3014 3
介绍几种 MySQL 官方高可用方案
|
运维 容灾 关系型数据库
MySQL高可用方案--Xenon全解
MySQL高可用方案--Xenon全解
|
SQL 关系型数据库 MySQL
MySQL高可用架构设计:从主从复制到分布式集群
MySQL高可用性涉及主从复制、半同步复制和Group/InnoDB Cluster。主从复制通过二进制日志同步数据,保证故障时可切换。半同步复制确保事务在至少一个从服务器确认后才提交。Group Replication是多主复制,支持自动故障切换。InnoDB Cluster是8.0的集成解决方案,简化集群管理。使用这些技术能提升数据库的稳定性和可靠性。
1220 2
|
SQL 关系型数据库 MySQL
orchestrator搭建mysql高可用
orchestrator搭建mysql高可用
338 0
|
缓存 关系型数据库 MySQL
如何实现mysql高可用集群
如何实现mysql高可用集群
164 0

推荐镜像

更多