mysql读写分离

从小型网站到超大规模网站的MySQL参考架构

本小妞迷上赌 提交于 2020-02-05 04:47:24
Oracle发布《 面向大规模可伸缩网站基础设施的MySQL参考架构 》白皮书,针对将MySQL用作数据存储的不同类型和不同规模的网站给出了推荐的拓扑结构。 根据分别提供4类服务——用户和会话管理、电子商务、分析类应用 (多结构数据)和CMS(元数据)——的网站的规模和可用性要求(如下表所示),这份白皮书给出了4个参考架构。 请注意,这里给出的指导方针只是基本建议,实际应用中需要根据读写模式、负载平衡和所用的缓存机制等因素进行调整。 小型(Small)网站参考架构 这一参考架构可用于上述4类网站的所有小型实现。可以使用MySQL Replication来制作数据的副本以支持备份和分析。 中型(Medium)网站参考架构 在这种情况下,推荐针对不同类型的活动选择独立的基础设施,考虑每个MySQL服务器最多支持8个应用服务器,如果因伸缩性需求应用服务器数量增加,则添加更多的MySQL从服务器。 为满足会话管理网站和电子商务网站的高可用性要求,可以使用 Linux心跳(Heartbeat) 和半同步复制。CMS网站通常对读操作的向外扩展有更高要求,假定每个MySQL从服务器最多可以处理3000个并发用户,白皮书建议为每个MySQL主服务器添加20-30个从服务器。CMS系统可将数据保存在一个SAN中,或者保存在连接到该服务器的分布式设备中。

29_MySQL读写分离 MySQL多实例 、MySQL性能调优

天大地大妈咪最大 提交于 2020-02-04 02:18:18
版本:5.7.28 mysql51:192.168.4.51 主 mysql52:192.168.4.52 从 mysql50:192.168.4.50 客户机 1.实现MySQL读写分离 搭建一主一从结构 配置maxscale代理服务器 测试分离配置 1.1 搭建一主一从结构 192.168.4.51 主 192.168.4.52 从 测试OK 1.2 实现mysql读写分离 1.2.1 配置数据读写分离服务器:192.168.4.50 ]# wget https://downloads.mariadb.com/MaxScale/2.1.2/rhel/7/x86_64/maxscale-2.1.2-1.rhel.7.x86_64.rpm ]# yum -y install maxscale-2.1.2-1.rhel.7.x86_64.rpm 1.2.2 配置maxscale ]# vim /etc/maxscale.cnf [maxscale] threads=auto //运行的线程的数量 [server1] //定义数据库服务器 type=server address=192.168.4.51 //数据库服务器的ip port=3306 protocol=MySQLBackend //后端数据库 [server2] type=server address=192.168.4

mysql 复制基础

坚强是说给别人听的谎言 提交于 2020-02-03 00:41:43
mysql 复制基础 一、引入 mysql 服务器性能不够、压力大,如何解决? 一种、纵向扩展,为服务器升级配置(cpu、内存、磁盘) 另一种 则是水平扩展,添加多台服务器共同工作,mysql复制就是解决多台mysql服务器协同工作问题 mysql复制的其他功用 数据分布 负载均衡读 备份 高可用和故障切换 MySQL升级测试 mysql 复制的特点 每个节点都有相同的数据集 向外扩展 二进制日志 单向 主从复制特点: 异步复制 主从数据不一致比较常见 二、MySQL复制的模型 一主一从 读写分离 一主多从 ​ 为了解决服务读的压力,但是无法解决写压力大的问题,由于复制(同步数据)过程是串行的,过多的从服务器,会造成主服务器的进程压力大 级联复制 ​ 解决了一主多从的主服务器压力,但是仍然无法解决写压力大的问题 主主复制 ​ 可以同时写,但是如果两个服务器同时写入同一个主键的记录时,会产生冲突 ;实际通常通过调度器用来做一主一从,相比较传统的一主一从,当主从发生故障切换时,恢复的时间更短 环状复制 ​ 主主的变形,一个数据更新了数据,会一级一级的更新,直到所有的数据库都更新完 多主一从 ​ 实际上是从节点上跑了两个没有业务逻辑关系的数据库,两个主节点上各有一个,本质上仍然是一主一从,从节点上运行mysql的多实例可以达到相同效果。 生产极少这样用 三、mysql

MySQL主

梦想与她 提交于 2020-01-31 17:42:26
1)、什么是MySQL主从复制 MySQL主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个MySQL数据库从节点。MySQL默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库。 2)、MySQL主从复制作用 一、数据热备 作为备数据库,当主数据库服务器发生故障后,可切换到从数据库继续工作,避免数据丢失。 二、读写分离 可支持MySQL数据库服务器支持更大的并发。数据读写操作可分配在不同的服务器间进行。如操作报表中尤其重要,由于部分报表SQL语句非常的慢,会导致锁表,影响前台服务。使用主从复制,前台使用master,负责写,报表使用slave,负责读,那么报表SQL将不会造成前台锁表,保证了前台正常运行。 三、架构扩展 随着业务量越来越大,I/O访问频率过高,单机可能无法满足。此时做多库的存储,如一主多从方式,以降低磁盘I/O访问,提高单个机器的I/O性能。 MySQL主从复制原理 MySQL数据复制的基础是二进制日志文件(binary log file)。一台MySQL数据库一旦启用二进制日志后,其作为master节点,数据库中所有操作都会以“事件”的方式记录在二进制日志中,其他数据库作为slave通过一个I/O线程与主服务器保持通信

你在家快疯了?20 道数据库面试解析学起来

人走茶凉 提交于 2020-01-30 15:49:37
面试的时候,发现数据库方面,忘得一塌糊涂,抽时间整理了一些数据库方面的题。 事务四大特性(ACID)原子性、一致性、隔离性、持久性? 事务的并发?事务隔离级别,每个级别会引发什么问题,MySQL 默认是哪个级别? MySQL 常见的三种存储引擎(InnoDB、MyISAM、MEMORY)的区别? MySQL 的 MyISAM 与 InnoDB 两种存储引擎在,事务、锁级别,各自的适用场景? 查询语句不同元素(where、jion、limit、group by、having 等等)执行先后顺序? 什么是临时表,临时表什么时候删除? MySQL B+Tree 索引和 Hash 索引的区别? 聚集索引和非聚集索引区别? 有哪些锁(乐观锁悲观锁),select 时怎么加排它锁? 非关系型数据库和关系型数据库区别,优势比较? 数据库三范式,根据某个场景设计数据表? 数据库的读写分离、主从复制,主从复制分析的 7 个问题? 使用 explain 优化 sql 和索引? MySQL 慢查询怎么解决? 什么是 内连接、外连接、交叉连接、笛卡尔积等? mysql 都有什么锁,死锁判定原理和具体场景,死锁怎么解决? varchar 和 char 的使用场景? mysql 高并发环境解决方案? 数据库崩溃时事务的恢复机制(REDO 日志和 UNDO 日志)? 事务四大特性(ACID)原子性、一致性

MySQL引擎

我与影子孤独终老i 提交于 2020-01-30 07:40:13
MySQL数 据库引擎取决于MySQL在安装的时候是如何被编译的。要添加一个新的引擎,就必须重新编译MYSQL。在缺省情况下,MYSQL支持三个引擎:ISAM、MYISAM和HEAP。另外两种类型INNODB和BERKLEY(BDB),也常常可以使用。如果技术高超,还可以使用MySQL++ API自己做一个引擎。下面介绍几种数据库引擎: ISAM :ISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到 数据库被查询的次数要远大于更新的次数。因此, ISAM执行读取操作的速度很快,而且不占用大量的内存和存储资源 。 ISAM的两个主要不足之处在于,它不 支持事务处理,也不能够容错 :如果你的硬盘崩溃了,那么数据文件就无法恢复了。如果你正在把ISAM用在关键任务应用程序里,那就必须经常备份你所有的实 时数据,通过其复制特性,MYSQL能够支持这样的备份应用程序。 MyISAM :MyISAM是MySQL的ISAM扩展格式和缺省的数据库引擎。 除了提供ISAM里所没有的索引和字段管理的大量功能,MyISAM还使用一种表格锁定的机制,来优化多个并发的读写操作,其代价是你需要经常运行OPTIMIZE TABLE命令,来恢复被更新机制所浪费的空间 。MyISAM还有一些有用的扩展,例如用来修复数据库文件的MyISAMCHK工具和用来恢复浪费空间的

MySQL主从复制认识

青春壹個敷衍的年華 提交于 2020-01-29 15:06:11
MySQL主从复制作用 1)、什么是MySQL主从复制 MySQL主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个MySQL数据库从节点。MySQL默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库。 2)、MySQL主从复制作用 一、数据热备 作为备数据库,当主数据库服务器发生故障后,可切换到从数据库继续工作,避免数据丢失。 二、读写分离 可支持MySQL数据库服务器支持更大的并发。数据读写操作可分配在不同的服务器间进行。如操作报表中尤其重要,由于部分报表SQL语句非常的慢,会导致锁表,影响前台服务。使用主从复制,前台使用master,负责写,报表使用slave,负责读,那么报表SQL将不会造成前台锁表,保证了前台正常运行。 三、架构扩展 随着业务量越来越大,I/O访问频率过高,单机可能无法满足。此时做多库的存储,如一主多从方式,以降低磁盘I/O访问,提高单个机器的I/O性能。 MySQL主从复制原理 MySQL数据复制的基础是二进制日志文件(binary log file)。一台MySQL数据库一旦启用二进制日志后,其作为master节点,数据库中所有操作都会以“事件”的方式记录在二进制日志中,其他数据库作为slave通过一个I/O线程与主服务器保持通信

Mysql:主从同步复制

♀尐吖头ヾ 提交于 2020-01-29 00:50:05
文章目录 一:应用场景 主从的作用: 二:MySQL主从备份原理 Mysql主从复制部署环境: 三:主从同步步骤 1:主服务器mysql-master 的配置: <3>手工编译mysql(这里编译mysql5.7版本) 2:从服务器mysql-slave1 的配置: 3:从服务器mysql-slave2 的配置: 4:同步配置完成,主从同步复制效果验证 一:应用场景 在企业网站中,后端Mysql数据库只有一台时,会有以下问题: <1>:单点故障,mysql数据库一旦宕机 ,服务不可用 <2>:无法处理大量的并发数据请求 <3>:数据一旦丢失 会是一大事故 为了防止这类事故的发生,有了更安全有效的改造办法----设置主从同步。 主从的作用: <1>:增加MySQL数据库服务器,对数据进行备份,形成主备。确保主备MySQL数据库服务器数据是一样的,主服务器宕机了,备份服务器继续工作,数据有保障。 <2>:通过主从复制的方式来同步数据,再通过读写分离来提升数据库的并发负载能力 二:MySQL主从备份原理 master 提供binlog二进制日志 slave    通过 I/O线程从master拿取binlog,并复制到slave的中继日志中 slave    通过 SQL线程从slave的中继日志中读取binlog ,然后解析到slave中 注意:主和从数据库版本必须是一样

Mysql -- 读写分离

社会主义新天地 提交于 2020-01-28 20:02:28
文章目录 一、Mysql 读写分离原理 二、关于 Amoeba 三、配置实例 第一步:配置 Amoeba 服务器 第二步:在三台 mysql 服务器上添加权限,开放给 amoeba 访问(即三台mysql允许amoeba对它们进行访问) 第三步:在 amoeba 服务器上配置读写分离功能 第四步:客户端测试 四、总结 一、Mysql 读写分离原理 读写分离就是只在主服务器上写,只在从服务上读; 主数据库处理事务性查询,从数据库处理 select 查询; 数据库复制被用来把事务性查询导致的变更同步到集群中的从数据库 二、关于 Amoeba (1)Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy。它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送到特定的数据库上执行。基于此可以实现负载均衡、读写分离、高可用性等需求。 (2)Amoeba相当于一个SQL请求的路由器,目的是为负载均衡、读写分离、高可用性提供机制,而不是完全实现它们。需要结合使用MySQL的 Replication等机制来实现副本同步等功能。 三、配置实例 环境说明: 准备三台 Mysql服务器(一台为主服务器,其余两台为从服务器); 一台 Amoeba,用来实现读写分离,写的操作交给主服务器,读的操作发给两台从服务器; 实验验证:在客户机上执行写的操作,在主

MySQL Cluster 7.3.3 官方版本下载

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-28 15:16:56
MySQL Cluster 是 MySQL 适合于分布式计算环境的高实用、高冗余版本。它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器。在MyQL 5.0及以上的二进制版本中、以及与最新的Linux版本兼容的RPM中提供了该存储引擎。 目前官方已经发布MySQL Cluster 7.3.3,远哥将下载地址发布给大家,省得大家去找了: Red Hat Enterprise Linux 6 / Oracle Linux 6 / CentOS Linux 6(64位) http://cdn.mysql.com/Downloads/MySQL-Cluster-7.3/MySQL-Cluster-gpl-7.3.3-1.el6.x86_64.rpm-bundle.tar Windows(32位和64位) http://cdn.mysql.com/Downloads/MySQL-Cluster-7.3/mysql-cluster-gpl-7.3.3-win32.msi http://cdn.mysql.com/Downloads/MySQL-Cluster-7.3/mysql-cluster-gpl-7.3.3-winx64.msi MySQL Cluster 是一种技术,该技术允许在无共享的系统中部署“内存中”数据库的 Cluster