面试题答案
一键面试故障恢复流程
- 确认新主库:当主库故障,从库提升为主库后,首先要确保新主库能正常对外提供服务。检查新主库的配置,确保相关服务已启动且监听正常。
- 配置新主库半同步参数:
- 登录新主库的MariaDB,执行以下命令开启半同步复制插件:
INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
SET GLOBAL rpl_semi_sync_master_enabled = 1;
- 设置半同步复制的超时时间(可根据实际网络情况调整,例如设置为10000毫秒):
SET GLOBAL rpl_semi_sync_master_timeout = 10000;
- 重启主库相关服务使配置生效(部分情况需要)。
3. 配置从库: - 登录原从库(现可能有多个从库),执行以下命令配置指向新主库:
CHANGE MASTER TO
MASTER_HOST='新主库IP',
MASTER_USER='复制账号',
MASTER_PASSWORD='复制账号密码',
MASTER_LOG_FILE='新主库二进制日志文件名',
MASTER_LOG_POS=新主库二进制日志文件位置;
- 开启半同步复制插件:
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
SET GLOBAL rpl_semi_sync_slave_enabled = 1;
- 重启从库相关服务使配置生效(部分情况需要),然后启动从库复制:
START SLAVE;
- 检查复制状态:
- 在新主库上执行
SHOW STATUS LIKE 'Rpl_semi_sync_master_status';
,确保半同步复制状态为ON
。 - 在从库上执行
SHOW STATUS LIKE 'Rpl_semi_sync_slave_status';
,确保半同步复制状态为ON
。同时执行SHOW SLAVE STATUS \G
,检查Slave_IO_Running
和Slave_SQL_Running
都为Yes
,且Seconds_Behind_Master
的值为0或接近0,表明复制正常。
- 在新主库上执行
优化策略
- 网络优化:
- 确保主从库之间网络稳定,减少网络延迟和丢包。可以通过优化网络拓扑结构,增加带宽等方式实现。
- 定期进行网络测试,监控网络质量,及时发现并处理网络问题。
- 配置优化:
- 根据服务器硬件资源和业务负载,合理调整半同步复制的超时时间。如果超时时间过短,可能导致不必要的主库事务回滚;如果过长,可能影响数据一致性。
- 适当增加主从库的缓存大小,例如调整
innodb_buffer_pool_size
等参数,提高数据读取和写入的效率,减少复制延迟。
- 监控与预警:
- 建立完善的监控系统,实时监控主从库的复制状态、网络状态、系统资源使用情况等。例如使用
Zabbix
、Prometheus
等工具。 - 设置合理的预警机制,当复制出现延迟、半同步状态异常等情况时,及时通知相关人员进行处理,避免问题扩大。
- 建立完善的监控系统,实时监控主从库的复制状态、网络状态、系统资源使用情况等。例如使用
- 数据备份与恢复演练:
- 定期进行数据备份,包括全量备份和增量备份,确保在发生故障时能够快速恢复数据。
- 定期进行故障恢复演练,模拟主库故障场景,验证上述故障恢复流程的有效性,同时提高运维人员的应急处理能力。