MySQL基于gtid特性与xtrabackup的数据恢复 (mysql基本操作)

VPS云服务器 2025-04-18 22:44:31 浏览
基本操作

一、gtid特性介绍:

GTID(global transaction identifier)是mySQL 5.6的新特性,可以唯一的标识一个事务,由UUID+TID组成:

在主从复制中,GTID代替了classic的复制方法,不再使用binlog+pos开启复制,而是使用master_auto_postion = 1的方式自动匹配GTID断点进行复制。

要开启GTID,只需在MySQL参数文件中添加以下参数:

二、数据恢复需求:

需要将MySQL(以下简称A库)恢复到一天前的凌晨12:00左右的状态 需要具备的前提条件如下:

三、恢复操作:

在另一台MySQL(B库)上进行数据的恢复,这样可以避免影响线上业务

1. 将B库data目录移走,拷贝A库备份文件到B库

2. 开启B库,配置主从

查看data目录下xtrabackup_binlog_info文件中记录的GTID:

在B库(slave)设置@@global.gtid_purged跳过备份包含的GTID,并执行change master to指定A库为主库:

注意: xtrabackup_binlog_info中的GTID有时不止一个,设置@@global.gtid_purged时指定多个即可,以逗号隔开。

四、在A库binlog中找到恢复点并进行恢复

需要特别注意的是,在上述操作后,不要直接start slave,否则B库也又会跑到当前A库的状态

将A库binlog转换为sql语句:

找到前一天凌晨12:00左右的位置并记录GTID:

在B库开启slave并指定恢复到的位置:

当执行到了指定的GTID,SQL线程便会停止,但IO线程还会继续复制:

好啦,想看昨天凌晨的哪些数据呀?都在B库里啦~~~

附:常见问题

在设置@@global.gtid_purged时,可能会遇到报错:

这是因为这台MySQL的@@GLOBAL.GTID_EXECUTED并不是空的,执行以下reset master操作就好了:


与MySQL传统复制相比,GTID有哪些独特的复制姿势

GTID(Global Transaction ID)是MySQL5.6引入的功能,可以在集群全局范围标识事务,用于取代过去通过binlog文件偏移量定位复制位置的传统方式。 借助GTID,在发生主备切换的情况下,MySQL的其它Slave可以自动在新主上找到正确的复制位置,这大大简化了复杂复制拓扑下集群的维护,也减少了人为设置复制位置发生误操作的风险。 另外,基于GTID的复制可以忽略已经执行过的事务,减少了数据发生不一致的风险。

如何有效地提高 MySQL 的备份和恢复速度

一 加速备份1、 加了single-transaction参数 备份时 需要先flush table with read lock 这个过程中会有一个锁表的过程,如果有事务或语句正在执行,没有结束,那么备份进程会一直等待,并且阻塞别的事务,那么也会影响业务。 所以要先确认备份的时候没有大的事务在运行。 具体 single-transaction的加锁可以参考 我的博客:mysqldump备份时加single-transaction会不会加锁2 、mysqldump是单进程的,没有办法并行,但现在机器的瓶颈多是出现在IO方面,可以使用更了的IO设备加快速度3 、mysqldump时如果空间够的话,不要边压缩边备份二 加速恢复1 关闭binlog:不写入Binlog会大大的加快数据导入的速度2 innodb_flush_log_at_trx_commit=03 更好的配置建议:如果非要使用逻辑备份,可以考虑mysqldumper, mysqlpump(5.7)这两个工具去备份,这两个在备份的时候支持并行操作,mysqldumper还可以对单表进行恢复,在只需要恢复单表的情况下,恢复速度会大大加快使用物理备份 xtrabackup (open source),MEB(oracle提供,收费): 他们的备份原理是基于mysql crash recover, 备份速度 是和逻辑备份的相差不太大。 但是恢复速度却有很大的提升。 逻辑备份 备出来的是sql语句文件,恢复时需要一条一条的执行sql,所以恢复很慢。 而物理备份和还原的速度 相当于直接copy文件,所以恢复的时候性能有很大的提升并且这两个软件还支持并行,效果更好。 逻辑备份最大的优点是 备份好的文件经压缩后占用空间较小,最大缺点恢复太慢物理备份可以很快的恢复,但是备份好的文件压缩后占用空间比逻辑备份要大

mysql主从是基于什么机制

主从就是读写分离,主数据库负责写服务器,实时同步到从数据库(硬件和网络不同情况会有不同时间的延迟,阿里云主从数据库延迟几十毫秒),从数据库负责提供读取服务器,创建只读账号不能创建表和写入数据。双主集群没听过,你说的是不是Mysql的MMM架构,当一个主从挂掉了自动切换到另外一个主从服务器,当这个恢复后自动把增加的数据拷贝回来并提供服务

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐