MHA

MySQL 同步复制及高可用方案总结

淺唱寂寞╮ 提交于 2020-04-10 16:26:23
1.前言 mysql作为应用程序的数据存储服务,要实现mysql数据库的高可用。必然要使用的技术就是数据库的复制,如果主节点出现故障可以手动的切换应用到从节点,这点相信运维同学都是知道,并且可以实现的。但是这种情况只是手动的切换,对可用性有要求的业务需要分别实现主库和从库的高可用,保障在数据库出现down机的情况下,可以自动实现数据库的故障转移,保障应用的可用性和用户体验。 本文将会对一些常用的数据库高可用方案进行介绍,根据你不同的场景,选择合适的高可用方案即可。 2.MMM高可用方案 2.1.Mysql-MMM介绍 MMM(Master-Master replication managerfor Mysql,Mysql主主复制管理器)是一套灵活的脚本程序,基于perl实现,用来对mysql replication进行监控和故障迁移,并能管理mysql Master-Master复制的配置(同一时间只有一个节点是可写的)。 2.2.组件 mmm_mond: 监控进程,负责所有的监控工作,决定和处理所有节点角色活动。此脚本需要在监管机上运行。 mmm_agentd: 运行在每个mysql服务器上的代理进程,完成监控的探针工作和执行简单的远端服务设置。此脚本需要在被监管机上运行。 mmm_control: 一个简单的脚本,提供管理mmm_mond进程的命令。 mysql

mysql高可用之MHA+半同步复制

白昼怎懂夜的黑 提交于 2020-03-22 23:43:38
1,MHA概述 MHA目前在mysql高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为mysql高可用性环境下故障切换和主从提升的高可用软件。在mysql故障切换过程中,MHA能做到在0-30秒之内自动完成数据库的故障切换操作,并且在进行故障切换操作的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用,MHA里由两个角色一个是MHA Node(数据节点),另一个是MHA Manager(管理节点)。MHA Manager可以单独部署在一台读立的服务器上管理多个master-slave集群,也可以部署在一台slave节点上。 MHA Node运行在每台mysql服务器上,MHA Manager会定时探测集群中的master节点,当master出现故障时,它可以自动将最新数据的slave提升为新的master,然后将所有其他的slave重新指向新的master。整个故障转移过程中对应用程序完全透明。 在MHA自动故障切换过程中,MHA试图从宕机的主服务器上保存二进制日志,最大程度地保证数据的不丢失,但这并不总是可行的。例如,如果主服务器硬件故障或无法通过ssh访问,MHA没法保存二进制日志,只进行故障转移而丢失了最新的数据。使用mysql 5.5的半同步复制

linux--mysql(MHA高可用架构)

戏子无情 提交于 2020-03-12 10:11:07
MHA高可用架构 注意:一主多从=奇数 在做MHA高可用实验前需要做好gtid主从复制或者半同步复制,此次采用gtid主从复制 gtid主从复制链接: https://blog.csdn.net/Aplox/article/details/104670774 gtid主从复制环节 在3台虚拟机上做好gtid主从复制(基于前次实验做 读写分离 ) systemctl stop mysqld cd / var / lib / mysql / rm - fr * vim / etc / my . cnf 最后写入 server1配置文件写入 server_id=1 gtid_mode=ON enforce_gtid_consistency=ON log_slave_updates=ON 开启主从更换 log_bin=binlog 开启二进制日志 server2配置文件写入 server_id=2 gtid_mode=ON enforce_gtid_consistency=ON log_slave_updates=ON 开启主从更换 log_bin=binlog 开启二进制日志 server3配置文件写入 server_id=3 gtid_mode=ON enforce_gtid_consistency=ON log_slave_updates=ON 开启主从更换 log_bin

多图文,详细介绍mysql各个集群方案

梦想与她 提交于 2020-03-10 17:30:38
多图文,详细介绍mysql各个集群方案 集群的好处 高可用性:故障检测及迁移,多节点备份。 可伸缩性:新增数据库节点便利,方便扩容。 负载均衡:切换某服务访问某节点,分摊单个节点的数据库压力。 集群要考虑的风险 网络分裂:群集还可能由于网络故障而拆分为多个部分,每部分内的节点相互连接,但各部分之间的节点失去连接。 脑裂:导致数据库节点彼此独立运行的集群故障称为“脑裂”。这种情况可能导致数据不一致,并且无法修复,例如当两个数据库节点独立更新同一表上的同一行时。 @[toc] 一,mysql原厂出品 1,MySQL Replication mysql复制(MySQL Replication),是mysql自带的功能。 原理简介: 主从复制是通过重放binlog实现主库数据的异步复制。即当主库执行了一条sql命令,那么在从库同样的执行一遍,从而达到主从复制的效果。在这个过程中,master对数据的写操作记入二进制日志文件中(binlog),生成一个 log dump 线程,用来给从库的 i/o线程传binlog。而从库的i/o线程去请求主库的binlog,并将得到的binlog日志写到中继日志(relaylog)中,从库的sql线程,会读取relaylog文件中的日志,并解析成具体操作,通过主从的操作一致,而达到最终数据一致。 MySQL Replication一主多从的结构

MySQL高可用群集----MHA

纵然是瞬间 提交于 2020-03-03 02:48:54
文章目录 前言: 一、MHA概述 1.1 MHA简介 1.2 MHA特点 1.3 MHA作用 二、MHA实验 2.1 实验环境 2.2 拓扑图 2.3 实验目的 2.4 案例配置思路 2.5 实验配置 2.5.1 定义节点服务器名称 2.5.2 安装编译依赖环境 2.5.3 手工编译安装MySQL5.6 2.5.4 修改MySQL配置文件 2.2.5 新增数据库授权 2.5.6 配置主从同步 2.5.7 安装MHA 2.5.8 配置无密码认证 2.5.9 配置MHA 2.6 验证配置 2.6.1 验证密钥对 2.6.2 测试mysql主从复制 2.6.4 启动MHA 2.6.5 模拟故障 总结: 前言: MHA目前在MySQL高可用方面是一个相对成熟的解决方案 但是在搭建的过程中容易报错,且MHA的构建综合了主从复制,所以MHA安装时需要严格执行每一个部署 一、MHA概述 1.1 MHA简介 MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,MHA是由日本人开发,是一套优秀的MySQL故障切换和主从复制的高可用软件 在MySQL故障切换的过程中,MHA能做到0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能够最大程度上保证数据库的一致性,以达到真正意义上的高可用 MHA由perl语言编写

Consul, ProxySQL and MySQL MHA(mysql 读写分离,高可用)

雨燕双飞 提交于 2020-02-26 16:04:31
背景: mysql 官方目前没有提供比较成熟,稳定的高可用的方案,使得Mysql的高可用方案相对较少,一般都只有简单的主从,今天和大家分享一个Consul, ProxySQL and MySQL MHA架构的高可用方案: 架构特性: 1,高可用 2,读写分离,查询路由 3,sql过滤等功能 Installation of Consul: Firstly, we’ll need to install the required packages, download the Consul archive and perform the initial configuration. We’ll need to perform the same installation on each of the nodes (i.e., appserver, mysql1 and mysql2). Install pre-requisite packages: sudo yum -y install wget unzip bind-utils dnsmasq Install Consul: sudo useradd consul sudo mkdir -p /opt/consul /etc/consul.d sudo touch /var/log/consul.log /etc/consul.d

MHA之虚拟IP

↘锁芯ラ 提交于 2020-02-26 02:09:14
在 MySQL高可用之MHA部署 这篇博文中,已经将MHA的基础架构部署完成,但是并没有解决一个虚拟IP的问题,因为当master宕机后,新的master顶上来,这时前端APP要连接的数据库IP已经发生了变化,为了解决这个问题,必然要引入虚拟IP,谈起虚拟IP,首先想到的应该是keepalived这个工具,但这个工具有个弊端,就是有一个脑裂的问题,所以更建议在生产中使用脚本的方式来控制这个VIP。 1、在manager节点写入此脚本 [root@manager scripts]# cat /scripts/master_ip_failover #!/usr/bin/env perl use strict; use warnings FATAL => 'all'; use Getopt::Long; my ( $command,$ssh_user,$orig_master_host,$orig_master_ip,$orig_master_port, $new_master_host,$new_master_ip,$new_master_port ); my $vip = '192.168.20.100'; #这里指定VIP地址 my $key = '0'; my $ssh_start_vip = "/sbin/ifconfig ens33:$key $vip";

MySQL高可用集群之MHA

血红的双手。 提交于 2020-02-26 01:53:37
MySQL高可用集群之MHA 一、MHA简介 MHA(Master High Availability) 目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。 在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。 MHA里有两个角色一个是 MHA Node(数据节点) 另一个是MHA Manager(管理节点) 。 MHA Manager 可以单独部署在一台独立的机器上管理多个master-slave集群,也可以部署在一台slave节点上。 MHA Node 运行在每台MySQL服务器上,MHA Manager会定时探测集群中的master节点,当master出现故障时,它可以自动将最新数据的slave提升为新的master,然后将所有其他的slave重新指向新的master。整个故障转移过程对应用程序完全透明。 MHA自动故障切换过程中,MHA试图从宕机的主服务器上保存二进制日志,最大程度的保证数据的不丢失,但这并不总是可行的。例如,如果主服务器硬件故障或无法通过ssh访问,MHA没法保存二进制日志

MySQL高可用之MHA部署

半腔热情 提交于 2020-02-26 01:48:33
MHA(Master High Availability)目前在MySQL高可用方面是一个相对成熟的解决方案,在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。 MHA里有两个角色一个是MHA Node(数据节点)另一个是MHA Manager(管理节点)。 MHA Manager可以单独部署在一台独立的机器上管理多个master-slave集群,也可以部署在一台slave节点上。MHA Node运行在每台MySQL服务器上,MHA Manager会定时探测集群中的master节点,当master出现故障时,它可以自动将最新数据的slave提升为新的master,然后将所有其他的slave重新指向新的master。整个故障转移过程对应用程序完全透明。 MHA工作架构示意图如下: 在MHA架构中,可以采用半同步复制的方式,来最大限度的保证数据的一致性,MySQL的主从复制中,默认是采用异步来做主从复制的,但是异步有些弊端,下面是对异步、半同步的一个简单介绍: 异步与半同步:默认情况下MySQL的复制是异步的,Master上所有的更新操作写入Binlog之后并不确保所有的更新都被复制到Slave之上。异步操作虽然效率高,但是在Master

mysql实现高可用架构之MHA

柔情痞子 提交于 2020-02-26 00:00:25
mysql实现高可用架构之MHA 一、简介 MHA(Master HA)是一款开源的 MySQL 的高可用程序,它为 MySQL 主从复制架构提供了 automating master failover (自动化主故障转移)功能。MHA 在监控到 master 节点故障时,会提升其中拥有最新数据的 slave 节点成为新的master 节点,在此期间,MHA 会通过于其它从节点获取额外信息来避免一致性方面的问题。 MHA 还提供了 master 节点的在线切换功能,即按需切换 master/slave 节点。 MHA 是由日本人 yoshinorim(原就职于DeNA现就职于FaceBook)开发的比较成熟的 MySQL 高可用方案。MHA 能够在30秒内实现 故障切换,并能在故障切换中,最大可能的保证数据一致性。目前淘宝也正在开发相似产品 TMHA, 目前已支持一 主一从。 二、MHA 服务 2.1 服务角色 MHA 服务有两种角色, MHA Manager(管理节点)和 MHA Node(数据节点): MHA Manager: 通常单独部署在一台独立机器上管理多个 master/slave 集群(组),每个 master/slave 集群称作一个 application,用来管理统筹整个集群。 MHA node: 运行在每台 MySQL 服务器上(master/slave