MST

星途 面试题库

面试题:MariaDB主从复制配置中常见的问题及解决方法

在MariaDB主从复制配置过程中,可能会遇到哪些常见问题,比如主从数据不一致、从库连接不上主库等,针对这些问题你一般会采取什么排查思路和解决方法?
26.1万 热度难度
数据库MariaDB

知识考点

AI 面试

面试题答案

一键面试

主从数据不一致

  1. 排查思路
    • 检查主库的二进制日志是否正常记录。查看主库的日志文件,确认数据更改操作都被正确记录在二进制日志中。
    • 查看从库的中继日志是否正确接收并应用。检查从库的中继日志文件,确认从库接收到了主库发送的日志内容。
    • 确认主从库之间的同步延迟。使用SHOW SLAVE STATUS \G命令查看Seconds_Behind_Master字段,如果该值较大,可能存在延迟导致的数据不一致。
    • 检查主从库的数据修改操作。排查是否存在直接在从库上进行写操作,或主库上存在未被复制的操作(如某些特定函数操作在主从库执行结果不同)。
  2. 解决方法
    • 若主库二进制日志记录问题,检查主库配置参数log_bin是否开启,以及日志相关路径和权限是否正确。确保主库正常记录二进制日志。
    • 对于从库中继日志问题,检查从库与主库的网络连接是否稳定,若存在网络波动可能导致日志接收不完整。可重启从库的I/O线程(STOP SLAVE IO_THREAD; START SLAVE IO_THREAD;)尝试重新接收日志。
    • 若存在同步延迟,优化主从库的性能,减少主库负载,确保从库有足够资源快速应用中继日志。也可考虑增加从库数量分担复制压力。
    • 如果在从库有写操作,停止从库写操作,重新配置从库同步。若因函数操作不一致,可尝试在主从库统一函数版本或使用确定性函数。

从库连接不上主库

  1. 排查思路
    • 网络层面检查。确认主从库之间的网络是否畅通,可通过ping命令以及检查防火墙设置,确保主库的复制端口(默认3306)对从库开放。
    • 主库配置检查。查看主库是否正确配置了二进制日志,是否设置了server-id且唯一,是否授权了从库连接主库的权限。
    • 从库配置检查。检查从库的server-id是否与主库不同且唯一,从库配置的主库连接信息(如主库IP、端口、用户名、密码)是否正确。
  2. 解决方法
    • 若网络问题,开放主库的3306端口(或自定义的复制端口)给从库所在IP段。如果是云服务器,还需检查安全组规则配置。
    • 主库配置有误时,正确配置log_bin参数开启二进制日志,确保server-id唯一且合理。重新授权从库连接主库权限,如GRANT REPLICATION SLAVE ON *.* TO'slave_user'@'slave_ip' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;
    • 从库配置问题,修正server-id,确保与主库不同且唯一。仔细核对主库连接信息,可通过CHANGE MASTER TO语句重新配置从库连接主库的参数。之后启动从库复制(START SLAVE;)并使用SHOW SLAVE STATUS \G检查连接状态。