前言
允许你自动将一个MYSQL服务器的数据复制到另一个服务器上的机制。
配置阶段
- 在主服务器的配置文件中设置sever-id为一个唯一的id。
- 启用二进制日志记录功能,通过设置log-bin参数设置指定日志文件名前缀
- 可以根据需要设置其他相关选项(bilog-format)
创建复制账号
(Replication slave 权限)
获取当前二进制日志位置
- 主服务器上执行Flush tables with read lock(锁表,防止获取日志位置时,数据发生改变)
- 使用show master status 【获取当前二进制文件文件名和位置】
- 执行unlock tables【解锁表】
从服务器配置
- 设置从服务器server-id为另一个唯一id
- 配置复制相关选项
初始化同步
启动从服务器
- 使用change master to 语句配置从服务器,提高主服务器的信息、以及日志文件名和位置
- 执行start slave 命令开始复制
持续复制
- 从服务器的IO线程连接主服务器,并请求发送上次已知位置之后的二进制日志
- 主服务器的dump线程响应这个请求,将相应的二进制日志内容发送给从服务器
- 从服务器的IO线程接收这些日志,并将这些日志写入本地的中继日志(relay log)
- 从服务器的SQL线程负责从中级日志读取事件,并执行。
监控与服务
- 定期检查复制的状态
- 如果发生问题及时解决
- 根据业务需求调整复制拓扑(级联复制、主-主复制)