面试题答案
一键面试网络方面
- 排查方向:检查主从服务器之间网络连接是否稳定,是否存在丢包、高延迟等问题。可以使用ping命令、traceroute命令等工具进行测试。
- 优化措施:如果是网络带宽不足,考虑升级网络带宽;若网络存在不稳定因素,排查网络设备(如路由器、交换机)配置,修复网络故障。
主库负载方面
- 排查方向:查看主库的系统负载情况,包括CPU使用率、内存使用率、磁盘I/O等。使用top、iostat等命令获取相关信息。查看主库的事务提交频率和日志写入速度。
- 优化措施:如果CPU负载过高,检查是否有其他高负载进程,可考虑优化数据库查询,减少不必要的计算;若内存不足,增加服务器内存;对于磁盘I/O瓶颈,可考虑更换更快的磁盘(如SSD)或优化磁盘I/O设置。优化主库的事务处理逻辑,减少大事务。
从库负载方面
- 排查方向:检查从库的系统负载,同样关注CPU、内存、磁盘I/O情况。查看从库的SQL线程和IO线程运行状态,通过
SHOW SLAVE STATUS\G
命令查看Seconds_Behind_Master值,判断复制延迟程度,以及IO_Running和SQL_Running字段是否为Yes。 - 优化措施:根据系统负载情况采取类似主库的优化策略,如调整资源配置等。若从库的SQL线程或IO线程出现问题,重启相应线程(
STOP SLAVE; START SLAVE;
),检查相关日志查看是否有报错信息并解决。
主从库版本及配置方面
- 排查方向:确认主从库的MariaDB版本是否一致,不同版本可能存在兼容性问题影响复制。检查主从库的配置参数,如
innodb_buffer_pool_size
、sync_binlog
、innodb_flush_log_at_trx_commit
等参数设置是否合理。 - 优化措施:若版本不一致且存在兼容性问题,考虑升级或降级到合适版本。根据实际情况调整配置参数,例如适当增大
innodb_buffer_pool_size
以提高缓存命中率,合理设置sync_binlog
和innodb_flush_log_at_trx_commit
在数据安全和性能间平衡。
复制过滤规则方面
- 排查方向:检查主从库是否设置了复制过滤规则(如
replicate-do-db
、replicate-ignore-db
等),复杂的过滤规则可能导致复制延迟。 - 优化措施:若过滤规则设置不合理,调整过滤规则,确保主从库数据同步的一致性和高效性。
大事务及长查询方面
- 排查方向:在主库上查找是否存在大事务或长时间运行的查询,这可能导致主库日志生成缓慢,从库同步延迟。使用
SHOW FULL PROCESSLIST
查看当前执行的查询。 - 优化措施:将大事务拆分成多个小事务执行;优化长查询,添加合适索引等。