GaussDB的数种形态

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的用户感受到了各种不便,也会有各种吐槽。我想国产数据库的开发者应该擅长倾听这些吐槽,并有义务让这种不便尽快变成方便。

本文作者:白鳝的洞穴    

     

相关推荐

  1. mysql导出数据形式

    2024-06-09 06:46:05       20 阅读
  2. GaussDB 数据库事务管理

    2024-06-09 06:46:05       8 阅读
  3. 递归

    2024-06-09 06:46:05       16 阅读
  4. C++:构造函数赋初值形式

    2024-06-09 06:46:05       19 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-09 06:46:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-09 06:46:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-09 06:46:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-09 06:46:05       18 阅读

热门阅读

  1. 【深度学习基础】模型文件介绍

    2024-06-09 06:46:05       9 阅读
  2. 用旧安卓手机当 linux 开发机

    2024-06-09 06:46:05       13 阅读
  3. LeetCode题练习与总结:三角形最小路径和--120

    2024-06-09 06:46:05       9 阅读
  4. Sony前端连接功放:深度解析与实用指南

    2024-06-09 06:46:05       12 阅读
  5. Linux服务器配置一个简单的DNS

    2024-06-09 06:46:05       7 阅读
  6. 【 k8s 标签与选择器 】

    2024-06-09 06:46:05       11 阅读
  7. adb 删除文件或文件夹

    2024-06-09 06:46:05       7 阅读
  8. 字母异位词分组(charyw)

    2024-06-09 06:46:05       12 阅读