mysql主从复制--概念及架构
时间:2021-07-01 10:21:17
帮助过:24人阅读
1
mysql repication原理 前端用户的写操作,或者是数据库修改操作,都会记录到二进制日志文件,保存为事件;master通过3306端口将binlog发给slave mysql服务器,slave mysql服务器将binlog保存到relay log,读取relay log并执行一遍,将数据写入磁盘
1.1 主从示意图
1.2 一主多从、多级复制
2
mysql repication先天缺陷 mysql一个查询只能在一颗CPU上执行,
若主有多个CPU,同时执行多个事务,多个事务的往数据库中写数据的速度会比较快,但是二进制日志会在内存中缓存,一段时间后才会一条一条从缓存同步到二进制日志文件。此时,二进制日志才会同步到从上,salve从中继日志一条一条读取事件,并执行,这样,主的速度比从快很多
3 mysql repication模式异步:默认模式,master本地执行成功,即成功;不管二进制日志是否发送发送到slave半同步:在一主多从模式下,master将二进制日志发送到多个slave,但只保证一个slave接收成功,则表示半同步成功,与同步类似。mysql 5.5后支持半同步。同步:master执行一条语句,master二进制日志同步到slave中继日志中,slave读取中继日志文件并执行成功,返回信息通知master执行成功。同步模式,mysql的速度会慢很多,前端应用将会等待很久。4 mysql replication作用1、slave下线做冷备份,热备较为复杂。2、高可用,当主出现故障,从稍作处理即可上线工作3、异地容灾4、scale out:分摊读负载,一主多从,主写从读5 在mysql主从中,不使用mysql代理,如何实现master负责写,slave负责读?(以discuz为例) php模块本身并不和mysql产生交互,和mysql交互的是discuz,让discuz解决读写问题;
双主模型,可以减轻服务器读数据的压力,无法减轻写操作;并且容易出现重复记录二进制日志的情况,因此少采用。
6 主从、一主多从、双主都不能减轻一台服务器写的压力;当一台服务器不能承受写压力时:1)scale on,提高其配置2)scale out,数据拆分(垂直拆分、水平拆分)
7 mysql读写分离的实现mysql-proxyamoeba8 数据拆分cobar
9 mysql日志二进制日志 bin lpg 存放位置:数据目录下mysql-bin.xxxxxxxx
滚动:1 达到最大上线;2 flush logs;3 服务器重启
清除二进制日志命令:purge 格式:statement,基于语句,不建议使用 row,基于行,建议使用 mixed,混合 mysql-bin.index:二进制日志文件索引文件 查看当前mysql使用的二进制日志文件:show master stattus; 查看二进制日志文件内容:show binlog events in “file”;
查看二进制日志文件列表:show binary logs;
二进制日志记录事件包含的元素:timestamp,position(offset),event,server-id
二进制日志可用于即时点还原,但并不能替代数据备份?
使用二进制日志恢复数据时,并不能保证数据和以前完全一样。多颗CPU并行处理数据,但记录日志时是串行写入的。 事务日志错误日志 error log一般查询日志中继日志 relay log
慢查询日志来自为知笔记(Wiz)
mysql主从复制--概念及架构
标签:数据库 mysql style 用户