mysql 之 mysql 不停机主从搭建(一主一从基于日志点复制,基于mysqldump)

本文详细介绍了在不停机情况下,如何基于MySQL进行主从复制的全过程。从搭建从库、配置主从复制,到解决复制过程中的难点问题,如确认复制起点的position,再到最终的slave状态检查,提供了一套完整的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前提:

1、历史缘由,来到这家公司的库只是单库,性能安全性稳定性都有隐患,就决定做读写分离,但是首先要基于MySQL做主从复制;

2、公司的服务不能停,只能做不停机的主从搭建;

3、mysqldump 每天备份数据;

难点:mysqldump无法直接确认备份出来的最后一个position,且不停机数据库会源源不断有dml和ddl,position是一直变的,要确认开始复制的position

           方式:和从库数据做比对,从而确认position

开始:

1、搭建好从库(版本必须要和主库一致或者高于主库)【不详说】

2、配置从库my.cnf搭建好主从复制【不详说】

2、用source命令把mysqldump备份的sql导入到从库

3、把最新的一份binlog文件拷贝到另外一个文件夹备用

【重要】找到从库中的操作最频繁的两张表,找到最后的更新插入时间

4、通过mysqlbinlog打开binlog文件,开始时间为上面找到的最后更新插入时间,找到那条SQL以及前后的几条SQL,去从库里面比对是否一致。从而确认出position

/usr/local/mariadb/bin/mysqlbinlog --no-defaults --database=qqcloud  --base64-output=decode-rows -v --start-datetime='2020-04-23 09:35:00' mysql-bin.000099 |more 

5、找到position,最后一个end_log_pos

end_log_pos 385146405 

6、停止slave

stop slave;

7、配置从库同步点position等

change master to 
       master_host='127.0.0.1',
       master_user='***',
       master_password='****',
       master_log_file='mysql-bin.000099',
       master_log_pos=385146405; 

8、开启slave

start slave;

9、观看slave状态;

show slave status;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值