GaussDB的数种形态

news2025/1/22 19:13:10

GaussDB作为一种新兴的关系型数据库产品,似乎有点让人摸不着头脑。有朋友问我GaussDB单机版怎么样,有人说GaussDB是分布式数据库,还有人说它是云数据库,还有人会把GaussDB和华为的数据仓库GaussDB DWS混为一谈。确实,公开的GaussDB的资料对这些问题没有明确的说法,并且GaussDB作为数据库独立商业销售不足一年,大家对这个产品的了解不多,众说纷纭就不足为奇了。今天我们来聊聊GaussDB的数种形态,当然这里的GaussDB和华为的GaussDB DWS不是一码事。   

从大类来看,GaussDB分为云数据库GaussDB和轻量化部署形态GaussDB两种,云数据库是华为云上的GaussDB,华为数据库产品这些年还处于发展期,前期的命名和版本号都比较乱,云数据库GaussDB是现在的叫法,以前还曾经被称为GaussDB for openGauss,因为华为云上的RDS都被统称为GaussDB,这种命名方法实际上很不利与GaussDB的品牌推广。很容易让大家把GaussDB与GaussDB for MySQL,GaussDB for Postgresql等基于开源数据库的云上RDS混淆了。       

除了云数据库和轻量化部署形态这两大类以外,每个大类里,GaussDB还分为分布式和主备版这两种类型。这两种类型在部署架构和使用、运维方面还是有很大的差别的。      

不管哪种部署架构,其RDBMS的核心是统一的,这个核心与openGauss也是有渊源的,大部分的核心代码是共有的。这种特性让使用GaussDB的多种形态以及openGauss的用户可以共享部分运维经验。不过集中式数据库与分布式数据库之间的天然鸿沟让这些形态的数据库之间的运维经验共享变得有些困难。熟悉openGauss的DBA想要去运维GaussDB分布式数据库,还是有大量的知识需要去学习。

云数据库的GaussDB版本需要依赖于DBS平台以及华为云的基础能力,其部署架构是十分复杂的。其安装部署十分复杂,其运维操作也只能依赖于DBS平台的能力。实际上上图只是包含了部署GaussDB的平台环境,并没有包含GaussDB本身。如果加上GaussDB数据库,这张图就会复杂得没法看了。所以只能用这张补充的图来进一步说明。

从轻量化部署形态的数据库架构图上,我们可以把GaussDB看得更为清晰一些。对于主备结构的GaussDB,其轻量化部署形态如下图。

DN是数据库节点,每个DN是一个独立的数据库实例。OM是GaussDB的运维管理模块,提供各种运维工具。ETCD是一个小型的分布式键值数据库,用于服务发现与共享配置信息的存储。在整个GaussDB集群运行中起到十分重要的作用。GaussDB主备版的高可用切换、消息发布、分布式锁、分布式队列、集群健康状态监控、Leader选举等方面都需要ETCD参与。CM是华为的集群管理组件,由CM AGENT、CM SERVER、CM Monitor组成。主备版是GaussDB分布式数据库的一个简化版。一般采用三节点部署模式,一主二从,通过数据库复制保持主从库的数据同步。平时只有主节点对外提供读写服务,一旦主节点故障自动选举出新的主节点,完成数据同步后接管业务。

GaussDB的分布式模式稍微复杂一些,DN作为存储节点,是分布式分区部署的。业务应用哪个不直接连接到DN上,而时连接到计算节点CN上。GTM作为全局事务管理器负责处理分布式事务。为了保证高可用,GTM采用主从结构,一主一备,主节点故障时备节点接管。因为GaussDB的GTM使用了GTM-LITE,因此主备切换的效率还是不错的,不会对生产业务产生太大的影响。

         

除此之外,GaussDB数据库要想在用户侧很好的使用,还有数个组件是必不可少的,其中一个是DRS,通过DRS可以完成从其他数据库向GaussDB数据复制的工作。

实际上哪怕是GaussDB的轻量化部署形态,所涉及的组件还是挺复杂的,安装部署、启停数据库等操作还是有些复杂。我想随着GaussDB数据库产品的升级,GaussDB的系统化工作会进一步深入,当年Oracle也走过这样一个过程,我第一次安装Oracle数据库的时候,创建一个表空间都需要先用OS命令touch一个文件,然后才能把这个文件加入到表空间里。现在国产数据库的各种复杂让刚刚用惯了Oracle的用户感受到了各种不便,也会有各种吐槽。我想国产数据库的开发者应该擅长倾听这些吐槽,并有义务让这种不便尽快变成方便。

本文作者:白鳝的洞穴    

     

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1789615.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AD域渗透链和工具推荐

xmind下载地址: 链接: https://pan.baidu.com/s/1_BsmqLvN6aBnan0AIk5iBA 提取码: j97j

笔记 | 软件工程02:软件工程概述

1 软件工程产生背景 1.1 历史发展 1960s的个体作坊式软件开发带来的问题 1.2 软件开发需要解决的问题 代码规模增长带来的影响: 1.3 软件开发面临的挑战 指挥信息系统中的软件:规模大、质量要求高 装备中嵌入式软件系统:规模大、质量要求…

【MySQL数据库】索引与事务

🔥个人主页: 中草药 🔥专栏:【MySQL】探秘:数据库世界的瑞士军刀 目录 🗳️一.索引 📮1.工作原理 📬2.类型 📭3.作用 📪4.优缺点 📫5.使用…

一维时间序列突变检测方法(小波等,MATLAB R2021B)

信号的突变点检测问题是指在生产实践中,反映各种系统工作状态的信号,可能因为受到不同类型的噪声或外界干扰而发生了信号突变,导致严重失真的信号出现,因此必须探测突变出现的起点和终点。研究目的在于设计出检测方案,…

python-字符替换

[题目描述] 给出一个字符串 s 和 q 次操作,每次操作将 s 中的某一个字符a全部替换成字符b,输出 q 次操作后的字符串输入 输入共 q2 行 第一行一个字符串 s 第二行一个正整数 q,表示操作次数 之后 q 行每行“a b”表示把 s 中所有的a替换成b输…

docker 存储 网络 命令

文章目录 1 docker存储1.1 目录挂载2.1卷映射2.1.1卷映射和目录挂载的区别2.1.2卷映射的使用 2 docker网络2.1查看docker的默认网络2.2查看容器的IP2.3容器互通2.4自定义网络2.4.1 创建自定义网络2.4.2创建容器的时候加入到自定义的网络2.4.3使用域名进行容器之间的访问2.4.4re…

小米路由器如何设置去广告功能,如何设置小米路由器的自定义Hosts(小米路由器如何去除小米广告、去除小米电视盒子开屏广告、视频广告)

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 实现方案 📒📝 操作步骤📝 注意事项⚓️ 相关链接 ⚓️📖 介绍 📖 小米设备的广告一直是用户头疼的问题,无论是开屏广告、应用内广告还是系统广告,都影响了用户体验。本文将详细介绍如何通过小米路由器实现去除广告…

低代码设计中的组织结构的作用与模式

一、组织结构的作用 在低代码设计中,组织结构是系统运作的基石,它定义了系统中的关键元素,包括人员、部门、角色,以及一人多部门、一人多部门多角色的复杂关系。这种定义不仅为系统提供了清晰的运行框架,还确保了系统…

学生问的一道CSS3媒体查询,实现响应式设计的题

目录 题目要求: 解题思路: 解题: 1)大屏、3个DIV水平排列 2)中屏、前2个DIV水平占一半,第三个另起一行,宽度占满 3)小屏,3个DIV铺满,垂直排列 题目要求&…

深入理解计算机系统 家庭作业5.13

A:关键路径在xmm0那条路,书中几条关键路径全部是xmm0,有xmm1时,xmm1也是 B:3 C:1 D:按书中的定义: 关键路径才是下界!按书上的方法根据 图5-12 算出关键路径的CPE即可. 非关键路径把它视为黑盒子.因为是乱序和超标量的,没办法搞清楚处理器具体怎么处理这些指令.

17、Spring系列-SpringMVC-请求源码流程

前言 Spring官网的MVC模块介绍: Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就已包含在Spring框架中。正式名称“ Spring Web MVC”来自其源模块的名称(spring-webmvc),但它通常被称为“ Spring MVC…

PHP 页面报错Warning</b>: Cannot modify header information - headers already sent by

先给出解决方案再解释,如果急着用就不用看解释了。 解决方案一:保存php文件编码为utf-8无BOM码,具体操作可以用notepad等编辑器完成,把 sesstion_start() 放在文档所有输出(包括html标签和php的输出语句,具…

了解可燃气体报警器检验收费,守护企业安全新防线

在工业生产中,可燃气体报警器作为预防火灾和爆炸事故的重要设备,其准确性和可靠性至关重要。为了确保报警器的正常运行,定期的检验工作必不可少。 而关于检验收费,很多企业可能存在疑虑:这项费用是否合理?…

AC自动机(查询)

上面讲了AC自动机是如何建树和建自动机的,这里要讲的是AC自动机的查询和各个数组的功能和作用。 其实AC自动机的查询和KMP算法是及其相近的,都是一个指针跑主串,另一个指针跑ne串(这里就是回跳边)。 话都说到这了&…

C#中字节数组(byte[])末尾继续添加字节的示例

方法一:使用List 使用List可以很容易地在末尾添加字节,然后如果需要,可以将其转换回byte[]。 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Lin…

【C++小知识】为什么C语言不支持函数重载,而C++支持

为什么C语言不支持函数重载,而C支持 编译链接过程函数名修饰过程总结 在了解C函数重载前,如果对文件的编译与链接不太了解。可以看看我之前的一篇文章,链接: 文件的编译链接 想要清楚为什么C语言不支持函数重载而C支持,有俩个过程…

大数据学习问题记录

问题记录 node1突然无法连接finalshell node1突然无法连接finalshell 今天我打开虚拟机和finalshell的时候,发现我的node1连接不上finalshell,但是node2、node3依旧可以链接,我在网上找了很多方法,但是是关于全部虚拟机连接不上finalshell&a…

12 - 常用类

那就别跟他们比,先跟自己比,争取今天比昨天强一些,明天比今天强一些。 1.包装类 针对八种基本数据类型封装的相应的引用类型。 有了类的特点,就可以调用类中的方法。(为什么要封装) 基本数据类型包装类b…

目标检测数据集 - 打架检测数据集下载「包含VOC、COCO、YOLO三种格式」

数据集介绍:打架检测数据集,真实监控场景高质量打架图片数据,涉及场景丰富,比如街道场景打架数据、酒吧场景打架数据、商店场景打架数据、公交车场景打架数据、监狱场景打架数据、空旷地打架数据、两人打架数据、多人群殴数据等。…

mysql中optimizer trace的作用

大家好。对于MySQL 5.6以及之前的版本来说,查询优化器就像是一个黑盒子一样,我们只能通过EXPLAIN语句查看到最后 优化器决定使用的执行计划,却无法知道它为什么做这个决策。于是在MySQL5.6以及之后的版本中,MySQL新增了一个optimi…