The-PolarDB-Power-Database-Management-of-Revolutionizing (theportn网站怎么进)

文章编号:11064 更新时间:2024-03-16 分类:互联网资讯 阅读次数:

资讯内容

在上一篇文章中,我们介绍了PolarDB-X面向数据损坏,提供不同粒度的数据恢复能力,并针对行级数据误删场景,重点介绍了PolarDB-X的SQL闪回功能是如何帮助用户精确恢复被DML语句(DELETE,UPDATE)误删除的数据的,感兴趣的读者请参考《PolarDB-X如何拯救误删数据的你(一)》。本篇文章将针对PolarDB-X的备份恢复功能进行详细介绍。

ThePolarDBPowerData

面临的挑战备份恢复是数据库的保障数据安全的必备能力。对于传统的单机数据库而言,备份恢复的技术已经比较完善,主要包括如下几种:对于PolarDB-X这样的分布式数据库,如何进行数据的备份与恢复,面临了诸多挑战。

任意时间点恢复(PITR)+全局一致性任意时间点恢复(Point-in-time Recovery)是首先需要面临的挑战。PITR指依赖备份集,将数据库恢复到过去的任意时间点(秒级)的能力。传统的数据库通常依赖单机的全量+增量的物理备份方式实现PITR能力,例如MySQL的XtraBackup+Binlog等。

而对于分布式数据库,由于数据的读写涉及多个数据节点以及分布式事务的存在,在任意点恢复的过程中,除了需要保证单个节点的数据完整性外,也需要保证多个节点间的数据一致性。上图通过经典的转账测试给出了数据一致性的例子。用户的账户余额表分布在两个数据节点中,某一时刻,通过分布式事务,账户C向账户A转账了30元,账户D向账户C转账了20元。如果将数据节点恢复至该时刻,由于任意时间点恢复只能精确到秒级,因此恢复出的数据可能出现A,C账户完成了转账操作,而B,D账户还未完成的情况(如情况1),此时数据便出现了不一致,这对于用户是不可接受。

需要保证恢复出的数据,要么是转账前的状态,要么是转账完成后的状态。业务无损备份是数据库高频的运维操作,通过建议每天进行一次备份,保证数据安全。既然备份如此高频,那么数据备份的过程就要求对业务尽可能无损。如何在保证数据一致性的前提下,对数据库进行无损的备份,也是挑战之一。

扩展性分布式数据库存储的数据量是远大于单机数据库的,通常在几十甚至上百TB。面对如此巨大的数据量,如何进行快速的数据备份与恢复?随着业务数据量的增长,如何保证备份恢复的速度也能线性增长,从而备份恢复的耗时相对稳定?都是我们需要解决的问题。举个例子,当数据量10TB时,备份数据库需要1小时,如果数据规模增长到100TB,此时的备份时间仍需要保证在1小时左右,而不是增长到10小时。

方案解读本节将介绍PolarDB-X的备份恢复方案,以及其是如何解决上述的挑战的。我们回顾下单个数据节点是如何恢复至任意时间点(精确到秒级)的,然后再介绍PolarDB-X整体的备份恢复方案。

数据节点的数据恢复当前PolarDB-X2.0的数据节点(DN)采用的是在MySQL的基础上基于X-Paxos打造的分布式跨AZ高可用数据库,详情请参考:PolarDB-X存储架构之基于Paxos的最佳生产实践。由于DN是基于MySQL打造的,因此其任意时间点的恢复方案与MySQL类似。上图给出了单个数据节点的任意时间点备份恢复方式。首先通过xtrabackup对原实例进行定时的全量备份以及对binlog的增量备份。当我们需要将节点恢复到某一时间点时(精确到秒级),首先找到最近的全量备份集,进行数据恢复,然后找到从全量备份集开始导恢复时间点之间的所有binlog文件,通过MySQL的CrashRecovery的流程,将这部分binlog的event进行apply,即可将数据恢复到指定的时间点。在上述的恢复流程中,头尾两个binlog文件需要单独处理。

PolarDB-X的数据恢复回到PolarDB-X的数据恢复,依托单个DN的数据恢复能力,我们可以通过将当前实例下所有的DN和GMS都恢复

标签: 备份PolarDB数据备份

本文地址: https://yihaiquanyi.com/article/1ba69f1461ad745efd02.html

上一篇:Intel主流CPU性能大揭秘intelvtX怎么开启...
下一篇:中国独立自主研发的云原生分布式数据库极数...

发表评论