什么是mysql主从同步?
1 | 当master(主)库的数据发生变化的时候,变化会实时的同步到slave(从)库。 |
主从同步有什么好处?
1 | 水平扩展数据库的负载能力。 |
主从环境涉及到的文件-梳理
1 | Master主库: |
主从工作流程
1 | 由从库发起数据同步请求,拿着master.info中的file和position号去连接主库。主库拿着从库的file名和position号去比对主库自己的bin-log文件, 把最新的一部分文件通过主库的dump线程发送给从库的io线程,从库的io线程把接收的数据记录在relay-log中,从库将relay-log中的文件通过sql线程写入到数据库中,并在relay-log.info文件中记录已经运行到哪一个relaylog事件的哪个位置了 |
MySQL架构演变
1 | <1>安全角度 |
主从同步-实现
1 | 假设server主库已经运行了很长时间,并且数据很重要,如何做从? |
主库my.cnf
1 | cat /etc/my.cnf |
从库my.cnf
1 | cat /etc/my.cnf |
主库操作
- 查看主库当前binlog文件和position号码(稍后从库需要)
1 | mysql> show master status; |
- 主库备份
1 | 数据量≤50GB,建议使用mysqldump ;数据量>50GB建议使用xtrabackup |
1 | xtrabackup全备并压缩-参考: |
- 主库创建复制用户
1 | grant replication slave on *.* to repl@'10.0.0.%' identified by '123'; |
从库操作
- 从库恢复全量数据
1 | /etc/init.d/mysqld stop #停库 |
- CHANGE MASTER TO
1 | 进入mysql并执行如下指令 |
- 启动slave并验证
1 | 接着在数据库执行 |
- 本文作者: GaryWu
- 本文链接: https://garywu520.github.io/2018/01/31/MySQL主从原理与部署/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!