mysql读写分离

MySQL主从复制

谁说胖子不能爱 提交于 2020-01-10 21:56:36
MySQL主从复制 案例概述 在企业网站中,后端MySQL数据库只有一台时,会有以下问题: 单点故障服务不可用 无法处理大量的并发数据请求 数据丢失 改造办法 增加MySQL数据库服务器,对数据进行备份,形成主备 确保主备MySQL数据库服务器数据是一样的 主服务器宕机了,备份服务器继续工作,数据有保障 MySQL的主从复制与读写分离是密切相关的 更高级的解决方案 通过主从复制的方式来同步数据,在通过读写分离提升数据库的并发能力 Amoeba 变形虫 案例实施 1.所有服务器关闭firewalld或者进行规则设置 2.建立时间同步环境 在主服务器上安装ntp时间同步服务器 使用yum安装ntp服务 修改ntp.conf,设置主服务器为时间同步源 在从服务器上进行时间同步 使用yum安装ntpdate并进行时间同步 在三台数据库服务器上安装mysql 编译安装mysql 优化调整 初始化数据库 启动mysql服务并进行root用户密码设置 配置mysql master主服务器 修改/etc/my.cnf配置文件,增加服务器id,配置二进制日志选项 登录mysql服务,授权所有的从服务器复制二进制日志的权限 配置两台从服务器 修改/etc/my.cnf配置文件,增加服务器id,配置二进制日志选项 登录mysql,配置主从同步 实操 实验环境:准备5台centos 7系统的虚拟机

MySQL主从复制与读写分离

只谈情不闲聊 提交于 2020-01-10 21:55:41
MySQL主从复制与读写分离 一、前言 ​ 前面我们已经对MySQL数据库的安装、命令、备份、索引、事务以及存储引擎等各个方面有了初步的理解,而今天我们将从宏观的角度来理解什么是MySQL数据库的主从复制与读写分离。 二、场景描述 ​ 在实际的生产环境中,如果对MySQL数据库的读与写都在一台服务器上进行操作,无论是在安全性,高可用性、还是高并发性等诸多方面都是无法满足的;而这就需要对MySQL数据库进行主从复制与读写分离。 ​ 我们使用一个架构图来引出MySQL数据库主从复制的原理以及其作用,请看下图: 服务器作用: MySQL主服务器:负责数据的写入; MySQL从服务器:同步主服务器的数据并进行数据的轮循读取; ​ 那么这三台具备相同服务的MySQL服务器就称为“MySQL群集”。我们可以从上图中看出,这样的安排实现数据同步的基础上,实现数据的读写分离,从而在保证数据的可靠性的同时也大大减轻了主服务器的压力。 ​ 下面我们对MySQL的主从复制和读写分离进行逐一介绍并给出配置实例。 三、MySQL主从复制原理 ​ MySQL主从复制与读写分离有着紧密的联系,可以这么说,MySQL的读写分离的实现需要基于主从复制的基础之上。 3.1MySQL支持的复制类型 基于语句的复制;——基于SQL语言命令的复制形式,使用SQL命令执行复制,效率高 基于行的复制;——复制数据库变化的内容

mysql系列(七)mysql 主从复制和mysql查询优化

为君一笑 提交于 2020-01-10 17:17:40
1. 什么是MySQL主从复制 MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的拓展。多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升数据库的负载性能。 2. mysql 的不同复制类型 2.1异步复制 MySQL复制默认是异步复制,Master将事件写入binlog,提交事务,自身并不知道slave是否接收是否处理;这样就会有一个问题,主如果crash掉了,此时主上已经提交的事务可能并没有传到从上,如果此时,强行将从提升为主,可能导致新主上的数据不完整。 缺点:不能保证所有事务都被所有slave接收。 2.2 同步复制 指当主库执行完一个事务,所有的从库都执行了该事务才返回给客户端,也就是说Master提交事务,直到事务在所有slave都已提交,才会返回客户端事务执行完毕信息; 缺点:需要等待所有从库执行完该事务才能返回,所以全同步复制的性能必然会收到严重的影响。 2.3 半同步复制( 半同步复制在5.5后才支持 ) 当Master上开启半同步复制功能时,至少有一个slave开启其功能。当Master向slave提交事务,且事务已写入relay-log中并刷新到磁盘上,slave才会告知Master已收到;若Master提交事务受到阻塞,出现等待超时,在一定时间内Master 没被告知已收到

数据读写分离 、 MySQL多实例

时光怂恿深爱的人放手 提交于 2020-01-10 15:22:29
读写分离原理 由MySQL代理面向客户提供服务 案例1:实现MySQL读写分离 1.1 问题 搭建一主一从结构 配置maxscale代理服务器 测试配置 使用4台虚拟机,如图-1所示。其中192.168.4.51和192.168.4.52,分别提供读、写服务,均衡流量,通过主从复制保持数据一致性,由MySQL代理192.168.4.57面向客户端提供服务,收到SQL写请求时,交给主服务器处理,收到SQL读请求时,交给从服务器处理。在客户机192.168.4.50测试配置。 步骤一:搭建MySQL一主一从同步结构 配置主服务器192.168.4.51 ] # vim /etc/my.cnf [mysqld] server_id=51 / / 指定服务器ID号 log - bin=master51 / / 启用binlog日志,并指定文件名前缀 . . . [root@master10 ~] # systemctl restart mysqld //重启mysqld 主服务器授权用户,并查看binlog日志信息 ] # mysql -uroot -p123456 mysql> grant all on * . * to 'repluser' @ '%' identified by '123456' ; Query OK , 0 rows affected , 1 warning ( 0

Mysql——读写分离

我们两清 提交于 2020-01-10 14:00:40
文章目录 一、MySQL读写分离原理 二、应用场景 三、读写分离示例 1、配置 2、验证 一、MySQL读写分离原理 读写分离就是只在主服务器上写,只在从服务器上读 主数据库处理事务性查询,而从数据库处理select查询 数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库 二、应用场景 在企业用户中,在大量的数据请求下,单台数据库将无法承担所有的读写操作 配置多台数据库服务器以实现读写分离 在主从复制的基础上实现读写分离 三、读写分离示例 环境: 1、3台Mysql服务器,部署好mysql服务(1台主服务器,2台从服务器) 2、3台服务器间搭建主从复制:https://blog.csdn.net/ML908/article/details/103914159 3、1台amoeba代理服务器 4、1台客户机 5、所有服务器关闭防火墙 思路: 需要有三个账户 1、从服务器找主服务器同步数据用的账户 2、amoeba访问mysql用的账户 3、客户端访问amoeba用的账户 主服务器(master) 192.168.17.157 从服务器(slave 1) 192.168.17.150 从服务器(slave 2) 192.168.17.135 代理服务器(amoeba) 192.168.17.130 客户机(client) 192.168.17.158 1、配置

Mysql——主从复制

微笑、不失礼 提交于 2020-01-10 08:20:24
文章目录 一、什么是主从复制 二、主从复制应用场景 三、MySQL主从复制的类型 四、主从复制的工作过程 五、主从复制示例 1、主服务器配置 2、从服务器(slave 1)配置 3、从服务器(slave 2)配置 4、主从复制验证 一、什么是主从复制 MySQL 主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库,或者特定的表。 二、主从复制应用场景 在企业网站中,后端MySQL数据库只有一台时,会存在以下问题: 单点故障,服务不可用 无法处理大量的并发数据请求(导致效率慢,访问超时) 数据丢失 解决方案: 增加MySQL数据库服务器,对数据进行备份,形成主备 确保主备MySQL数据库服务器数据是一样的 主服务宕机了,备份服务器继续工作,数据有保障 解决方案(高级): MySQL主从复制与读写分离是密切相关的 通过主从复制的方式来同步数据,再通过读写分离来提升数据库的并发负载能力 三、MySQL主从复制的类型 基于语句的复制(默认) 在主服务器上执行的语句,从服务器执行同样的语句 基于行的复制 把改变的内容复制到从服务器 混合类型的复制 一旦发现基于语句无法精确复制时,就会采用基于行的复制

MySQL读写分离

爱⌒轻易说出口 提交于 2020-01-09 23:51:43
MySQL读写分离 读写分离就是只在主服务器上写,只在从服务器上读 主数据库处理事务性查询,从而数据库处理select查询 数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库 案例实施 所有服务器关闭firewalld或者进行规则设置 搭建mysql主从复制环境 Amoeba服务器环境安装 配置amoeba读写分离,两个slave读负载均衡 mysql1、mysql2和mysql3中执行以下操作开放权限给Amoeba 修改amoeba配置文件 /usr/local/amoeba/conf/amoeba.xml /usr/local/amoeba/conf/dbServers.xml 启动Amoeba软件 测试读负载均衡 客户机访问数据库 在数据库db_test中创建zang,并自动同步到2台从服务器 两台从服务器数据库中关闭主从复制 分别在mysql1、mysql2、mysql3的zang表中上插入不同的数据 实操 在amoeba服务器上安装amoeba需要先安装jdk依赖包 cp jdk-6u14-linux-x64.bin /usr/local [root@amoeba abc]# cd /usr/local [root@amoeba local]# ls bin etc include lib libexec share tomcat9 boost_1_59_0

MySQL读写分离

走远了吗. 提交于 2020-01-09 23:31:52
👇链接上一篇的主从复制 加上前面的三台主从复制,在准备两台一台装amoeba一台做客户端 第一台linux安装amoeba🐟 1、关闭防火墙,复制jdk到local cp jdk-6u14-linux-x64.bin /usr/local/ ./jdk-6u14-linux-x64.bin mv jdk1.6.0_14/ /usr/local/jdk1.6 2、vim /etc/profile export JAVA_HOME=/usr/local/jdk1.6 export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin/:$PATH:$HOME/bin export AMOEBA_HOME=/usr/local/amoeba export PATH=$PATH:$AMOEBA_HOME/bin 声明:source /etc/profile 3、创建一个amoeba,并解压amoeba mkdir /usr/local/amoeba 4、设置权限 chmod -R 755 /usr/local/amoeba/ 这条命令可以查看amoeba有没有装好 /usr/local/amoeba/bin/amoeba 5

Mycat 快速入门

故事扮演 提交于 2020-01-07 07:04:31
什么是Mycat 至于什么是Mycat,可能在不同的角色下有不同的理解。对MySQL架构有过了解的话,都知道MySQL实际上是由Server层和存储引擎层组成的。所以 对于DBA来说 ,Mycat 就是 MySQL 的Server层。而 Mycat 后面连接的 MySQL Server,就好象是 MySQL 的存储引擎。因此,Mycat 本身并不存储数据,数据是在后端的 MySQL 上存储的,因此数据的可靠性 以及事务等依旧是 MySQL 保证的。 对于开发人员来说 ,Mycat基本等同于MySQL。因为完全可以使用连接MySQL的方式去连接Mycat,除了默认端口不同之外,连接方式上没有区别。所以Mycat对于开发人员来说是透明的,只不过在SQL的使用上有一些限制。 而对于架构师来说 ,Mycat 是一个数据库中间件,可以用作读写分离、分表分库以及容灾备份等。对于使用Mycat的应用来说,其隐藏了数据库的存储逻辑。让我们无需在代码上去对读写分离等存储逻辑进行控制,从而达到不修改应用代码的前提下,扩展数据库架构。 由于Mycat是国内的开源项目,有非常完善且丰富的中文文档。所以本文就不对基础概念进行赘述了,建议参考 Mycat权威指南在线版 或到 Mycat官网 中了解更多关于Mycat的内容。 什么是数据库中间件 数据库中间件,就是介于数据库与应用之间

MySQL优化和Linux的环境配置

对着背影说爱祢 提交于 2020-01-06 16:28:24
M ySQL 如何 优化 表的设计合理化 ( 符合 3NF) 添加适当索引 (index) [ 四种 : 普通索引、主键索引、唯一索引 unique 、全文索引 ] SQL 语句优化 分表技术 ( 水平分割、垂直分割 ) 读写 [ 写 : update/delete/add] 分离 存储过程 [ 模块化编程,可以提高速度 ] 对 mysql 配置优化 [ 配置最大并发数 my.ini, 调整缓存大小 ] mysql 服务器硬件升级 定时的去清除不需要的数据 , 定时进行碎片整理 (MyISAM) sql语句调优 其中使用优先--------sql语句调优>添加索引>分表分库技术>读写分离 虚拟机 虚拟机简介 虚拟机:是一台 虚拟 的计算机,是由软件虚拟出来的一台计算机。 虚拟机的安装 传送门 : https://blog.csdn.net/qq_42545206/article/details/82790699 安装 Linux操作系统 传送门 : https://blog.csdn.net/qq_39655200/article/details/81159863 Linux 目录结构 / Linux 系统的根目录 。 / etc 是系统 配置文件的存放目录 。例如: JDK 、 Mysql 、 tomcat 、 redis 配置文件等。 / usr 应用程序存放目录 。 例如 :