单台设备基于63G的数据量快速完成mysql主从搭建
一、演示课题说明:
单台物理机利用xtrabackup工具在线备份63G的mysql数据,来新建slave库。
演示的目的主要是记录下在单台物理服务器上利用63G的测试库数据,然后在本机上快速新建一个slave库,大概需要多久完成。以及在新增的slave的过程中对master库锁表影响多大?
二、设备和系统环境说明:
设备环境: x86_64位最小化安装
设备和硬盘型号:
双硬盘:SSD盘-intel 单盘raid0
三、创建测试数据:
创建测试表:
创建定时器,每一秒写入数据:
提示:
创建上诉的测试数据,主要是想看下在xtrabackup备份数据时,会 对master库锁表多长时间,以及锁表是否会导致insert数据失败
此次演示中虽然每一秒都有写入数据到master库中,但是并没有看到锁表造成写入的表数据失败(可能还是每秒并发写入表的数据太少,或者是锁表的过程时间太短)
四、备份恢复数据并搭建主从复制
xtrabackup备份工具安装过程此处不再赘述,具体可以看考此链接:
https://blog.51cto.com/wujianwei/2430281
4.1xtrackup备份数据:
耗时11分钟21秒
耗时15秒
4.2恢复备份的数据到3307新实例:
耗时6分26秒
4.3授权3307新实例data目录mysql的权限:
4.4启动3307 mysql服务
4.5 master库上创建复制用户:
查看xtrabackup 备份的完binlog的位置点:
4.6 采用gtid和不采用Gtid 两种方式配置复制:
slave库上change master to:
采用上诉的方式配置主从复制,说明master库一开始没开启Gtid。
+++++++++++++++
如果master库上一开始就开启Gtid,则在配置主从复制时slave库采用下面的命令:
注意:Gtid主从复制时,master库事先一定是开启Gtid的
** 在恢复xttabackup备份的数据到新实例上并启动新实例后,要登录这个新的实例,清空下新实例上的gtid的信息,
清除新的3307实例的Gtid信息:**
mysql> reset master;
查看xtrabackup 备份的完binlog的位置点:
然后再执行如下命令:
总结:整个备份,恢复和新建slave,基于63G的数据量在18分钟就可以完成。而且xtrabackup 备份过程中锁表和解锁在1s内就完成了,在模拟的环境中看,锁表的影响还是很小的。但是还是建议在业务低峰期进行xtrabackup 备份数据以及在slave库上进行 xtrabckup备份数据,将锁表对数据库的影响降低到最小化