当前位置:网站首页>基于分布式数据库本身的定时备份方法
基于分布式数据库本身的定时备份方法
2022-06-12 19:05:00 【浪潮云溪数据库】
背景技术
在大型分布式数据库中,对于数据的保护显得尤为重要,备份则是对数据进行保护的一种合理手段。若要对不断更新的数据进行保护,则可以在指定时间点对数据库数据进行备份。这样,当数据库发生故障时,可以及时还原到最近一次备份的时间点,避免数据大规模丢失。目前已知对数据库进行备份主要采取以下两种策略:
(1)利用操作系统本身的定时系统,编写脚本,定时将数据库物理存储数据进行复制。
该方案通过利用操作系统本身的定时系统,编写脚本,便可在脚本指定的周期时间进行定时操作,将数据库物理存储的数据进行复制,保存于其他安全的物理存储设备中。
(2)利用操作系统本身的定时系统,编写脚本,定时执行 SQL 备份语句。
该方案通过利用操作系统本身的定时系统,与数据库本身的备份功能相结合,定时执行 SQL 备份语句, 则可在脚本指定的定时周期进行数据库数据备份。
方案(1)(2)均强依赖于操作系统,局限性高,需要熟悉对应操作系统脚本编写的人员进行脚本的编写,且此类方式定时备份的相关信息不够直观、不易保存。同时,方案(1)为物理备份,必须停止数据库才可进行复制,很多业务场景不适用。方案(2)虽摆脱了此种限制,可以应用于在线业务,但仍受限于操作系统及脚本等方面。
云溪数据库中的定时备份
云溪分布式数据库提供了一种定时备份方法。此种方法可通过数据库本身定时对数据库数据进行备份,避免数据的大规模丢失,保障数据的安全性。同时,相比于其他类似技术,该方法解决了定时备份任务强依赖于操作系统及脚本的问题,使得定时备份变得更为灵活且容易实现,更利于数据库管理人员操作使用。另外,备份方式使用数据库本身的逻辑备份方式,属于逻辑备份而非物理备份,可以解决备份时需要停止数据库业务的问题,拓宽了业务场景的同时保障了数据的安全可靠。
云溪数据库能够在不停止业务的情况下按照指定的周期对数据进行备份,具体过程如下:
步骤 1- 用户执行创建定时备份任务的 SQL 语句,其中包括备份目标、备份周期和备份位置等信息;
步骤 2- 数据库解析 SQL 语句,将关键信息写入数据库内定时备份的系统表中,同时创建出后台执行的定时备份任务,结合附图 1;
步骤 3- 数据库按照数据库中设置的时间间隔,每隔该时间,对系统表进行一次扫描,筛选出该执行的备份操作并执行,结合附图 2;
步骤 4- 若执行备份成功,则继续执行步骤 3;若不成功,则停止定时备份任务并提示数据库使用者,同时将问题信息写入日志。
进一步的,步骤 1 用户执行创建定时备份操作,设置备份的周期,及将指定的数据库(模式、表)备份到指定的节点、分区、落盘位置等。
随后执行步骤 2,数据库服务解析 SQL 语句生成语法树,再通过语法树生成执行计划,将关键信息写入数据库内定时备份的系统表中,其中具体步骤包括:
步骤 2.1- 用户输入创建定时备份的 SQL 语句后,解析器通过词法解析,句法解析和语义解析,将语句生成语法树。
步骤 2.2- 优化器由语法树生成逻辑计划,再由逻辑计划生成具体执行时的物理计划。
步骤 2.3- 基于执行计划,将备份的关键信息写入数据库内定时备份的系统表中,并在后台创建一个定时备份进程,用于定时扫描该系统表,结合附图 1.

图 1
数据库内定时备份的系统表中具体信息例如:
{
schedule_id 定时备份任务唯一标识
schedule_name 定时备份任务名称
created 定时备份任务创建时间
owner 定时备份任务归属用户
schedule_expr 定时备份周期表达式
next_run 下次执行备份的时间
target 定时备份任务的对象
}
随后执行步骤 3:数据库按照数据库中设置的时间间隔,每隔该时间,对系统表进行一次扫描,筛选出该执行的备份操作并执行,其中具体步骤包括:
步骤 3.1- 按照设置的时间间隔,扫描定时备份的系统表,查询是否应该执行该次备份。具体执行判断示例为:
将当前时间 time.now 与系统表中对应备份的 next_run 进行对比判断,若当前时间大于等于 next_run,则应当执行该次备份,若小于,则无需执行。
步骤 3.2- 若满足执行条件,则执行该次备份并在定时备份的系统表中更新该次备份的定时信息,若满足,则不执行及更新,等待下次扫描,结合附图 2.

图 2
具体更新示例为:执行备份,更新该次备份的定时信息,即更新系统表中对应备份的 next_run 值,其应当为当前 next_run 值加 schedule_expr 换算出的时间周期。
随后执行步骤 4:执行步骤 3 中扫描出的满足条件的备份,若不成功,则停止定时备份任务并提示数据库使用者,同时将问题信息写入日志。
优势
此种定时备份方法不依赖于操作系统及脚本,而是通过在数据库内输入 SQL 语句设置定时备份任务,使得定时备份变得更为灵活且容易实现,更易于数据库管理人员去制定定时备份策略、设置定时备份方式;通过备份,对数据进行保护,避免数据的大规模丢失,保障数据的安全性。同时,此种定时备份方法执行的备份是基于数据库内部的备份,而非对外在数据进行拷贝,故而可以在不停止数据库的同时对数据进行备份,不会影响正常业务的开展。
边栏推荐
- 【历史上的今天】6 月 12 日:美国进入数字化电视时代;Mozilla 的最初开发者出生;3Com 和美国机器人公司合并
- Design of smart home control system (onenet) based on stm32_ two thousand and twenty-two
- Go init initialization function
- What is a network proxy
- RT thread simulator builds lvgl development and debugging environment
- Embedded development: 6 necessary skills for firmware engineers
- leetcode:5259. 计算应缴税款总额【简单模拟 + 看看在哪个区间】
- kali局域网ARP欺骗(arpspoof)并监听(mitmproxy)局域内其它主机上网记录
- RT-Thread 模拟器 simulator 搭建 LVGL 的开发调试环境
- 吃饭咯 干锅肥肠 + 掌中宝!
猜你喜欢

The Bean Validation API is on the classpath but no implementation could be found

leetcodeSQL:602. Friend application II: who has the most friends

How to modify the authorization of sina Weibo for other applications

数据库全量SQL分析与审计系统性能优化之旅
![leetcode:5289. Distribute cookies fairly [see data range + DFS pruning]](/img/be/820bfb3aaf23a397e65f96693770f2.png)
leetcode:5289. Distribute cookies fairly [see data range + DFS pruning]

Research Report on the overall scale, major manufacturers, major regions, products and application segments of lifeboats in the global market in 2022

Go package import mode member visibility

Transactions in redis

RT-Thread 模拟器 simulator 搭建 LVGL 的开发调试环境

基于FPGA的VGA协议实现
随机推荐
Wincc7.5 SP1 method for adjusting picture size to display resolution
Kali LAN ARP Spoofing and monitoring other hosts' Internet access records in the LAN
leetcode:6094. 公司命名【分组枚举 + 不能重复用set交集 + product笛卡儿积(repeat表示长度)】
Redis中的事务
leetcodeSQL:602. Friend application II: who has the most friends
Leetcode topic [string]-541- reverse string II
leetcode:5289. Distribute cookies fairly [see data range + DFS pruning]
Leetcode 474. One and zero
Cookie & session & kaptcha verification code
Global and Chinese smart government industry market research and investment risk outlook report 2022-2028
WinCC7.5 SP1调整画面尺寸以适应显示分辨率的方法
Hugo blog building tutorial
[image denoising] image denoising based on regularization with matlab code
实验10 Bezier曲线生成-实验提高-控制点生成B样条曲线
Leetcode 1049. Weight of the last stone II
Hash hash
leetcode:5270. Minimum path cost in Grid [simple level DP]
In 2021, the global revenue of electro-optical modulator (EOM) is about USD 360.3 million, and it is expected to reach USD 704.4 million in 2028
Vue —— 进阶 vue-router 路由(二)(replace属性、编程式路由导航、缓存路由组件、路由的专属钩子)
Order allocation strategy for instant delivery: from modeling and Optimization - Notes