5月30日 19:50
MariaDB 主从复制如何配置?复制模式怎么选?
MariaDB 主从复制的核心是:主库写 binlog,从库通过 IO 线程拉取日志,再由 SQL 线程重放。最基础的是异步复制,性能好、延迟低,但主库宕机时可能丢最后几笔事务;半同步复制会等至少一个从库确认收到日志,可靠性更好,但写入延迟会上升;GTID 复制用全局事务 ID 标记事务,主从切换和故障恢复更稳。
追问
最小可用的主从复制怎么配置?
主库要开启 server_id、log_bin 和 ROW 格式 binlog,从库设置不同 server_id,并通过 CHANGE MASTER TO 指向主库。脚本要注意版本差异,新版本会逐步转向 replica 相关命令。
异步、半同步和 GTID 有什么区别?
异步最快但可能丢数据;半同步至少确认日志到一个从库,适合更重视数据安全的业务;GTID 是事务定位方式,让补复制、换主库更清楚。
复制延迟一般从哪里排查?
先看 Seconds_Behind_Master、Relay_Log_File、Exec_Master_Log_Pos,再结合慢 SQL、从库 IO、磁盘写入和大事务判断。
主从切换最容易出什么问题?
从库还没追平就提升为主库,会导致新主缺数据;应用仍写旧主,会形成双写。切换前要确认 relay log 执行完和应用连接串更新完成。
写段 SQL
sqlCHANGE MASTER TO MASTER_HOST='10.0.0.1', MASTER_USER='repl', MASTER_PASSWORD='xxx', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=154; START SLAVE; SHOW SLAVE STATUS\G