主从复制工作流程
阶段二:数据同步阶段工作流程
- 在slave初次连接master后,复制master中的所有数据到slave
- 将slave的数据库状态更新成master当前的数据状态
步骤一:请求同步数据
步骤二:创建RDB同步数据
步骤三:恢复RDB同步数据
步骤四:请求部分同步数据
步骤五:恢复部分同步数据
至此,数据同步工作完成
状态:
slave:
具有master的全部数据,包含RDB过程接收的数据
master:
保存slave当前数据同步的位置
总体:完成了数据的克隆
数据同步阶段master的说明
- 如果master数据量较大,数据同步阶段应避开流量高峰期,避免造成master阻塞,影响业务运行
- 复制缓冲区的大小设定不合理,会导致数据溢出,如进行全量复制周期太长,进行部分复制时发现数据已经存在丢失的情况,必须进行第二次全量复制,致使slave陷入死循环
修改master中设置缓冲区的大小:
repl-backlog-size 1mb(默认是1兆) - master单机内存占用主机内存的比例不应过大,建议使用50%-70%的内存,留下30%-50%的内存用于执行bgsave命令和创建复制缓冲区.
数据同步阶段slave的说明
- 为避免slave进行全量复制,部分复制时服务器响应阻塞或数据不同步,建议关闭此期间的对外服务.