YashanDB V23.4 LTS全库闪回新特性解读

打印 上一主题 下一主题

主题 1718|帖子 1718|积分 5164

柏杨 YashanDB存储研发技术专家
本文重要对YashanDB V23.4 LTS新版本的全库闪回新特性进行原理探讨与技术解析。
证券交易体系突发数据异常,三甲医院电子病历体系遭遇误操纵...在这些极端故障场景中,传统数据库恢复方案正面临前所未有的挑战。传统数据库恢复技术(Point-In-Time-Recovery, PITR)通过全量数据库备份进行整库恢复,必要耗费数小时进行全量备份回滚与日志解析,且恢复效率受限于数据库大小。导致难以快速响应紧急故障,错失降低损失的黄金时间,造成交易停摆、医疗数据混乱等严重后果。YashanDB V23.4 LTS新版本中重磅推出全库闪回特性,基于闪回快照点技术及并行异步刷盘技术,开启闪回对业务性能影响可降低至8%;并通过闪回日志快速过滤技术,可高效解决传统闪回技术资源消耗大、恢复时间长的问题。
PITR和全库闪回技术的对比

PITR与全库闪回的重要区别在于对数据库的回退处理方式,前者是整库回退,后者能实现精准回退。
PITR技术

传统的PITR数据库恢复技术重要是通过备份集对数据库进行全量数据回退,再基于redo进行回放重演到目的时间点。

图1  PITR技术工作原理架构
如图1所示,当T3时刻数据库出现了故障必要回退到T2时刻消除影响,此时便必要使用T1时刻的备份集将数据库整体回退到T1时刻,再回放T1到T2之间的redo实现恢复。
PITR的恢复时间通常与数据库的量级以及回放的redo量相关,通常数据库的量级都非常大,这就导致PITR非常耗时。
全库闪回技术

与PITR基于备份集的整库回退差别,全库闪回只追踪记录修改页面的变化并产生闪回日志,通过闪回日志对数据库进行精准的局部回退。

图2  全库闪回技术工作原理架构
如图2所示,同样是从T3恢复到T2,全库闪回会选择将数据库回退到距离T2最近的一个闪回快照点,再从该点回放redo实现恢复。
假设闪回快照点到T3之间修改了三个页面,则会记录这三个页面修改之前的内容并产生闪回日志,后续将数据库从T3回退到闪回快照点时只必要应用闪回日志即可,避免对数据库未产生变化的内容进行无效的回退。
**全库闪回的恢复时间与数据库量级无关,只与回退目的点的业务量有关。
**
下面将从四个方面对比全库闪回和PITR两项技术。

全库闪回应用场景

全库闪回的应用场景十分广泛,下面通过两个具体业务场景的痛点问题,对比分析全库闪回相较于PITR在解决问题上的优势。
场景一:数据故障场景处理

在数据库正常运行过程中,碰到一些误操纵等环境造成了部分数据错误,必要在最短的时间内进行恢复,淘汰损失,降低影响。
使用PITR技术必要基于备份集进行恢复,在数据库量级大的环境下,应用备份集及其耗时,恢复时间长,因为局部错误将整个数据库回退恢复,代价太高,得不偿失。
使用全库闪回基于闪回日志进行恢复,仅追踪恢复因误操纵造成的部分错误数据,实现精准恢复,不受数据库量级影响,能以最小的代价进行快速高效的恢复。
场景二:主备业务模仿演练

以证券行业为例,业务体系通常为主备部署,在休市期间会使用备库进行开市的业务模仿演练,提前辨认灾备风险。当必要进行业务模仿演练时,主库业务不停的环境下,必要将备库failover成主库进行演练,并必要包管演练完毕后能重新变为备库恢复正常的主备状态。
使用PITR技术必要在演练前生成备份集,演练后应用备份集,备库量级大的环境下,演练前的预备时间以及演练后的恢复时间都很长。
使用全库闪回技术无需生成和应用备份集,代表着演练前无需预备时间,演练后仍可以实现快速恢复。

图3  主备形态业务模仿演练场景示意图
全库闪回关键技术

接下来进一步解析全库闪回的两个关键技术“快照点技术”和“快速恢复日志过滤技术”。
首先是全库闪回快照点技术,全库闪回重要通过追踪修改页面的变化并产生闪回日志来实现数据库恢复,因此闪回日志的产生与记录至关重要。

图4  全库闪回快照点技术架构图
如图4所示,初始buffer pool里的三个页面A、B、C都是A0、B0、C0的状态,以A页面举例,T1到T5时刻,A页面从A0修改到了A3,理论上是必要记录A0、A1、A2三个闪回日志,这样才能确保A页面能通过闪回日志从A3回退到最初的A0。
这种记录闪回日志的方式面临两个问题:
1.业务运行过程中,每次修改页面都要产生闪回日志,对性能影响较大。
2.频繁记录闪回日志容易导致空间膨胀过快。
为了解决上述问题,引入了全库闪回快照点技术,在两个快照点之间同一个页面的修改只记录一次闪回日志,降低性能影响,避免空间浪费。
好比这里针对A页面而言,在T3和T5两个快照点之间,A从A1修改成A2,又从A2修改成A3,那么仅记录一个A1的闪回日志。
同时为了降低记录闪回日志IO对正常业务的影响,对于闪回日志的记录都是采取异步刷盘。
第二个是全库闪回快速恢复日志过滤技术。全库闪回进行数据库恢复过程中,怎样快速有用的应用闪回日志是影响恢复效率的关键。

图5  全库闪回快速恢复日志过滤技术架构图
这里同样面临两个问题:
1.怎样根据闪回目的时间点快速确定命据库必要回退的位置,并应用哪些闪回日志?
2.应用闪回日志的过程中,是否所有日志都必要应用,怎样进行优化过滤淘汰消耗?
针对第一个问题,因为闪回日志是以快照点为区间进行记录的,因此当必要回退到某个目的时间点时,必要找到离目的时间点最近的快照点进行回退,再从快照点回放redo恢复到指定时间点。
如图5所示,假设必要从T5恢复到T2,则必要先回退到T1这个快照点,再从T1回放redo到T2。
针对第二个问题,从T5回退到T1时刻,以A页面举例,理论上是必要应用A1、A0两个闪回日志将A页面回退到A0状态,实际上最终目的都是恢复成A0,因此A1这个闪回日志是可以跳过的。
为了实现应用闪回日志的优化,引入了闪回日志过滤技术,当同一个页面在多个快照点区间都产生了闪回日志,则只应用时间最早的闪回日志,其余均跳过。
假设从T5回退到T1,必要横跨两个快照点区间,对于A页面,分别在两个区间产生了A0和A1两个闪回日志,则实际应用时只应用A0即可,跳过A1,从而达到过滤提升恢复速率的效果。
基于以上技术,可以确保全库闪回在对业务性能产生极小影响的前提下,实现数据库整库快速恢复到任意时间点。

图6  雷同业务在差别数据库量级下全库闪回与PITR恢复耗时
如图6所示,数据库量级越大的环境下,全库闪回的局部精准恢复相较于PITR的效果越好。
总结

YashanDB V23.4 LTS新版本此次新增全库闪回特性,语法层完全兼容Oracle,无缝融入现有技术栈,并通过精准秒级回滚、低资源消耗的技术特性,为用户筑牢 “业务永续” 屏障。后续也将从可用性和部署形态等方面进一步提升全库闪回能力,如压缩闪回日志提升空间使用率、支持共享集群部署模式等,以更强盛的企业级高可用能力,成为驱动企业数字化转型的关键引擎。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

来自云龙湖轮廓分明的月亮

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表