openGauss与GaussDB系统架构对比

openGauss与GaussDB系统架构对比

  • 系统架构对比
    • openGauss架构
    • GaussDB架构
  • GaussDB集群管理组件

系统架构对比

openGauss架构

openGauss是集中式数据库系统,业务数据存储在单个物理节点上,数据访问任务被推送到服务节点执行,通过服务器的高并发,实现对数据处理的快速响应。同时通过日志复制可以把数据复制到备机,提供数据的高可靠和读扩展。

openGauss系统架构

组件名称描述
OM运维管理模块(Operation Manager)。提供数据库日常运维、配置管理的管理接口、工具。
CM数据库管理模块(Cluster Manager)。管理和监控数据库系统中各个功能单元和物理资源的运行情况,确保整个系统的稳定运行。
DNDatanode主备实例节点。负责存储业务数据、执行数据查询任务以及向客户端返回执行结果。openGauss实例包含主、备两种类型,支持一主多备。建议将主、备openGauss实例分散部署在不同的物理节点中。
客户端驱动客户端驱动(Client Driver)。负责接收来自应用的访问请求,并向应用返回执行结果。客户端驱动负责与openGauss实例通信,发送应用的SQL命令,接收openGauss实例的执行结果。
Storage服务器的本地存储资源,持久化存储数据。

GaussDB架构

GaussDB是华为自主创新研发的关系型数据库,既支持分布式部署,也支持集中式部署。

GaussDB分布式

GaussDB集中式

组件名称描述
OM运维管理模块(Operation Manager)。提供数据库日常运维、配置管理的管理接口、工具。
CM集群管理模块(Cluster Manager)。管理和监控分布式系统中各个功能单元和物理资源的运行情况,确保整个系统的稳定运行。
CN协调节点(Coordinator),负责接收来自应用的访问请求,并向客户端返回执行结果;负责分解任务,并调度任务分片在各DN上并行执行。
GTM全局事务管理器(Global Transaction Manager),负责生成和维护全局事务ID、事务快照、时间戳、Sequence信息等全局唯一的信息。
DN数据节点(Datanode),负责存储业务数据、执行数据查询任务以及向CN返回执行结果。
ETCD分布式键值存储系统(Editable Text Configuration Daemon)。用于共享配置和服务发现(服务注册和查找)。
Storage服务器的本地存储资源,持久化存储数据。

⭐️各组件的在openGauss和GaussDB不同部署形态中的情况如下:

组件名称OMCMCNGTMETCDDN
openGauss主备
Gauss集中式
Gauss分布式

GaussDB集群管理组件

GaussDB集群管理组件(CM)包含以下模块:

  • OMM:对应的二进制文件为om_monitor。管理服务组件,由crontab定时任务控制拉起(周期为1min)。OMM组件主要负责OMM、etcd、cm_agent进程的保活和启停。
  • etcd:对应的二进制文件为etcd。管理服务组件,由OMM组件拉起(周期为1s)。etcd是集群高可用的顶层组件,负责协助CMS选主、持久化集群仲裁信息。etcd组件故障会导致CMS无主,进而导致无法查看集群状态、无法进行高可用切换。
  • CM Agent:对应的二进制文件为cm_agent。管理服务组件,由OMM组件拉起(周期为1s)。CMA主要负责CMS、DN进程的保活和启停,仲裁指标采集、仲裁命令执行等。CMS组件故障会导致以下影响:
    • CMS、DN进程和保活能力丢失;
    • 节点脱管,实例级故障检测能力丢失,被管理实例状态未知。
  • CM Server:对应的二进制文件为cm_server。管理服务组件,由CMA组件拉起(周期为1s)。CMS是集群的仲裁中心,依赖etcd(或启用DCC)实现自助选主。CMS组件故障会导致以下影响:
    • 集群状态无法查看;
    • 整个集群的高可用切换能力丢失(DCF自仲裁模式除外);
    • 容灾barrier无法推进;
    • DCC模式下,无法持久化集群信息。
  • DN:对应的二进制文件为gaussdb。数据服务组件,由CMA组件拉起(周期为1s)。DN组件故障会产生以下影响:
    • 单异步备故障:集群无影响;
    • 单同步备故障:数据服务卡顿,卡顿时间取决于异步备到同步的日志量;
    • 主故障:数据服务不可用;
    • 多数派故障:数据服务卡顿直至恢复多数派或者降副本。

组件相关的日志路径如下:

$GAUSSLOG/cm/cm_ctl/cm_ctl*.log
$GAUSSLOG/cm/cm_agent/*.log
$GAUSSLOG/cm/cm_server/*.log
$GAUSSLOG/cm/om_monitor/*.log

Reference
【1】https://docs.opengauss.org/zh/docs/5.0.0/docs/AboutopenGauss/%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84.html
【2】https://support.huaweicloud.com/productdesc-gaussdb/gaussdb_01_003.html
【3】https://blog.csdn.net/HCIS_HENGCHI/article/details/133774888

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

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

相关文章

idea 8年使用整理

文章目录 前言idea 8年使用整理1. 覆盖application配置2. 启动的时候设置编辑空间大小,并忽略最大空间3. 查询类的关系4. 查看这个方法的引用关系5. 查看方法的调用关系5.1. 查看被调用关系5.2. 查看调用关系 6. 方法分隔线7. 选择快捷键类型8. 代码预览插件9. JReb…

C++ OCR 文字识别

一.引言 文字识别,也称为光学字符识别(Optical Character Recognition, OCR),是一种将不同形式的文档(如扫描的纸质文档、PDF文件或数字相机拍摄的图片)中的文字转换成可编辑和可搜索的数据的技术。随着技…

Unity中UGUI的Button动态绑定引用问题

Unity中UGUI的Button动态绑定引用问题 问题代码修改代码如下总结 问题代码 Button动态绑定几个连续的按钮事件时使用for循环的i做按钮的id发现按钮点击对应不上。如下代码 for (int i 0; i < 10; i) {btn[i].onClick.AddListener(() >{Click(i);}); }/// <summary&…

SQL中的窗口函数

1.窗口函数简介 窗口函数是SQL中的一项高级特性&#xff0c;用于在不改变查询结果集行数的情况下&#xff0c;对每一行执行聚合计算或者其他复杂的计算&#xff0c;也就是说窗口函数可以跨行计算&#xff0c;可以扫描所有的行&#xff0c;并把结果填到每一行中。这些函数通常与…

SpringBoot(Ⅱ)——@SpringBootApplication注解+自动装配原理+约定大于配置

1. SpringBootApplication注解 SpringBootApplication标注在某个类上说明这个类是SpringBoot的主配置类&#xff0c;SpringBoot就通过运行这个类的main方法来启动SpringBoot应用&#xff1b; 并且Configuration注解中也有Component注解&#xff0c;所以这个主启动类/主配置类…

音视频入门知识(二)、图像篇

⭐二、图像篇 视频基本要素&#xff1a;宽、高、帧率、编码方式、码率、分辨率 ​ 其中码率的计算&#xff1a;码率(kbps)&#xff1d;文件大小(KB)&#xff0a;8&#xff0f;时间(秒)&#xff0c;即码率和视频文件大小成正比 YUV和RGB可相互转换 ★YUV&#xff08;原始数据&am…

信息安全管理:开发测试安全管理checklist

开发测试安全管理包括安全需求、安全设计、安全编码测试、系统部署上线、商用及开源软件使用、开发测试资源安全六个部分的内容。 01.安全需求 在信息系统需求阶段是否考虑安全需求&#xff1f;信息系统安全需求是否经过论证&#xff1f;信息系统安全需求过程是否有业务部门参…

CTFshow—爆破

Web21 直接访问页面的话会弹窗需要输入密码验证&#xff0c;抓个包看看&#xff0c;发现是Authorization认证&#xff0c;Authorization请求头用于验证是否有从服务器访问所需数据的权限。 把Authorization后面的数据进行base64解码&#xff0c;就是我们刚刚输入的账号密码。 …

lin.security提权靶场渗透

声明&#xff01; 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下&#xff0c;如涉及侵权马上删除文章&#xff0c;笔记只是方便各位师傅的学习和探讨&#xff0c;文章所提到的网站以及内容&#xff0c;只做学习交流&#xff0c;其他均与本人以及泷羽sec团队无关&a…

【魅力golang】之-泛型

早期的golang版本是不支持泛型的&#xff0c;这对于从其它语言转型做go开发的程序员来说&#xff0c;非常不友好&#xff0c;自 1.18开始golang正式支持泛型&#xff0c;解决了开发者在编写通用代码时的需求。泛型通过类型参数允许函数和数据结构支持多种类型&#xff0c;从而提…

输入输出流 - cin, cout 的使用

引言 在编程中&#xff0c;输入和输出是与用户交互的重要方式。C 提供了标准输入输出流 cin 和 cout 来处理这些操作。本文将详细介绍如何使用 cin 和 cout 进行基本的输入和输出操作&#xff0c;并通过实例帮助读者更好地理解和掌握这些概念。 一、标准输出流 cout cout 是 …

数据结构(Java)——链表

1.概念及结构 链表是一种 物理存储结构上非连续 存储结构&#xff0c;数据元素的 逻辑顺序 是通过链表中的 引用链接 次序实现的 。 2.分类 链表的结构非常多样&#xff0c;以下情况组合起来就有 8 种链表结构&#xff1a; &#xff08;1&#xff09;单向或者双向 &#xff08;…

pdf有密码,如何实现pdf转换word?

PDF想要转换成其他格式&#xff0c;但是当我们将文件拖到PDF转换器进行转换的时候发现PDF文件带有密码怎么办&#xff1f;今天分享PDF有密码如何转换成word方法。 方法一、 PDF文件有两种密码&#xff0c;打开密码和限制编辑&#xff0c;如果是因为打开密码&#xff0c;建议使…

C++ 面向对象编程:继承中构造与析构函数顺序、继承中的同名属性访问、继承中的同名函数访问

在继承中&#xff0c;构造链中&#xff0c;先构造的后析构 见以下代码示例&#xff1a; #include<iostream> using namespace std;class animal1 { public:animal1() {cout << "animal1 构造" << endl;}~animal1() {cout << "animal1…

Springboot项目下面使用Vue3 + ElementPlus搭建侧边栏首页

Springboot项目下面、在html 页面 Vue3 ElementPlus 搭建侧边栏首页 1、效果图 2、static 文件下面的项目结构 3、代码实现 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>首页</title><…

Segment Routing Overview

大家觉得有意义和帮助记得及时关注和点赞!!! Segment Routing (SR) 是近年来网络领域的一项新技术&#xff0c;“segment” 在这里 指代网络隔离技术&#xff0c;例如 MPLS。如果快速回顾网络设计在过去几十年的 发展&#xff0c;我们会发现 SR 也许是正在形成的第三代网络设计…

【Rust自学】7.3. use关键字 Pt.1:use的使用与as关键字

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 7.3.1. use的作用 use的作用是将路径导入到当前作用域内。而引入的内容仍然是遵守私有性原则&#xff0c;也就是只有公共的部分引入进来才…

如何在Express.js中定义多个HTTP方法?

在 Express.js 中定义多个 HTTP 方法的路由&#xff0c;你可以选择几种不同的方式来实现。以下是两种主要的方法&#xff1a; 1. 使用 app.route() app.route() 提供了一种链式定义多个HTTP方法的能力&#xff0c;这有助于避免重复书写相同的路径。这种方式特别适合当同一个路…

讲一个自己写的 excel 转 html 的 java 工具

由来 这是一个从开发需求中诞生的工具&#xff0c;在工作中因为有一个 excel 转 html 的任务&#xff0c;又没找到一个专门做这方面的工具&#xff08;其他工具几乎都是简单的转换&#xff0c;无法还原 excel 样式&#xff0c;而且转换的宽高有点儿差距&#xff09;&#xff0…

Cursor提示词

你是一位经验丰富的项目经理&#xff0c;对于用户每一次提出的问题&#xff0c;都不急于编写代码&#xff0c;更多是通过深思熱虑、结构化的推理以产生高质量的回答&#xff0c;探索更多的可能方案&#xff0c;并从中寻找最佳方案。 约束 代码必须可以通过编译回答尽量使用中…