GeminiDB Cassandra接口新特性PITR发布:支持任意时间点恢复
本文分享自华为云社区《GeminiDB Cassandra接口新特性PITR发布:支持任意时间点恢复》,作者: GaussDB 数据库。
技术背景
当业务发生数据损毁、数据丢失、数据误删除等一系列故障场景时,往往需要数据库恢复到故障发生前的某一个时刻,且恢复的颗粒度越小越好。而传统数据库采取周期性备份的方式进行数据恢复时,只能恢复到备份的时间点。由于备份点有限,无法进行更细粒度的时间点恢复,非常影响用户体验。
华为云数据库GeminiDB是一款基于华为自主研发的计算存储分离架构,兼容Cassandra生态的云原生NoSQL数据库。GeminiDB Cassandra接口在综合备份成本、恢复时效和粒度得到充分验证的情况下,推出新特性PITR(Point-In-Time-Recover)支持任意时间点恢复,可以自由选择需要恢复的时间点,从而保障用户数据一致性可靠性与安全性!
实现原理
整体备份周期
一个完整的备份周期 = 1次全量数据备份 + 定期运行的增量日志备份 + 穿插运行的差异备份(根据业务读写模型进行调整频率)。
全量备份
PITR支持任意时间点恢复性能的实现,一部分依赖一次全量的数据备份。
全量数据备份为后续增量日志备份提供数据基础,GeminiDB Cassandra接口在进行备份时,会对数据进行秒级快照并充分利用集群中各节点来进行数据切分、上传,因此做到了业务无感知,且不影响实例运行的效果。
增量日志备份
PITR支持任意时间点恢复性能的实现,另一部分离不开增量日志备份。
增量日志备份是一种基于日志文件WAL(Write-ahead log)的备份方法,相比较传统的增量数据备份具有备份任务量轻、上传速率快、节省空间等特点。GeminiDB Cassandra接口会定期备份已归档WAL,上传完毕后及时清理回收。
差异备份
PITR支持任意时间点恢复性能的实现,与差异备份也有一定的关系。
PITR实例恢复时会进行日志回放,当全量备份周期设置较长,业务写入量较大时,会导致回放时日志过多,引起回放时间的增加,而差异备份可以缓解避免这个问题。差异备份本质上是一种数据备份,其基于上一次全量备份或差异备份进行数据差异对比上传,有效减少日志回放量,提升恢复速率。
恢复流程
- 下载全量备份数据到新实例
- 下载增量WAL文件至新实例
- 以恢复模式打开数据库进行WAL日志回放
- 恢复到新实例流程结束
总结
华为云数据库GeminiDB Cassandra接口新特性PITR实现了任意时间点恢复,填补了传统NoSQL引擎只能做指定时间点恢复的短板,将恢复精度精确到任意时间点,极大地提升了用户体验,为数据的安全性和可靠性提供更好的保障。
附录
- 本文作者华为云GeminiDB团队
- 杭州西安深圳简历投递:mamingdi@huawei.com
- 华为云GeminiDB官方产品页:https://www.huaweicloud.com/product/geminidb.html
GeminiDB Cassandra接口新特性PITR发布:支持任意时间点恢复的更多相关文章
- ECMAScript 5和ECMAScript6的新特性以及浏览器支持情况
ECMAScript简介: 它是一种由Ecma国际(前身为欧洲计算机制造商协会)制定和发布的脚本语言规范,javascript在它基础上经行了自己的封装.但通常来说,术语ECMAScript和java ...
- atitit.js 各版本 and 新特性跟浏览器支持报告
atitit.js 各版本 and 新特性跟浏览器支持报告 一个完整的JavaScript实现是由以下3个不同部分组成的 •核心(ECMAScript)--JavaScript的核心ECMAScrip ...
- ECMAScript和JavaScript的区别,ECMAScript发展更新历史,ECMAScript5和ECMAScript6的新特性及浏览器支持情况,ECMAScript 5/ECMAScript 2015正式发布
ECMAScript和JavaScript的区别 ECMA是European Computer Manufacturers Association的缩写,即欧洲计算机制造商协会.欧洲计算机制造商协会是 ...
- css4激动人心的新特性及浏览器支持度
CSS3的选择器提供了很多像:nth-child这样有用的选择器,并且得到浏览器支持.CSS的第四代 选择器CSS4选择器),经我们带来了更多有用的选择器. 1.否定伪类:not 否定伪类选择器其实在 ...
- [Android 新特性] 谷歌发布Android Studio开发工具1.0正式版(组图) 2014-12-09 09:35:40
Android Studio是谷歌于13年I/O大会推出的Android开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的Androi ...
- Java 接口 新特性(Java8)
Java8新特性之接口增强 在Java7以及以前的版本中,接口里的方法都是抽象的,并且不存在静态方法,属性默认修饰符是public static final.所有方法的声明都是public [返回类型 ...
- Java8接口新特性
概述 Java 8中,你可以为接口添加静态方法和默认方法.从技术角度来说,这是完全合法的,只是它看起来违反了接口作为一个抽象定义的理念.猜想设计初衷可能使为了兼容8以下的jdk Java8出来了个函数 ...
- Kubernetes1.6新特性:全面支持多颗GPU
(一) 背景资料 GPU就是图形处理器,是Graphics Processing Unit的缩写.电脑显示器上显示的图像,在显示在显示器上之前.要经过一些列处理,这个过程有个专有的名词叫" ...
- 4、java基础:JDK8接口新特性以及接口和抽象类区别
在jdk8之前,interface之中可以定义变量和方法,变量必须是public.static.final的,方法必须是public.abstract的.由于这些修饰符都是默认的,所以在JDK8之前, ...
- .NET Core 新特性:发布单文件可执行程序
一.前言 .NET Core 3.0中新增加了一个特性:Publishing Single EXEs,可以通过dotnet publish 命令将整个.net core应用发布为一个可执行文件. 二. ...
随机推荐
- win10系统单独编译和使用WebRTC的回声消除(AEC)、音频增益(AGC)、去噪(NS)模块
一.简介 本人想单独编译并使用WebRTC的音频回声消除模块,奈何技术有限,于是在百度的海洋里大海捞针,发现了https://www.cnblogs.com/mod109/p/5827918.html ...
- DHCP和PXE是怎么工作的
dhcp(Dynamic Host Configuration Protocol):配置一段共享IP地址,为新上线的机器分配IP地址,回收下线机器的IP地址. 正常情况下主机(DHCP client) ...
- Hall定理(霍尔定理)证明及推广
引言 网络上有许多Hall定理的证明,但是对于Hall定理的几个推广的介绍却少之又少,因此本文来简单介绍一下 注:为了使这篇文章看起来简单易懂,本文将不会使用图论语言,会图论的朋友们可以自行翻译为图论 ...
- VK Cup 2016 - Round 1 (CF639)
A. Bear and Displayed Friends Div2 的题,不写. B. Bear and Forgotten Tree 3 这种东西怎么评蓝的? Description 给定 \(n ...
- DP优化方法杂记
一些奇妙trick 观察决策集合 此类问题与单调队列优化dp有部分相似,都是利用决策集合的特殊性质对dp进行优化. CF229D Towers 题意:给出一个序列,每次可以花费一体力合并相邻两个数,问 ...
- 从零开始学习web前端技术路线图
最近我侄子快实习了,学校跟培训机构合作,交两万多可以参与一个培训,培训四个月,可以包就业.侄子问我,是否要去培训,培训出来可以找到工作吗? 现在很多大学生,上学的时候谈恋爱,玩游戏,快要毕业就焦虑了. ...
- xxl-job默认accessToken命令执行漏洞复现
起因: 昨天看见微步发布XXL-JOB默认accessToken身份绕过漏洞,之前hw期间遇到过几次,都没弱口令和未授权,对其有点印象,遂复现一下. 漏洞影响:2.3.1和2.4 环境准备: 1.下载 ...
- 题解 CF1264D2
前言 建议大家看一下我对于 D1 的题解(传送门)后再看本题解,本题解是基于那篇题解的基础上书写的. 数学符号约定 \(\dbinom{n}{m}\):表示 \(n\) 选 \(m\) . 如非特殊说 ...
- 一键整合,万用万灵,Python3.10项目嵌入式一键整合包的制作(Embed)
我们知道Python是一门解释型语言,项目运行时需要依赖Python解释器,并且有时候需要安装项目中对应的三方依赖库.对于专业的Python开发者来说,可以直接通过pip命令进行安装即可.但是如果是分 ...
- Codeforces Round #702 (Div. 3) 题解
写在前边 链接:Codeforces Round #702 (Div. 3) 比较简单,但是总是感觉脑子有点转不过弯来. A. Dense Array 链接:A题链接 题目大意: 在数组中插入若干个数 ...