mysql主从配置

MariaDB-MMM高可用群集

不羁岁月 提交于 2019-12-18 17:59:05
什么是MMM? MMM(MySQL主主复制管理器)是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语言开发,主要用来监控和管理MySQL Master-Master(双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时备选主的预热,可以说MMM这套脚本程序一方面实现了故障切换的功能,另一方面其内部附加的工具脚本也可以实现多个Slave的read负载均衡。 MMM提供了自动和手动两种方式移除一组服务器中复制延迟较高的服务器的虚拟IP,同时它还可以备份数据,实现两节点之间的数据同步等。由于MMM无法完全保证数据的一致性,所以MMM适用于对数据的一致性要求不是很高,但是又想最大程度地保证业务可用性的场景。对于那些数据一致性要求很高的业务,非常不建议采用MMM这种高可用架构。 MMM是一套灵活的脚本程序,基于perl实现,用来对mysql replication进行监控和故障迁移,并能管理MySQL Master-Master复制的配置。 关于MMM高可用架构的说明如下 mmm_mon:监控进程,负责所有的监控工作,决定和处理所有节点角色活动。此脚本需要在监管机上面运行 mmm_agent:运行在每个MySQL服务器上的代理进程,完成监控的探针工作和执行简单的远端服务设置。此脚本需要在监管机上面运行

MMM+Amoeba搭建MySQL高可用负载均衡群集

半世苍凉 提交于 2019-12-18 17:45:17
MySQL的主从复制和MySQL的读写分离两者有着紧密联系,首先要部署主从复制,只有主从复制完成了,才能在此基础上进行数据的读写分离。MySQL的读写分离就是只在主服务器上写,只在从服务器上读。基本原理就是让主数据库处理事务性查询,而从服务器处理select查询。数据库复制被用来事务性查询导致的变更同步到群集中的从数据库。 Amoeba主要为应用层访问MySQL时充当sql路由,并具有负载均衡、高可用性、SQL过滤、读写分离、可路由相关到目标数据库、可并发请求多台数据库。通过Amoeba能够完成数据源的高可用、负载均衡和数据切片等功能。 MMM(MySQL主主复制管理器)是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语言开发,主要用来监控和管理MySQL Master-Master(双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时备选主的预热,可以说MMM这套脚本程序一方面实现了故障切换的功能,另一方面其内部附加的工具脚本也可以实现多个Slave的read负载均衡。 amooeba在实际使用中存在单点故障的问题,所以在学习了MMMM之后,我就尝试了使用mmm+amoeba的架构来避免主库的单点故障,接下来我就为大家在虚拟机上模拟服务的搭建过程 项目环境 使用六台服务器模拟搭建,拓扑图如下:

MMM高可用架构

怎甘沉沦 提交于 2019-12-18 17:37:23
MMM高可用架构 MMM(Master-Master replication manager for MySQL) 是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语言开发,主要用来监控和管理MySQL Master-Master(双主)复制,可以说是mysql主主复制管理器。虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时刻备选主的预热,可以说MMM这套脚本程序一方面实现了故障切换的功能,另一方面其内部附加的工具脚本也可以实现多个slave的read负载均衡。关于mysql主主复制配置的监控、故障转移和管理的一套可伸缩的脚本套件(在任何时候只有一个节点可以被写入),这个套件也能对居于标准的主从配置的任意数量的从服务器进行读负载均衡,所以你可以用它来在一组居于复制的服务器启动虚拟ip,除此之外,它还有实现数据备份、节点之间重新同步功能的脚本。 MMM提供了自动和手动两种方式移除一组服务器中复制延迟较高的服务器的虚拟ip,同时它还可以备份数据,实现两节点之间的数据同步等。由于MMM无法完全的保证数据一致性,所以MMM适用于对数据的一致性要求不是很高,但是又想最大程度的保证业务可用性的场景。MySQL本身没有提供replication failover的解决方案,通过MMM方案能实现服务器的故障转移

MySQL读写分离

三世轮回 提交于 2019-12-18 10:57:25
一、读写分离(主从复制) 主从复制: 当主服务器有写入(insert/update/delete)语句时候,从服务器自动获取 读写分离: insert/update/delete语句操作一台服务器,select操作另一个服务器 从库生成两个线程,一个I/O线程,一个SQL线程; i/o线程去请求主库 的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中; 主库会生成一个 log dump 线程,用来给从库 i/o线程传binlog; SQL 线程,会读取relay log文件中的日志,并解析成具体操作,来实现主从的操作一致,而最终数据一致 二、bin-log日志 概念:binlog即二进制日志,它记录了数据库上的所有改变并以二进制的形式保存在磁盘中,它可以用来查看数据库的变更历史、数据库增量备份和恢复、Mysql的复制(主从数据库的复制)。 简单概括:binlog日志就是记录MySQL数据库增/删/改SQL语句 作用:实现主从复制、灾难恢复 1、开启binlog日志 步骤1:打开MySQL配置文件vi /etc/my.cnf并修改 步骤2:重启服务 步骤3:登录MySQL查看bin-log日志是否开启 2、查看binlog日志里面的内容 列表: show master logs 清空: reset master 刷新: flush logs

linux 安装mysql和主从配置 + Spring 基于注解配置mysql读写分离

倾然丶 夕夏残阳落幕 提交于 2019-12-18 10:45:02
1. 卸载已有的mysql http://www.cnblogs.com/kerrycode/p/4364465.html 1.安装mysql yum -y install wget 下载 http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm 或者 https://download.csdn.net/download/maple980326/12037473 的 rpm文件 粘贴至 maple用户 目录 cd 至 maple用户目录 安装mysql的YUM源:rpm -ivh mysql57-community-release-el7-11.noarch.rpm 检查mysql的YUM源是否安装成功:yum repolist enabled | grep "mysql.*-community.*" yum install mysql-community-server systemctl start mysqld 查看默认密码:grep 'temporary password' /var/log/mysqld.log 使用grep 'temporary password' /var/log/mysqld.log找不到root密码 打开mysqld.log中根本没有temporary password

MySQL中间件之ProxySQL总结

匆匆过客 提交于 2019-12-18 08:18:25
MySQL中间件之ProxySQL总结 1、ProxySQL简介 ProxySQL为MySQL的中间件,其有两个版本,官方版和percona版,percona版是基于官方版基础上修改而来。ProxySQL是用C++语言开发的,虽然也是一个轻量级产品,但性能很好(据测试,能处理千亿级的数据),功能也足够,能满足中间件所需的绝大多数功能,包括: 1)最基本的读/写分离,且方式有多种。 2)可定制基于用户、基于schema、基于语句的规则对SQL语句进行路由。换句话说,规则很灵活。基于schema和与语句级的规则,可以实现简单的sharding。 3)可缓存查询结果。虽然ProxySQL的缓存策略比较简陋,但实现了基本的缓存功能,绝大多数时候也够用了。此外,作者已经打算实现更丰富的缓存策略。 4)监控后端节点。ProxySQL可以监控后端节点的多个指标,包括:ProxySQL和后端的心跳信息,后端节点的read-only/read-write,slave和master的数据同步延迟性(replication lag)。 2、proxysql的配置系统体系结构 整个配置系统分为三层,如下所示: proxysql的每一个配置项在三层中都存在,但是这三层是独立的,也就是说,proxysql可以同时拥有三份配置,每层都是独立的,可能三份都不一样,可能三份都一样。 RUNTIME这个顶级层

MySQL主从同步,出现Slave_SQL_Running:no和slave_io_running:no问题的解决方法

风流意气都作罢 提交于 2019-12-18 06:44:52
当我们配置好MySQL主主同步时,是可以实现主主同步,但是重启机器后就发现无法同步了 二、两个关键进程: mysql replication 中slave机器上有两个关键的进程,死一个都不行,一个是slave_sql_running,一个是Slave_IO_Running, 一个负责与主机的io通信,一个负责自己的slave mysql进程。 问题一 : Slave_io_running:No 解决: 你去主的机子上 192.168.194.154 mysql> show master status \G; 这是在 192.168.194.155 mysql > stop slave mysql > CHANGE MASTER TO MASTER_LOG_FILE = 'mysql-bin.000002' , MASTER_LOG_POS = 0 ; mysql > start slave ; 问题二、Slave_SQL_Running:No mysql> stop slave; mysql> SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE; mysql> start slave; mysql> show slave status\G 来源: CSDN 作者: dajiahao 链接: https://blog.csdn.net

MySQL 有关MHA搭建与切换的几个错误log

余生长醉 提交于 2019-12-18 04:15:41
1:masterha_check_repl 副本集方面报错 replicates is not defined in the configuration file! 具体信息如下: # /usr/local/bin/masterha_check_repl --conf=/etc/mha/app1.cnf Thu Nov 21 15:33:15 2018 - [warning] Global configuration file /etc/masterha_default.cnf not found. Skipping. Thu Nov 21 15:33:15 2018 - [info] Reading application default configuration from /etc/mha/app1.cnf.. Thu Nov 21 15:33:15 2018 - [info] Reading server configuration from /etc/mha/app1.cnf.. Thu Nov 21 15:33:15 2018 - [info] MHA::MasterMonitor version 0.56. Thu Nov 21 15:33:16 2018- [error][/usr/local/share/perl5/MHA/ServerManager.pm,

MySQL主从复制与主主复制

别说谁变了你拦得住时间么 提交于 2019-12-17 23:04:55
1、简介 MySQL作为世界上使用最为广泛的数据库之一,免费是其原因之一。但不可忽略的是它本身的功能的确很强大。随着技术的发展,在实际的生产环境中,由单台MySQL数据库服务器不能满足实际的需求。此时数据库集群就很好的解决了这个问题了。采用MySQL分布式集群,能够搭建一个高并发、负载均衡的集群服务器(这篇博客暂时不涉及)。在此之前我们必须要保证每台MySQL服务器里的数据同步。数据同步我们可以通过MySQL内部配置就可以轻松完成,主要有主从复制和主主复制。 回到顶部 2、环境说明 两台linux虚拟主机 Linux版本CentOS6.6、MySQL 5.5 ip:192.168.95.11、192.168.95.12 回到顶部 3、主从复制 回到顶部 3.1、MySQL 已经安装好,并且没有任何数据 回到顶部 3.2、配置文件 一般Linux中的MySQL配置文件都在/etc/my.cnf(windows中的配置文件为mysql.ini) log-bin=mysql-bin 开启二进制日志 注意:二进制日志必须开启,因为数据的同步实质上就是其他的MySQL数据库服务器将这个数据变更的二进制日志在本机上再执行一遍。 192.168.95.11 为主数据库服务器 192.168.95.12 为从数据库服务器 回到顶部 3.3、开始构建主从复制 第一步: 在192.168.95

MySQL架构之MHA架构实战

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