GaussDB(DWS):非侵入式备份及其在NBU上的应用
摘要:Netbackup软件必须要有该集群所支持的OS的安装包,一种新的非侵入式备份架构呼之欲出。
1. 通用的备份方案介绍
除Netbackup深度定制的厂商外,通常数据库厂商都按XBSA接口来实现NBU备份。首先在集群内每个节点安装NBU客户端,通过XBSA发命令至本地NBU客户端,然后NBU客户端与远端服务器上的NBU服务端程序通信,将数据写入挂载于远端的磁带或磁盘设备。早期的GaussDB(DWS)便是采用如此方式,应用于线下场景。下图展示了这个备份架构原理。

如上图,GaussDB的备份工具Roach,在每个节点都启动一至多个Roach agent进程,用于读取本节点的GaussDB数据,并将其存入缓存buffer。然后调用XBSA接口,将缓存数据转发给NBU处理。
不难看出,该架构的特点就是Netbackup第三方软件需要侵入式部署到我们的集群内,备份进程也要使用安装NBU Client时一起提供的libxbsa64.so动态库才能使用XBSA接口。这样就隐含了一个前提:Netbackup软件必须要有该集群所支持的OS的安装包。但是,云上环境基本都是欧拉OS,或者鲲鹏服务器,目前针对这些系统并没有Netbackup软件的安装包,这个前提变得不可获得。更进一步,适配更多第三方厂商的备份协议时,当前架构就要求第三方厂商必须支持欧拉OS、鲲鹏等版本,增加了各种组合的复杂性,不利于生态拓展。于是一种新的非侵入式备份架构呼之欲出。
2. 非侵入式备份架构介绍
非侵入式架构下,第三方厂商的客户端软件不部署在GaussDB集群内。同时,GaussDB开发一个新插件,部署于远端备份服务器上,负责与集群内的Roach工具进行通信,于是架构变为下图所示:

这里说的新插件就是Roach client组件,用户使用前需要提前在备份服务器上部署该组件。和Roach工具一样,该组件也不允许以root用户部署,应当新建一个普通用户,在该用户下部署。
图中NBU只是一种示例,其它第三方软件对接时原理也是相同的。
展开一点来说,集群内每个节点都有Roach agent进程负责本节点一至多个DN实例的数据备份,该进程会根据DN个数fork出多个子进程,每个Roach agent子进程负责一个DN。备份出来的数据会转发给远端备份服务器的Roach client进程,该进程内部又会根据DN个数fork出多个子进程,每个子进程负责与一个DN(亦对应一个Roach agent)通信。这里不能创建为线程是因为XBSA本身限制,每个进程才能独占一份NBU链接。即有如下映射关系图:

从性能角度考虑,需要根据一定比例配备多个NBU media server服务器。比如GaussDB集群有200个节点,每4个DN对应一个备份盘或磁带,每10个GaussDB节点配备一台NBU media server,则共需20台media服务器。示意图如下:

3. 云上非侵入式NBU备份的使用
用户可通过DWS管控面发起NBU备份操作,发起之前需按照非侵入式方式提前部署好NBU环境和Roach client组件。
首先,可在插件下载界面提前down下来Roach client组件包(OS版本需要与NBU media server的系统相同):

然后配置快照策略,图中的备份服务器即是NBU media server。
接下来就可以创建快照了:

创建快照成功后,后期即可使用该快照来恢复集群。
本文分享自华为云社区《非侵入式备份及其在NBU上的应用》,原文作者:dws。
GaussDB(DWS):非侵入式备份及其在NBU上的应用的更多相关文章
- BlockCanary 一个轻量的,非侵入式的性能监控组件(阿里)
开发者博客: BlockCanary — 轻松找出Android App界面卡顿元凶 开源代码:moduth/blockcanary BlockCanary对主线程操作进行了完全透明的监控,并能输出有 ...
- 使用phpAnalysis打造PHP应用非侵入式性能分析器
使用phpAnalysis打造PHP应用非侵入式性能分析器,查找PHP性能瓶颈. 什么是phpAnalysis phpAnalysis是一款轻量级非侵入式PHP应用性能分析器,适用于开发.测试及生产环 ...
- Spring学习(1):侵入式与非侵入式,轻量级与重量级
一. 引言 在阅读spring相关资料,都会提到Spring是非侵入式编程模型,轻量级框架,那么就有必要了解下这些概念. 二. 侵入式与非侵入式 非侵入式:使用一个新的技术不会或者基本不改变原有代码结 ...
- 非侵入式JavaScript(Unobtrusive javaScript)理解
转载自 https://my.oschina.net/leegq/blog/279750 在Web的早期阶段,也就是在jQuery出现以前,在同一个文件中混杂JavaScript代码和HTML标记是非 ...
- MVC的验证(模型注解和非侵入式脚本的结合使用) .Net中初探Redis .net通过代码发送邮件 Log4net (Log for .net) 使用GDI技术创建ASP.NET验证码 Razor模板引擎 (RazorEngine) .Net程序员应该掌握的正则表达式
MVC的验证(模型注解和非侵入式脚本的结合使用) @HtmlHrlper方式创建的标签,会自动生成一些属性,其中一些属性就是关于验证 如图示例: 模型注解 通过模型注解后,MVC的验证,包括前台客 ...
- Spring 侵入式和非侵入式
1.非侵入式的技术体现 允许在应用系统中自由选择和组装Spring框架的各个功能模块,并且不强制要求应用系统的类必须从Spring框架的系统API的某个类来继承或者实现某个接口. 2.如何实现非侵入式 ...
- Spring框架是一种非侵入式的轻量级框架
摘自<Spring框架技术> Spring框架是一种非侵入式的轻量级框架 1.非侵入式的技术体现 允许在应用系统中自由选择和组装Spring框架的各个功能模块,并且不强制要求应用系统的类必 ...
- 支付宝开源非侵入式 Android 自动化测试工具 Soloπ
Soloπ(SoloPi)是支付宝开源的一个无线化.非侵入式的Android自动化测试工具,公测版拥有录制回放.性能测试.一机多控三项主要功能,能为测试开发人员节省宝贵时间. 本文是SoloPi团队关 ...
- 侵入式&非侵入式
侵入式设计 引入了框架,对现有的类的结构有影响:即需要实现或继承某些特定类. 例如:Struts框架 非侵入式设计 引入了框架,对现有的类结构没有影响. 例如:Hibernate框架 / Spring ...
- Java非侵入式API接口即文档工具apigcc
一个非侵入的api编译.收集.Rest文档生成工具.工具通过分析代码和注释,获取文档信息,生成RestDoc文档 前言 程序员一直以来都有一个烦恼,只想写代码,不想写文档.代码就表达了我的思想和灵魂. ...
随机推荐
- k8s-1.23.6 安装部署文档(超详细)
一.文档简介 作者:lanjiaxuan 邮箱:lanheader@163.com 博客地址:https://www.cnblogs.com/lanheader/ 更新时间:2022-09-09 二. ...
- QPainter和QPainterPath理解
QPainter和QPainterPath QPainterPath (一)简介 (二)常用函数 1.addEllipse() 2.addPath() 3.addPolygon() 4.addRect ...
- mysql 代码适配 postgresql 适配改写,优化案例(行转列 + 标量子查询改写)
最近在适配个MySQL应用的项目,各种SQL改成PG兼容的语法真的是脑壳痛,今天遇到个有意思的案例. 原 MySQL SQL语句: SELECT DISTINCT l.MALL_NAME '项目', ...
- python3使用libpcap给ESL命令添加日志记录
操作系统 :CentOS 7.6_x64 FreeSWITCH版本 :1.10.9 python版本:3.9.12 libpcap版本:1.11.0b7 FreeSWITCH的ESL模块用起来很方 ...
- 【Android】无法通过drawable下的selector类型改变背景颜色?
举例 我在darwable目录下创建了selector文件,并设置了如下内容 <?xml version="1.0" encoding="utf-8"?& ...
- 掌握HarmonyOS框架的ArkTs如何管理和共享状态数据
本文分享自华为云社区<深入理解ArkTs中的AppStorage和LocalStorage>,作者:柠檬味拥抱 . ARKTS(Ark TypeScript)是HarmonyOS应用框架的 ...
- HTML5语法总结大全
参考书籍: <HTML与CSS3基础教程> 参考视频: HTML5完整教学通俗易懂 2023新版前端Web开发HTML5+CSS3+移动web视频教程,前端web入门首选黑马程序员 参考网 ...
- Go笔记(5)-String详解
String详解 Go中的字符串是一个字节的切片,可以通过将其内容封装在双引号中来创建字符串,Go中的字符串Unicode兼容的,并且是UTF-8编码,字符串是一些字节的集合 (1)创建字符串 str ...
- 掌握这些,轻松管理BusyBox:如何交叉编译和集成BusyBox
在嵌入式系统中,由于设备的资源限制,需要开发人员寻找一种轻量.小型且使用广泛的工具集.而 BusyBox 就是这样一个在嵌入式系统中非常实用的工具集.本文将介绍如何在 Ubuntu 22.04 平台上 ...
- 记一次 .NET 某新能源材料检测系统 崩溃分析
一:背景 1. 讲故事 上周有位朋友找到我,说他的程序经常会偶发性崩溃,一直没找到原因,自己也抓了dump 也没分析出个所以然,让我帮忙看下怎么回事,那既然有 dump,那就开始分析呗. 二:Wind ...