老王是某电商平台的运维工程师,最近他遇到了一个头疼的问题——每次大促活动,数据库服务器就像春运期间的火车站,查询请求堆积如山,系统响应越来越慢,更糟的是,有一次服务器硬件故障导致整个网站瘫痪了8小时,老板的脸黑得像锅底。
这时候,技术总监拍了拍老王的肩膀:"搞个主从复制吧,让数据库有个'备胎'。"老王一脸懵:"啥是主从复制?数据库还能玩分身术?"今天咱们就来聊聊这个让数据库既"跑得快"又"摔不坏"的技术——MySQL主从复制。
数据库同步就是把一个数据库的内容"复制粘贴"到另一个地方,但这里的"复制"可比Ctrl+C/Ctrl+V复杂多了,它得保证:
常见的复制方式有三种:
基于语句的复制(SBR)
基于行的复制(RBR)
混合模式(Mixed)
第一幕:日志记录(主库篇)
第二幕:日志传输(网络篇)
第三幕:日志重放(从库篇)
主库:
1. 执行事务 → 2. 写入binlog → 3. 通知dump线程
从库:
4. IO线程请求新日志 → 5. 接收binlog存入relay-log → 6. SQL线程重放SQL
异步复制(默认模式)
半同步复制
组复制(MySQL Group Replication)
读写分离
数据备份
数据分析
异地容灾
主库配置:
log-bin=mysql-bin
CREATE USER 'repl'@'%' IDENTIFIED BY '密码'
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'
从库配置:
CHANGE MASTER TO MASTER_HOST='主库IP', MASTER_USER='repl', MASTER_PASSWORD='密码', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=位置;
START SLAVE
检查状态:
SHOW SLAVE STATUS\G
查看Slave_IO_Running和Slave_SQL_Running是否为Yes主从数据不一致怎么办?
复制延迟严重怎么处理?
主库宕机如何切换?
STOP SLAVE; RESET MASTER
虽然主从复制很强大,但它不是银弹:
MySQL主从复制就像给数据库找了个"双胞胎兄弟",一个负责冲锋陷阵(主库),一个负责保驾护航(从库),掌握好这门技术,你就能让数据库系统既扛得住"双11"的流量洪峰,又能在硬件故障时优雅切换,随着业务增长,你可能还需要考虑更高级的集群方案,但主从复制始终是每个DBA必备的看家本领。
下次见到老王时,他已经把主从复制玩得溜溜的,现在正研究着MGR集群呢,老板见了直夸:"可以啊老王,数据库都会玩影分身了!"
本文由 魏白容 于2025-07-30发表在【云服务器提供商】,文中图片由(魏白容)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/488326.html
发表评论