news 2026/8/5 16:13:30

讲解GBase 8a数据库容灾能力之在线备份核心秘籍

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
讲解GBase 8a数据库容灾能力之在线备份核心秘籍

数据库备份任务是一个从数据库文件中读取备份的过程,故天然不影响数据库读操作。对于DML、DDL操作,GBase 8a集群在没有事务日志的前提下是如何做到不阻塞业务的呢?

下面我们来介绍南大通用GBase 8a集群(gbase database)在线备份如何利用写时复制机制实现不阻塞DML、DDL的。

写时复制是指GBase 8a集群在进行DML、DDL操作前将要修改的表的元数据信息和操作后无法获取的数据内容(如drop clolumn、drop table、truncate table、drop partition)复制到一个临时目录下,并通知备份工具部分需要备份的文件路径发生改变。此时备份工具触发重试机制,将表放入重试清单,并在备份的最后进行这些表的备份重试,重试时从写时复制的文件中读取数据保证正确性。

以库级备份执行流程为例,如下图:

GBase 8a集群启动备份任务后,如果备份表有DML、DDL操作,就会触发写时复制功能。

·对于DML,当备份执行过程中执行DML操作时,监听子线程自动识别表发生DML操作并设置状态,启动表元数据及尾块数据的Copy形成一个副本用于备份读取。表DML操作不会受到影响。

注:在线备份执行时会自动将update操作转为delete+insert的快速更新模式,对于delete操作仅修改元数据中的delete位图,对于insert操作仅在尾块位置追加写入新增数据。所以,DML操作的在线备份写时复制的内容较小。

·对于DDL,在备份执行过程中执行DDL操作时,监听子线程自动识别表发生DDL操作并设置状态,按照DDL类型进行写时复制处理:

1、对于修改表元数据的DDL操作如修改表名称、压缩类型等,只需Copy表元数据即可;

2、对于增加列的DDL操作,因数据存储是向后兼容的,同样只需Copy表元数据即可,备份数据时忽略新增列;

3、对于删除列、删除表的DDL操作,GBase 8a采用将删除的列、表mv到临时目录方式,在备份完成后再执行最终的文件删除。

在完成库、表的备份后,通过监听子线程恢复表状态,并删除Copy的快照文件。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/5 16:11:46

如何快速上手ESP32 Arduino开发:3步配置完整指南

如何快速上手ESP32 Arduino开发:3步配置完整指南 【免费下载链接】arduino-esp32 Arduino core for the ESP32 family of SoCs 项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32 还在为嵌入式开发的高门槛而烦恼吗?想要在5分钟内…

作者头像 李华
网站建设 2026/8/5 16:11:00

Unity风格化云朵Shader实现:从噪声叠加到动态天气系统

1. 项目概述:为什么我们需要一个风格化的云朵Shader? 在Unity项目里,尤其是那些追求独特视觉风格的游戏或交互应用中,天空盒往往是奠定整体氛围基调的关键。一个写实的天空盒固然不错,但对于卡通渲染、低多边形风格、或…

作者头像 李华
网站建设 2026/8/5 16:08:51

终极指南:为qBittorrent安装搜索插件,实现一站式种子搜索

终极指南:为qBittorrent安装搜索插件,实现一站式种子搜索 【免费下载链接】search-plugins Search plugins for qBittorrent search feature 项目地址: https://gitcode.com/gh_mirrors/se/search-plugins 还在为寻找资源而在多个种子网站间来回切…

作者头像 李华
网站建设 2026/8/5 16:08:50

Macmini 2018安装ArchLinux全攻略:突破T2芯片限制,打造极致开发环境

1. 项目概述:为什么要在Macmini 2018上折腾ArchLinux? 如果你手头有一台2018款的Macmini,大概率是觉得它性能尚可但macOS用着不顺手,或者单纯想把它变成一个纯粹的开发服务器、家庭服务器,甚至是一个学习Linux内核的“…

作者头像 李华