1. 主从同步基础流程(必考)
答:
主库:事务提交后生成binlog,由Dump线程发送给从库
从库:
slave_net_timeout
控制网络超时(默认3600秒)核心文件:master.info
(连接信息)、relay-log.info
(执行进度)
2. 异步复制 vs 半同步复制(高频)
答:
异步复制:主库提交事务后立即响应客户端,不等待从库确认(高性能,可能丢数据)
半同步复制(rpl_semi_sync_master_enabled=1
):
rpl_semi_sync_master_timeout=1000
毫秒)3. 主从搭建关键步骤(实操题)
答:
-- 主库
CREATE USER 'repl'@'%' IDENTIFIED BY 'Slave@123';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%';
SHOW MASTER STATUS; -- 记录File和Position
-- 从库
CHANGE MASTER TO
MASTER_HOST='master_ip',
MASTER_USER='repl',
MASTER_PASSWORD='Slave@123',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;
START SLAVE;
4. 如何监控主从延迟(监控设计题)
答:
内置指标:
SHOW SLAVE STATUS\G
-- Seconds_Behind_Master(可能不准)
-- Read_Master_Log_Pos vs Exec_Master_Log_Pos
外部工具:
pt-heartbeat
:时间戳比对(需NTP同步)SHOW GLOBAL STATUS LIKE 'Relay_Log_Space'
5. Slave_SQL_Running=No的排查思路(高频故障)
答:
-- 查看具体错误
SHOW SLAVE STATUS\G
/*
Last_Errno: 1062
Last_Error: Duplicate entry '1001' for key 'PRIMARY'
*/
-- 临时跳过错误(生产慎用)
STOP SLAVE;
SET GLOBAL sql_slave_skip_counter = 1;
START SLAVE;
-- 根治方案:
1. 主从数据一致性校验(pt-table-checksum)
2. 手动修复冲突数据
3. 重建从库(严重不一致时)
6. 网络闪断导致主从断开如何优化?
答:
修改超时参数加速重连(默认1小时太长):
# my.cnf
slave_net_timeout = 10 -- 超时时间(秒)
master-connect-retry = 5 -- 重试间隔
配合TCP Keepalive参数优化:
net.ipv4.tcp_keepalive_time = 60
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl = 10
7. 主从延迟的六大优化方案(架构设计题)
答:
从库层面:
slave_parallel_workers=4
sync_binlog=0
, innodb_flush_log_at_trx_commit=2
架构层面:
8. GTID复制解决了哪些痛点?(进阶考点)
答:
传统复制问题:依赖binlog文件名和position,切换主库需手动对齐
GTID优势:
server_uuid:事务序号
enforce_gtid_consistency
控制事务安全9. MHA高可用方案原理(架构设计)
答:
故障转移流程:
核心优势:
10. 延迟从库的应用场景(容灾设计)
答:
CHANGE MASTER TO MASTER_DELAY = 3600; -- 延迟1小时执行
核心价值:
11. 设计一个主从同步监控系统(架构设计题)
答:
数据采集层:
SHOW SLAVE STATUS
pt-heartbeat --check
告警规则:
可视化展示:
自动化处理:
CHANGE MASTER
必须指定MASTER_AUTO_POSITION=1
(GTID场景)免费下载 | 开箱即用 | AI赋能 | 全链路SQL开发
✅ 敏捷开发团队快速迭代
✅ DBA智能运维管理
✅ 数据分析师自助查询
✅ 教学培训SQL编程
✅ 企业级数据资产管理
→ [立即下载] https://sourceforge.net/projects/dblens-for-mysql