主从复制—上
MySQL复制
- 扩展方式: Scale Up ,Scale Out
- MySQL的扩展 读写分离 复制:每个节点都有相同的数据集
- 复制的功用: 数据分布、负载均衡读、备份、高可用和故障切换、MySQL升级测试
一主一从

可靠和可用是区别的
可靠表示系统稳定运行无故障
可用表示系统某一台故障了还能正常提供服务,目前基本上都是99.999% 一年最多允许故障5分钟
一主多从

主从复制原理

- 主节点: dump Thread:为每个Slave的I/O Thread启动一个dump线程,用于向其发送binary log events
- 从节点: I/O Thread:向Master请求二进制日志事件,并保存于中继日志中 SQL Thread:从中继日志中读取日志事件,在本地完成重放
- 跟复制功能相关的文件:
- master.info:用于保存slave连接至master时的相关信息,例如账号、密码、服务器地址等
- relay-log.info:保存在当前slave节点上已经复制的当前二进制日志和本地replay log日志的对应关系
MySQL垂直分区

没有多表查询的需求,而且表的数据较大的情况下,可以分库或分服务器操作,相当于多个人干活
MySQL水平分片(Sharding)

可以将表的数据分开存放,比如100W的数据,可以分3张表,1-40,40-80,80-100,分国家城市存放相关数据,也可以定义其他的算法来存放
对应shard中查询相关数据

数据拆分后,确保分片管理器,可靠或高可以
主从特点
- 主从复制特点: 异步复制(默认是异步,异步性能好) 主从数据不一致比较常见
- 复制架构: Master/Slave, Master/Master, 环状复制 一主多从 从服务器还可以再有从服务器 一从多主:适用于多个不同数据库
- 复制需要考虑二进制日志事件记录格式 STATEMENT(5.0之前) ROW(5.1之后,推荐) MIXED
MySQL复制模型

1、一主一从,目前推荐使用
2、一主多从,目前推荐使用
3、一主一从多从,中间的从服务器相当于中继的作用,减少主服务的压力,目前推荐使用
4、多主一从,简单来说,两个主服务使用一个从服务,如,可以根据两个主不同的数据库,共一个从服务器
5、多主,主主,可以这么用,只有一个主节点可以写,另一个主节点当备份用或读操作,高可用
6、环形复制,需要避免循环复制的问题,
一主一从
主从配置过程:参看官网https://mariadb.com/kb/en/library/setting-up-replication/https://dev.mysql.com/doc/refman/5.5/en/replication-configuration.html
主节点配置
从节点配置
复制架构中应该注意的问题
1、限制从服务器为只读
在从服务器上设置read\_only=ON 注意:此限制对拥有SUPER权限的用户均无效
阻止所有用户, 包括主服务器复制的更新
mysql> FLUSH TABLES WITH READ LOCK;
2、RESET SLAVE在从服务器清除master.info ,relay-log.info, relay log ,开始新的relay log 注意:需要先STOP SLAVE
RESET SLAVE ALL 清除所有从服务器上设置的主服务器同步信息 如:PORT, HOST, USER和 PASSWORD 等
3、sql\_slave\_skip\_counter = N 从服务器忽略几个主服务器的复制事件,global变量
4、如何保证主从复制的事务安全
参看https://mariadb.com/kb/en/library/server-system-variables/
在master节点启用参数:
sync\_binlog=1 每次写后立即同步二进制日志到磁盘,性能差
如果用到的为InnoDB存储引擎:
innodb\_flush\_log\_at\_trx\_commit=1 每次事务提交立即同步日志写磁盘,设置2性能是比较好的
innodb\_support\_xa=ON 默认值,分布式事务MariaDB10.3.0废除
sync\_master\_info=# #次事件后master.info同步到磁盘在slave节点启用服务器选项:skip\_slave\_start=ON 不自动启动slave,默认只启一次,若后续需要手工启动,改此项即可在slave节点启用参数(提供性能的):
sync\_relay\_log=# #次写后同步relay log到磁盘
sync\_relay\_log\_info=# #次事务后同步relay-log.info到磁盘
如果主节点已经运行了一段时间,且有大量数据时,如何配置并启动slave节点
通过备份恢复数据至从服务器
复制起始位置为备份时,二进制日志文件及其POS
如果要启用级联复制,需要在从服务器启用以下配置
1、若从服务器关机或在宕机,排查恢复后,从服务会自动向主服务同步时间的
验证
2、新增一台从服务,两种场景
a) 对新建的主从服务,从服务器,从头开始复制就可以了,较为干净的,新的数据库情况下
b) 若主服务运行过一段时间了,二进制日志较多的情况下,先将主服务先完全备份,从服务在进行恢复,配置主服务二进制日志位置即可
3、若主服务停了,从服务60秒重自动从连,重连次数相当于1天,这里从服务可以定义时间和次数
4、若主服务停了,使用一个从节点来当主节点,建议使用同步数据和主节点
级联复制
ABC3台主机
A>B是主从,B>C是主从关系
忽略写入数据
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 438803792@qq.com
Loading...
keepalived