【赵渝强老师】MySQL集群解决方案

在实际的生产环境中,由单台MySQL数据库服务器不能满足实际的需求。此时数据库集群就很好的解决了这个问题了。采用MySQL分布式集群,能够搭建一个高并发、负载均衡的集群服务器。但是在搭建MySQL集群之前,必须要保证每台MySQL服务器里的数据同步。数据同步可以通过MySQL内部配置就可以轻松完成,主要有主从复制和主主复制。

视频讲解如下
【赵渝强老师】MySQL的主从复制与主主复制

一、 MySQL的主从复制集群

MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的拓展。多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升数据库的负载性能。主从复制(也称AB复制)允许将来自一个MySQL数据库服务器(主服务器)的数据复制到一个或多个MySQL数据库服务器(从服务器)。根据参数文件的配置,可以复制数据库中的所有数据库,所选数据库甚至选定的表。 MySQL的一主多从的架构如下图所示:

MySQL中复制的优点包括:

  • 横向扩展:在多个从站之间分配负载以提高性能。在此环境中,所有写入和更新都必须在主服务器上进行。但是,读取可以在一个或多个从设备上进行。该模型可以提高写入性能(因为主设备专用于更新),同时显着提高了越来越多的从设备的读取速度。
  • 数据安全性:因为数据被复制到从站,并且从站可以暂停复制过程,所以可以在从站上运行备份服务而不会破坏相应的主数据。
  • 任务分离:可以在主服务器上创建实时数据,而信息分析可以在从服务器上进行,而不会影响主服务器的性能。
  • 远程数据分发:您可以使用复制为远程站点创建数据的本地副本,而无需永久访问主服务器。

如果一主多从的话,这时主库既要负责写入数据又要负责为几个从库提供二进制日志。当从库节点比较多的时候,可能会对主库造成一定的读写压力。因此此时可以稍做调整,将二进制日志只给某一个从库。该从库再开启二进制日志并将自己的二进制日志再发给其它从库。这样架构起来性能可能要好得多,而且数据之间的延时应该也稍微要好一些。改进后的MySQL主从架构如下图所示。

二、 MySQL的主主复制集群

MySQL的主从复制可以将主节点的变更通过binlog同步到从节点上从而实现数据的同步,其本质其实就是备份的一种方式。但是主从复制只能完成从主节点到从节点的同步,并不能完成从节点到主节点的同步。换句话说,从节点如果对数据进行了变更,将无法同步到主节点上。为了解决这样的问题MySQL便提供了主主复制的功能。

MySQL主主复制也是MySQL备份的一种方式。所谓主主复制其实也就是两天MySQL服务器互为主从复制的关系。每一个台MySQL服务器既是主节点master,也是另一台MySQL服务器的从节点slave。在主主复制的架构中,任何一方所做的变更都会同步到另一方的MySQL数据库服务器中。

因此,MySQL的主主复制其实也就是主从复制的一种扩展,下图展示了MySQL主主复制的基本架构。

相关推荐
李慕婉学姐2 小时前
【开题答辩过程】以《Javaweb的火花流浪动物救助系统设计与实现》为例,不会开题答辩的可以进来看看
vue.js·spring boot·mysql
jason.zeng@15022072 小时前
my.cnf详解
运维·数据库·adb
百***62852 小时前
MySQL 常用 SQL 语句大全
数据库·sql·mysql
2501_915918412 小时前
移动端 HTTPS 抓包实战,多工具组合分析与高效排查指南
数据库·网络协议·ios·小程序·https·uni-app·iphone
百***6973 小时前
MySQL数据库(SQL分类)
数据库·sql·mysql
只因在人海中多看了你一眼3 小时前
B.40.5.1-数据库基础与核心原理
数据库
2503_928411563 小时前
11.11 Express-generator和文件上传和身份认证
数据库·node.js·express
长沙红胖子Qt3 小时前
关于 mariadb开源数据库忘记密码 的解决方法
数据库·mariadb
二进制的Liao4 小时前
【编程】脚本编写入门:从零到一的自动化之旅
数据库·python·算法·自动化·bash