面试题答案
一键面试策略和技术方法
- 基于日志对比
- 方法:通过对比主库和从库的二进制日志(binlog),找出差异并进行修复。常用工具如MHA(Master High Availability)中的自动故障转移脚本,可在故障切换后通过对比主从日志进行数据修复。
- 优点:能精准定位数据差异,修复准确性高,适用于大多数数据不一致场景。
- 缺点:需要熟悉MySQL日志格式和原理,操作复杂,对比日志可能消耗较多资源,尤其在大数据量情况下。
- 使用pt - table - checksum工具
- 方法:pt - table - checksum是Percona Toolkit中的工具,它在主库上生成数据的校验和,然后在从库上进行对比,发现不一致时给出提示和修复建议。
- 优点:操作相对简单,自动化程度较高,能快速定位差异,支持多种校验算法。
- 缺点:校验过程会对数据库性能产生一定影响,尤其是大数据表,可能需要在业务低峰期执行。
- 双活或多活架构中的同步机制
- 方法:在双活或多活架构中,采用同步复制协议,如Galera Cluster的同步多主架构,确保每个节点的数据实时同步。
- 优点:数据一致性程度高,故障切换时数据丢失风险低,系统整体可用性强。
- 缺点:架构复杂度高,部署和维护成本大,对网络要求高,网络延迟可能影响性能。
- 数据重新同步
- 方法:停止从库复制,清空从库数据,重新从主库进行全量数据复制,之后再开启复制。
- 优点:简单直接,能彻底解决数据不一致问题,适用于数据不一致情况较为严重且从库数据可舍弃的场景。
- 缺点:全量复制过程可能消耗大量时间和资源,影响业务正常运行,尤其对于大数据量的数据库。