MySQL备份与恢复方案验证

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: MySQL备份与恢复方案验证http://www.bieryun.com/3351.html mysqlbackup+xtrabackup (RHEL6X86_64) 之前针对mysql的备份做了个简单测试,与大家分享下          目前关于MySQL备份工具最流行的主要有三种 1.xtrabackup  -----Percona opensource 2.mysqlbackup -----mysql Enterprise 3.mysqldump -----mysql 自带工具 三种工具都支持热备;全备和增备。


mysqlbackup+xtrabackup

(RHEL6X86_64)

之前针对mysql的备份做了个简单测试,与大家分享下

         目前关于MySQL备份工具最流行的主要有三种

1.xtrabackup  -----Percona opensource

2.mysqlbackup -----mysql Enterprise

3.mysqldump -----mysql 自带工具

三种工具都支持热备;全备和增备。

对于自带的mysqldump备份速度比较慢,备份出来的为sql语句即DDL+insert,增备利用的是mysqlbinlog,必须要开启二进制日志;

对于xtrabackup它利用的是ib_logfile和.ibd文件

对于mysqlbackup来说它可以只利用ib_logfile文件也可以利用ib_logfile和.ibd文件,主要介绍mysqlbackup和xtrabackup两种工具,如下是它们之间的一些异同点:

Feature Percona XtraBackup MySQL Enterprise Backup
(InnoDB Hot Backup)
License GPL Proprietary
Price Free Included in subscription at $5000 per Server
Open source    
Streaming and encryption formats Open source Proprietary
Supported MySQL flavors Percona Server, MySQL, MariaDB MySQL
Non-blocking InnoDB backups 1    
Blocking MyISAM backups    
Incremental backups    
Full compressed backups    
Incremental compressed backups    
Fast incremental backups 2    
Incremental backups with archived logs    
Backup locks 8    (虽然Percona写NO,但是从mysqlbackup的文档和Percona的对比,也应该是有的对于non-innodb read lock)
Encrypted backups    
Streaming backups    
Parallel local backups    
Parallel streaming backups    
Parallel compression    
Parallel encryption    
Parallel apply-log    
Parallel copy-back    
Partial backups    
Throttling 4    
Point-in-time recovery support    
Safe slave backups    
Compact backups 5    
Buffer pool state backups    
Individual tables export    
Individual partitions export    
Restoring tables to a different server 7    
Data & index file statistics    
InnoDB secondary indexes defragmentation    
rsync support to minimize lock time    
Improved FTWRL handling    
Backup history table    
Backup progress table    
Offline backups    
Tape backups with Oracle Secure Backup    

 

2. 备份工具对比

功能 Mysqlbackup xtrabackup mysqldump
全备 已验证pass 已验证pass 已验证pass
增备 已验证pass 已验证pass 未验证
单(指定)表备份/导出 已验证pass 已验证pass 已验证pass
增量恢复 已验证pass 已验证pass 未验证
全量恢复 已验证pass 已验证pass 未验证
压缩 已验证pass 已验证pass 未验证
Tape backup 已验证pass N/A N/A
Aws cloude storage 未验证 N/A N/A
Parallel backup 已验证pass 已验证pass N/A

 

注:1.tts mysqlbackup 不支持分区表的导出

2.mysqlbackup压缩也仅仅支持全备,不支持增量(除了image文件--及tape需要的格式)

3.tapebackup mysqlbackup仅支持page-size=16k  不支持8K的page-size

3. mysqlbackup和xtrabackup备份性能对比

测试环境:10.45.53.6 mysql/mysql

存储V7000

对ccv80ch库进行备份,库占用大小:14735MB

默认不使用parallel options(mysqlbackup默认1:6:1)

 

全备 Cpu Time cost File size iops

util

 

Mysqlbackup 3% 72s 6195MB 3800 ≈100%
xtrabackup 2% 94 6184MB 680 ≈100%

 

增备的前置条件为:update subs set update_date=now();
update acct set update_date=now();

每个表存在100W数据

 

增备 Cpu Time cost File size iops util
Mysqlbackup 2% 43s 286MB 3600 ≈100%
xtrabackup 2% 272s 386MB 500 ≈16%

 

数据分析:

全备其中相差的部分为其他库的frm文件,mysqlbackup include会拷贝除指定库外其他库的frm文件;

增备其中相差部分是xtrabackup生成了.delta,.meta(每个frm都对应一个),而mysqlbackup,只生成了产生数据变更的sub和acct表的.idb文件

 

 

Parallel 备份 Cpu Time cost File size iops util
Mysqlbackup 12 73s 6493MB 3900 100
xtrabackup 28 51s 6482MB 1900 100

数据分析:

mysqlbackup和xtrabackup的并发机制并不一样导致了这种结果,

mysqlbackup的并发指的是读写线程的并发,即在io足够的情况下分配多个cpu线程;

xtrabackup的并发是file level级别的通常指的就是一次批量的copy ibd文件之类;

通过xtrabackup可以提升备份性能

4. mysqlbackup和xtrabackup恢复性能对比

这里的恢复主要指的是apply-log(因为通常情况下不会使用到最后一步copy-log,而copy-log的实质就是一个copy paste的过程只有在真正数据库坏了的时候才会使用到)

Apply-log Cpu Time cost File size iops util
Mysqlbackup 3% 35s 14387MB 788 ≈100%
xtrabackup 2% 31s 14387MB 783 ≈100%

apply-log其中相差部分是

xtrabackuk生成的一些xtrabackup_binlog_info, xtrabackup_binlog_pos_innodb,

xtrabackup_checkpoints,xtrabackup_info文件

性能基本一致

5. 备份锁测试

lock/default fullbackup  increment backup single table exp/imp
mysqlbackup none none yes(--use-tts=(table metadata lock)
xtrabackup none none yes(default) use --no-lock can diable lock 参考
2.2.3文档page37 --no-lock()
mysqldump yes None yes(table-level)  但是可以禁用--single-transaction

 

经过验证(innodb)得出如上表格结论:

全量备份中除了mysqldump存在锁,mysqlbackup和mysqlbackup都不存在锁;

增量不存在锁(mysqldump是通过binlog,其他两个不是)

对于tts即单表表的导入导出,经过测试发现mysqlbackup存在锁虽然是粒度很小的read lock,但是未发现有参数可以禁用,但是对于xtrabackup和mysqldump虽然默认有锁,但是可以disable掉。

6. 建议和讨论

1.对于全量和增量备份使用mysqlbackup enterprise

2.对于单表的导入导出,数据量小建议使用mysqldump,比较方便;数据量较大例如分区表之类建议使用xtrabackup,虽然比较麻烦但是对系统性能影响更小效率更高

3.对于tape的支持oracle的SBT 是否存在这种需求,若则page-szie必须为16K

4.对于aws cloud storage的功能是否存在需求

5.对于增量的备份mysqlbackup默认2种方法一种是普通的不加参数的,另一种则是--incremental-redo-log-only

这是几年前的文章,如有问题请与指正

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
47
分享
相关文章
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
Mysql高可用架构方案
本文阐述了Mysql高可用架构方案,介绍了 主从模式,MHA模式,MMM模式,MGR模式 方案的实现方式,没有哪个方案是完美的,开发人员在选择何种方案应用到项目中也没有标准答案,合适的才是最好的。
489 3
Mysql高可用架构方案
缓存与数据库的一致性方案,Redis与Mysql一致性方案,大厂P8的终极方案(图解+秒懂+史上最全)
缓存与数据库的一致性方案,Redis与Mysql一致性方案,大厂P8的终极方案(图解+秒懂+史上最全)
使用崖山YMP 迁移 Oracle/MySQL 至YashanDB 23.2 验证测试
这篇文章是作者尚雷关于使用崖山YMP迁移Oracle/MySQL至YashanDB 23.2的验证测试分享。介绍了YMP的产品信息,包括架构、版本支持等,还详细阐述了外置库部署、YMP部署、访问YMP、数据源管理、任务管理(创建任务、迁移配置、离线迁移、校验初始化、一致性校验)及MySQL迁移的全过程。
基于SQL Server / MySQL进行百万条数据过滤优化方案
对百万级别数据进行高效过滤查询,需要综合使用索引、查询优化、表分区、统计信息和视图等技术手段。通过合理的数据库设计和查询优化,可以显著提升查询性能,确保系统的高效稳定运行。
66 9
Aurora MySQL负载突增应对策略与优化方案
通过以上策略,企业可以有效应对 Aurora MySQL 的负载突增,确保数据库在高负载情况下依然保持高性能和稳定性。这些优化方案涵盖了从架构设计到具体配置和监控的各个方面,能够全面提升数据库的响应速度和处理能力。在实际应用中,应根据具体的业务需求和负载特征,灵活调整和应用这些优化策略。
75 22
MySQL 分库分表方案
本文总结了数据库分库分表的相关概念和实践,针对单张表数据量过大及增长迅速的问题,介绍了垂直和水平切分的方式及其适用场景。文章分析了分库分表后可能面临的事务支持、多库结果集合并、跨库join等问题,并列举了几种常见的开源分库分表中间件。最后强调了不建议水平分库分表的原因,帮助读者在规划时规避潜在问题。
415 20
【MySQL进阶篇】存储引擎(MySQL体系结构、InnoDB、MyISAM、Memory区别及特点、存储引擎的选择方案)
MySQL的存储引擎是其核心组件之一,负责数据的存储、索引和检索。不同的存储引擎具有不同的功能和特性,可以根据业务需求 选择合适的引擎。本文详细介绍了MySQL体系结构、InnoDB、MyISAM、Memory区别及特点、存储引擎的选择方案。
【MySQL进阶篇】存储引擎(MySQL体系结构、InnoDB、MyISAM、Memory区别及特点、存储引擎的选择方案)
数据库数据恢复—Mysql数据库表记录丢失的数据恢复方案
Mysql数据库故障: Mysql数据库表记录丢失。 Mysql数据库故障表现: 1、Mysql数据库表中无任何数据或只有部分数据。 2、客户端无法查询到完整的信息。
Linux环境下MySQL数据库自动定时备份实践
数据库备份是确保数据安全的重要措施。在Linux环境下,实现MySQL数据库的自动定时备份可以通过多种方式完成。本文将介绍如何使用`cron`定时任务和`mysqldump`工具来实现MySQL数据库的每日自动备份。
361 3

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等