mysql 主从复制原理
- 一主一从
- 主主复制
- 一主多从---扩展系统读取的性能,因为读是在从库读取的;
- 多主一从---5.7开始支持
- 联级复制---
.png)

- 实时灾备,用于故障切换
- 读写分离,提供查询服务
- 备份,避免影响业务
- 主库开启binlog日志(设置log-bin参数)
- 主从server-id不同
- 从库服务器能连通主库
.png)
- 主库宕机后,数据可能丢失
- 从库只有一个sql Thread,主库写压力大,复制很可能延时
- 半同步复制---解决数据丢失的问题
- 并行复制----解决从库复制延迟的问题
- 5.5集成到mysql,以插件的形式存在,需要单独安装
- 确保事务提交后binlog至少传输到一个从库
- 不保证从库应用完这个事务的binlog
- 性能有一定的降低,响应时间会更长
- 网络异常或从库宕机,卡主主库,直到超时或从库恢复
.png)
.png)
- 社区版5.6中新增
- 并行是指从库多线程apply binlog
- 库级别并行应用binlog,同一个库数据更改还是串行的(5.7版并行复制基于事务组)
set global slave_parallel_workers=;
binlog_do_db=db1
binlog_ignore_db=db1
binlog_ignore_db=db2
replicate_do_db=db1
replicate_ignore_db=db1
replicate_do_table=db1.t1
replicate_wild_do_table=db%.%
replicate_wild_ignore_table=db1.%
log_slave_updates
B将把A的binlog记录到自己的binlog日志中
show slave status \G
- 手动处理
- 跳过复制错误:set global sql_slave_skip_counter=1
- 主从形式
- 一主一从
- 一主多从--扩展系统读取性能
- 多主一从--5.7开始支持
- 主主复制
- 联级复制
- 用途:实时灾备的故障切换,读写分离,备份
- 原理
- 主:log dump线程传binlog;
- 从
- i/o线程接受读取binlog,并写入relay log文件
- sql线程从relay log 文件中读取binlog并持久化
- 问题及解决
- 主库宕机后,数据丢失
- 半同步复制
- 主库写压力大,因从库只有一个sql 线程来持久化,复制可能延迟
- 并行复制
- 半同步复制:
- 原理
- 事务在主库写完binlog后需要从库返回一个已接受,才放回给客户端;
- 5.5集成到mysql,以插件的形式存在,需要单独安装
- 确保事务提交后binlog至少传输到一个从库
- 不保证从库应用完成这个事务的binlog
- 性能有一定的降低
- 网络异常或从库宕机,卡主库,直到超时或从库恢复
- 并行复制
- 原理:从库多线程apply binlog
- 在社区5.6中新增
- 库级别并行应用binlog,同一个库数据更改还是串行的
- 5.7版本并行复制基于事务组
- 部分数据复制
- 联级复制(常用)
- A->B->C
- B中添加参数log_slave_updates
- B将把A的binlog记录到自己的binlog日志中
- 复制的监控
- show slave status
- 复制出错处理
- 常见:1062(主键冲突),1032(记录不存在)
- 解决:
- 手动处理
- 跳过复制错误:set global sql_slave_skip_counter=1
- mysql主从复制是mysql高可用性,高性能(负载均衡)的基础
- 简单,灵活,部署方式多样,可以根据不同业务场景部署不同复制结构
- 复制过程中应该时刻监控复制状态,复制出错或延时可能给系统造成影响
- mysql主从复制目前也存在一些问题,可以根据需要部署复制增强功能
mysql 主从复制原理的更多相关文章
- [转]MySQL主从复制原理介绍
MySQL主从复制原理介绍 一.复制的原理 MySQL 复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新.删除等等).每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新,以 ...
- Mysql主从复制原理及配置
Mysql主从复制原理及配置 1.复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其 ...
- MySQL主从复制--原理
简介 Mysql内建的复制功能是构建大型,高性能应用程序的基础.将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一 ...
- mysql 主从复制原理(转)
本文转自https://blog.csdn.net/php_younger/article/details/59673879 mysql 主从复制原理 主从形式 mysql主从复制 灵活 一主一从 ...
- 如何实现 MySQL 的读写分离?MySQL 主从复制原理的是啥?如何解决 MySQL 主从同步的延时问题?
如何实现 MySQL 的读写分离? 其实很简单,就是基于主从复制架构,简单来说,就搞一个主库,挂多个从库,然后我们就单单只是写主库,然后主库会自动把数据给同步到从库上去. MySQL 主从复制原理的是 ...
- Mysql主从复制原理及搭建
## Mysql主从复制原理 主从复制是指一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服务器之中.对于多级复制,数据库服务器即可充当主机,也可充当从 ...
- mysql主从复制原理及实践
Mysql主从复制原理及实践 mysql主从框架 MySQL主从架构是MySQL集群中最基本也是最常用的一种架构部署,能够满足很多业务需求,常见的有一主一从或者一主多从.可以防止单一主机的 ...
- 深度探索MySQL主从复制原理
深度探索MySQL主从复制原理 一 .概要 MySQL Replication (MySQL 主从复制) 是什么? 为什么要主从复制以及它的实现原理是什么? 1.1 MySQL 主从复制概念 MySQ ...
- Mysql主从复制原理及同步延迟问题
本文转载自:Mysql主从复制原理及同步延迟问题 主从复制解决的问题 数据分布:通过复制将数据分布到不同地理位置 负载均衡:读写分离以及将读负载到多台从库 备份:可作为实时备份 高可用性:利用主主复制 ...
随机推荐
- Linux多人群聊系统(简单多线程服务器)
一:要求 1.通过一个服务器实现最多5个客户之间的信息群发. 2.服务器显示客户的登录与退出: 3.客户连接后首先发送客户名称,之后发送群聊信息: 4.客户输入bye代表退出,在线客户能显示其他客户的 ...
- 查看oracle当前session
怎样查看oracle当前的连接数呢?只需要用下面的SQL语句查询一下就可以了. #查看当前不为空的连接select * from v$session where username is not n ...
- map的应用
1.map最基本的构造函数: map<string , int >mapstring; map<int ,string >mapint; map&l ...
- django1.9.6 使用 DjangoUeditor (python3.5)
DjangoUeditor https://github.com/zhangfisher/DjangoUeditor 1 DjangoUeditor 安装 pip install DjangoUedi ...
- ABBYY FineReader自定义工作区的方法
ABBYY FineReader作为一款OCR图文识别软件,界面具有用户友好性和直观性,以结果为导向,可以在不进行任何其他培训的情况下使用该程序,新用户可以迅速掌握主要功能,轻松自定义程序的界面,接下 ...
- phoenix与spark整合
目的是将phoenix做存储,spark做计算层.这样就结合了phoenix查询速度快和spark计算速度快的优点.在这里将Phoenix的表作为spark的RDD或者DataFrames来操作,并且 ...
- wordpress google字体和gravatar头像不显示问题处理
wordpress 安装好后,发现网站打开很慢. 查看原因后发现是因为总所周知的原因:google字体无法加载.gravatar头像无法加载. 在网上查了下,说是要把google字体加载连接修改下,和 ...
- 【AT91SAM3S】建立基于SAM3S库的工程并点亮LED
习惯了ST的库,猛然间看到ATMEL的库,有点无从下手.这几天参考这示例工程,终于建立了一个使用ATMEl库的工程. 软件库版本: 软件平台:MDK470A 硬件平台:英蓓特 EB-SAM3S MCU ...
- 主从Reactor多线程模型
Reactor 单线程--多线程--主从多线程
- [家里蹲大学数学杂志]第237期Euler公式的美
1 Euler 公式 $e^{i\pi}+1=0$ (1) 它把 a. $e:$ 自然对数的底 $\approx 2. 718281828459$ (数分) b. $i$: 虚数单位 $=\sqr ...