mysql读写分离

centos7下mysql5.6的主从复制

ⅰ亾dé卋堺 提交于 2019-12-25 01:37:21
一、mysql主从复制介绍 mysql的主从复制并不是数据库磁盘上的文件直接拷贝,而是通过逻辑的binlog日志复制到要同步的服务器本地, 然后由本地的线程读取日志里面的sql语句,重新应用到mysql数据库中。 mysql数据库支持单向,双向,链式级联,环状等不同业务场景的复制,一台服务器充当主服务器master,接收来自用户的更新, 而一个或多个其他服务器充当从服务器slave,接收来自主服务器binlog文件的日志内容,解析出sql,更新到从服务器。 一主一从 (A -> B, A为主,B为从) 一主多从 (A -> B, A -> C, A为主,B与C为从) 双主双向同步 (A -> B , B -> A , A与B同为主,互相备份) 线性级联 (A -> B -> C , A与B主主互备,C为从) 环状级联 (A -> B -> C -> A, A、B、C都为主,各节点都可写入数据) 二、实现mysql主从读写分离的方案 1、通过程序实现读写分离(判断语句关键字,去连接主从数据库) 2、通过开源的软件实现读写分离(mysql-proxy,amoeba,稳定性和功能一般,不建议生产使用) 3、独立开发DAL层软件 三、mysql主从复制原理介绍 mysql主从复制是一个异步的复制过程,将一个主库复制到一个从库,master与slave之间实现整个过程是由三个线程参与完成。

mysql读写分离,中间件用mycat

旧城冷巷雨未停 提交于 2019-12-22 09:42:35
首先,数据库的读写分离,能让应用对数据库的访问压力下降,较之一台数据库服务器来读写的时候。 2台数据库服务器,1台用来执行写操作,1台用来执行读操作,这样能够分散应用对数据的压力,而且能加强数据库的数据安全性。 所以,面对比较大型的数据读取应用,对其数据库做读写分离,对性能提升是很有好处的。 为什么读写分离可以提高性能? 物理服务器增加,负荷增加 主从只负责各自的写和读,极大程度的缓解X锁和S锁争用 从库可配置myisam引擎,提升查询性能以及节约系统开销 至于你提到的“master所执行的(写)的所有语句,都会在slave被执行一遍”这个只说对一半,从库同步主库的数据和主库直接写还是有区别的,通过主库发送来的binlog恢复数据,但是,最重要区别在于主库向从库发送binlog是异步的,从库恢复数据也是异步的。 读写分离适用与读远大于写的场景,如果只有一台服务器,当select很多时,update和delete会被这些select访问中的数据堵塞,等待select结束,并发性能不高。 对于写和读比例相近的应用,应该部署双主相互复制。 主要步骤 1.mysql主从数据库设置,master用来做写操作,slave用来做读操作。 主从数据库设置,是指slave会通过mysql的主从复制功能,自动去实时去同步master上的数据变更。(单向的slave copy master) 2

基于mycat实现mysql的读写分离

﹥>﹥吖頭↗ 提交于 2019-12-22 04:56:09
需要具备以下环境 1 mysql主从复制 2 jdk安装以及环境变量配置 请参考 mysql主从复制 请参考 linux下安装mysql 以下为我的演示参考: 192.168.142.26 master- mysql 具备主从主从复制条件 192.168.142.25 slave- mysql 具备主从主从复制条件 192.168.142.27 slave- mysql 具备主从主从复制条件 192.168.142.28 mycat 安装了mysql 将压缩包 Mycat-server-1.6.7.3-release-20190828135747-linux.tar.gz 复制到 /usr/local目录下 解压 tar -zvxf Mycat-server-1.6.7.3-release-20190828135747-linux.tar.gz 查看是否安装了jdk 并配置环境变量 jps # 或者 java -version 请参考 linux(centOS7)安装jdk配置环境变量 修改myact/conf下的schema.xml 文件如下 <schema name="TESTDB" checkSQLschema="true" sqlMaxLimit="100" dataNode="dn1"> </schema> <dataNode name="dn1" dataHost=

MySQL(4):主从复制原理

杀马特。学长 韩版系。学妹 提交于 2019-12-21 16:38:19
1、主从复制概述   MySQL主从复制也可以称为MySQL主从同步,它是构建数据库高可用集群架构的基础。它通过将一台主机的数据复制到其他一台或多台主机上,并重新应用relay log中的SQL语句来实现复制功能。MySQL支持单向、双向、链式级联、异步复制,5.5版本之后加入的半同步复制,5.6版本之后的GTID复制,MySQL5.7的多源复制、并行复制、loss-less复制。 1.1 常见的几种主从架构   1)单向主从模式:Master ——> Slave   2)双向主从模式:Master <====> Master   3)级联主从模式:Master ——> Slave1 ——> Slave2   4)一主多从模式   5)多主一从模式 1.2 主从复制功能   1)实时灾备   2)读写分离   3)高可用   4)从库数据统计   5)从库数据备份   6)平滑升级 1.3 主从复制原理   主从同步过程中主服务器有一个工作线程I/O dump thread,从服务器有两个工作线程I/O thread和SQL thread。   主库把外界接收的SQL请求记录到自己的binlog日志中,从库的I/O thread去请求主库的binlog日志,并将binlog日志写到中继日志中,然后从库重做中继日志的SQL语句。主库通过I/O dump thread给从库I/O

springboot实现读写分离(基于Mybatis,mysql)

最后都变了- 提交于 2019-12-21 13:42:17
近日工作任务较轻,有空学习学习技术,遂来研究如果实现读写分离。这里用博客记录下过程,一方面可备日后查看,同时也能分享给大家(网上的资料真的大都是抄来抄去,,还不带格式的,看的真心难受)。 完整代码: https://github.com/FleyX/demo-project/tree/master/dxfl 1、背景   一个项目中数据库最基础同时也是最主流的是单机数据库,读写都在一个库中。当用户逐渐增多,单机数据库无法满足性能要求时,就会进行读写分离改造(适用于读多写少),写操作一个库,读操作多个库,通常会做一个数据库集群,开启主从备份,一主多从,以提高读取性能。当用户更多读写分离也无法满足时,就需要分布式数据库了(可能以后会学习怎么弄)。   正常情况下读写分离的实现,首先要做一个一主多从的数据库集群,同时还需要进行数据同步。这一篇记录如何用 mysql 搭建一个一主多次的配置,下一篇记录代码层面如何实现读写分离。 2、搭建一主多从数据库集群   主从备份需要多台虚拟机,我是用 wmware 完整克隆多个实例,注意直接克隆的虚拟机会导致每个数据库的 uuid 相同,需要修改为不同的 uuid。修改方法参考这个: 点击跳转 。 主库配置 主数据库(master)中新建一个用户用于从数据库(slave)读取主数据库二进制日志,sql 语句如下: mysql> CREATE USER

MySQL性能基准测试对比:5.7 VS 8.0

别来无恙 提交于 2019-12-21 04:38:31
本文由云+社区发表 作者:数据库 版权声明: 本文由腾讯云数据库产品团队整理,页面原始内容来自于severalnines英文官网,若转载请注明出处。翻译目的在于传递更多全球最新数据库领域相关信息,并不意味着腾讯云数据库产品团队赞同其观点或证实其内容的真实性。如果其他媒体、网站或其他任何形式的法律实体和个人使用,必须经过著作权人合法书面授权并自负全部法律责任。不得擅自使用腾讯云数据库团队的名义进行转载,或盗用腾讯云数据库团队名义发布信息。 原文链接:https://severalnines.com/blog/mysql-performance-benchmarking-mysql-57-vs-mysql-80 在Oracle MySQL团队的推动下,MySQL 8.0发生了巨大的变化和修改。 物理文件已更改。例如, .frm, .TRG, .TRN和 .par 不再存在。添加了大量的新特性,如通用表表达式(Common Table Expressions CTE),窗口函数(Window Functions),不可见索引( Invisible Indexes),正则表达式(regexp) -MySQL8.0现在已经完全支持Unicode,且具有多字节安全特性。数据字典也发生了变化。它现在与一个事务性数据字典合并,该字典存储有关数据库对象的信息。与以前的版本不同

Pgsql和Mysql的对比

余生颓废 提交于 2019-12-21 03:02:30
工作中用过这两个数据库,但都不是太深入,仅限于用而已,但给我留下的印象就是Pgsql更好些,因为这两个库我都遇到过数据丢失的问题,前者我通过网上方法加自己的判断有惊无险的恢复了,而后者搜索各种资料加问身边的专家都没办法。 刚网上搜了一下两者的区别,总体的感觉也是前者是最好的开源关系数据库,而后者是互联网行业应用最广泛的数据库, 可能应用等多发现的坑也多,网上相关资料也多。如果让我个人选没特殊要求情况下会选前者。 关于两个的区别可以看知乎上相关问题,回答很精彩, 其中一个如下。 一、 PostgreSQL 的稳定性极强, Innodb 等引擎在崩溃、断电之类的灾难场景下抗打击能力有了长足进步,然而很多 MySQL 用户都遇到过Server级的数据库丢失的场景——mysql系统库是MyISAM的,相比之下,PG数据库这方面要好一些。 二、任何系统都有它的性能极限,在高并发读写,负载逼近极限下,PG的性能指标仍可以维持双曲线甚至对数曲线,到顶峰之后不再下降,而 MySQL 明显出现一个波峰后下滑(5.5版本之后,在企业级版本中有个插件可以改善很多,不过需要付费)。 三、PG 多年来在 GIS 领域处于优势地位,因为它有丰富的几何类型,实际上不止几何类型,PG有大量字典、数组、bitmap 等数据类型,相比之下mysql就差很多

mysql5.7搭建主从库

人盡茶涼 提交于 2019-12-20 16:49:09
#MYSQL单节点的mysql远远不能满于生成,以防止生产服务器宕机,磁盘空间溢满等种种原因,需要有一个备用数据库, 这时候主从库是不错的选择,在是数据库集群中也起到了很大的作用 #MySQL 主从复制概念: MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库,或者特定的表。 #一般主从架构 一主一从    一主一从和一主多从是最常见的主从架构,实施起来简单并且有效,不仅可以实现HA,而且还能读写分离,进而提升集群的并发能力。    多主一从    多主一从可以将多个mysql数据库备份到一台存储性能比较好的服务器上    双主复制 双主复制,也就是互做主从复制,每个master既是master,又是另外一台服务器的slave。这样任何一方所做的变更,都会通过复制应用到另外一方的数据库中 级联复制       级联复制模式下,部分slave的数据同步不连接主节点,而是连接从节点。因为如果主节点有太多的从节点,就会损耗一部分性能用于replication,那么我们可以让3~5个从节点连接主节点,其它从节点作为二级或者三级与从节点连接,这样不仅可以缓解主节点的压力

win7上安装多个Mysql1

会有一股神秘感。 提交于 2019-12-19 13:02:10
1、安装目的 Mysql做主从同步和读写分离时,需要多个Mysql实例,平时在本地开发环境需要安装多个Mysql实例,使用多台电脑并不方便,这就要求在同一台机子上安装多个Mysql实例 2、安装Mysql 安装好Mysql,或下载免安装版本 http://download.csdn.net/detail/whzhaochao/9183163 3、解压免安装版本Mysql或复制已经安装好的Mysql 如下图所示,Mysql Server 5.5是Win7下安装的Mysql,MySQL Server 5.5 - 3307 和MySQL Server 5.5 - 3308是复制得到的两个Mysql实例 4 、修改Mysql配置文件 将3307和3308 中的mysql.ini 修改 端口及对应Mysql根目录和数据目录,以3307为例,修改如下所示: [client] port=3307 [mysqld] port=3307 #Path to installation directory. All paths are usually resolved relative to this. basedir="C:\Program Files\MySQL\MySQL Server 5.5 - 3307" #Path to the database root datadir="C:

MySQL数据库之MMM高可用群集

人盡茶涼 提交于 2019-12-18 19:56:04
MMM群集架构概述 MMM(Master-Master replication managerfor Mysql,Mysql主主复制管理器)是一套灵活的脚本程序,基于perl实现,用来对mysql replication进行监控和故障迁移,并能管理mysql Master-Master复制的配置(同一时间只有一个节点是可写的)。 MMM高可用架构说明 mmm_mond:监控进程,负责所有的监控工作,决定和处理所有节点角色活动。此脚本需要在监管机上运行。 mmm_agentd:运行在每个mysql服务器上的代理进程,完成监控的探针工作和执行简单的远端服务设置。此脚本需要在被监管机上运行。 mmm_control:一个简单的脚本,提供管理mmm_mond进程的命令。 mysql-mmm的监管端会提供多个虚拟IP(VIP),包括一个可写VIP,多个可读VIP,通过监管的管理,这些IP会绑定在可用mysql之上,当某一台mysql宕机时,监管会将VIP迁移至其他mysql。 在整个监管过程中,需要在mysql中添加相关授权用户,以便让mysql可以支持监理机的维护。授权的用户包括一个mmm_monitor用户和一个mmm_agent用户。 MMM的优缺点 优点: 高可用性,扩展性好,出现故障自动切换,对于主主同步,在同一时间只提供一台数据库写操作,保证的数据的一致性。 缺点: