在实际生产中,为了解决MySQL的单点故障和提高整体服务性能,通常会采用“主从复制”技术。
例如,在复杂业务系统中,一条SQL执行导致锁表,并且执行时间较长,这期间服务不可用,严重影响用户体验。通过主从复制,主服务器负责写操作,从服务器负责读操作,实现读写分离,即使写操作时间长,也不会影响读操作。
主从复制中,主服务器(master)和从服务器(slave)之间有三个线程交互:master(binlog dump thread)、slave(I/O thread、SQL thread)。master线程负责在有数据更新时,按照binlog格式将更新事件写入主库的binlog文件。slave线程则负责请求master,获取binlog文件名称、当前数据更新位置和binlog文件副本,将更新内容同步到slave数据库中。
主从复制有不同策略进行数据同步,通常采用最终一致性,避免强一致性影响性能。搭建主从时,需要使用两台centos7系统,安装MySQL 8,通过一系列步骤完成主从安装和配置。具体操作包括检查、删除旧安装文件、下载安装源、安装MySQL、更新源、安装MySQL服务、初始化密码、创建用户、测试网络连接,以及配置主从服务器。
配置过程中,主服务器需要创建测试库、编辑my.cnf文件、重启服务、检查binlog日志启动状态、查看服务器状态、创建用户用于同步数据。从服务器同样需要创建测试库、编辑my.cnf文件、重启服务、添加主服务器信息、查看状态。配置完成后,进行主从测试,确保数据同步。
面试中可能会问及主从复制的优点、如何解决写性能瓶颈、数据延迟问题等。主从模式适用于写少读多场景,可以采用分库分表解决写性能瓶颈。对于数据延迟问题,可以选择不同复制策略,如同步复制或异步复制,以适应业务场景需求。
温馨提示:答案为网友推荐,仅供参考