在docker中模拟不同主机快速搭建GBase 8cV5集群环境

0    76    2

Tags:

👉 本文共约4443个字,系统预计阅读时间或需17分钟。

环境准备

申请环境

宿主机:32g内存,8g swap,需要保证每台机器至少4g内存+8g swap,否则不能安装。。。

IPhostname角色
172.72.3.30gbase8c_1gha_server(高可用服务)、dcs(分布式配置存储)、gtm(全局事务管理)、coordinator(协调器)
172.72.3.31gbase8c_2datanode(数据节点) 1
172.72.3.32gbase8c_3datanode(数据节点) 2

在docker中模拟不同主机快速搭建GBase 8cV5集群环境

名词角色功能配置方式
GHA Server高可用(highavailability)管理器管理整个集群各节点的高可用状态,类似于patroni主备高可用架,主备之间可以配置同步或异步方式
DCS/HA Center集群状态管理器存储各个节点的高可用状态,负责在故障情况下判断集群各个节点状态。采用Raft的复制协议
GTM全局事务管理器(Global TransactionManager)负责生成并维护全局时间戳,保证集群数据一致性主备高可用架构,主备之间可以配置同步或异步方式
CN/Coordinator协调器对外提供接口,负责进行SQL解析和优化、生成执行计划,并协调数据节点进行数据查询和写入。采用完全对等的部署方式
DN/Datanode数据节点用于处理存储本节点相关的元数据以及所在的业务数据的分片。主备高可用架构,主备之间可以配置同步或异步方式

环境配置

增加swap空间并调整swap配置

若内存为4g或更小,则需要增加swap空间,并增加swappiness参数,否则内存耗尽,系统会很卡,导致集群状态不对:

每台机器内存至少4G,且需要配置swap 8G,否则会报错“Failed to initialize the memory protect for g_instance.attr.attr_storage.cstore_buffers (1024 Mbytes) or shared memory (4496 Mbytes) is larger.” 、“could not create shared memory segment: Cannot allocate memory”、“This error usually means that openGauss's request for a shared memory segment exceeded available memory or swap space, or exceeded your kernel's SHMALL parameter. You can either reduce the request size or reconfigure the kernel with larger SHMALL. To reduce the request size (currently 1841225728 bytes), reduce openGauss's shared memory usage, perhaps by reducing shared_buffers.”

也可以修改参数:

所有节点安装依赖包

修改主机名

注意修改三个节点的 IP 地址,这里我使用如下三个 IP,并分别修改 hostname。

docker的话可以不用管。

修改内核参数

若kernel.shmmax配置过小,会报共享内存相关的错误:

FATAL: could not create shared memory segment: Invalid argument
DETAIL: Failed system call was shmget(key=6666001, size=4714683328, 03600).
HINT: This error usually means that openGauss's request for a shared memory segment exceeded your kernel's SHMMAX parameter. You can either reduce the request size or reconfigure the kernel with larger SHMMAX. To reduce the request size (currently 4714683328 bytes), reduce openGauss's shared memory usage, perhaps by reducing shared_buffers.
If the request size is already small, it's possible that it is less than your kernel's SHMMIN parameter, in which case raising the request size or reconfiguring SHMMIN is called for.
The openGauss documentation contains more information about shared memory configuration.

所有节点创建用户

配置互信

以root用户只在主节点操作:

解压安装包

只在主节点操作,解压安装包 GBase8cV5_S3.0.0B76_centos7.8_x86_64.tar.gz

示例:

开始安装

只在主节点操作。

编辑集群部署文件 gbase8c.yml

  • gbase.yml 修改如下

执行安装脚本

注释:

-c 参数:数据库名称,默认 gbase
-p 参数:配置文件路径,默认 /home/gbase

-f参数:若集群已存在,可以强制安装

安装日志位置

执行时间约 5 分钟,安装结束后,脚本会提示:

集群安装成功!

状态检查

执行

结果如下,说明集群安装正常,数据服务启动中

数据库启停

停止数据库服务

启动数据库服务

连接和 SQL 测试

在主节点 gbase8c_1 执行 $ gsql -d postgres -p 5432,出现 postgres=# 操作符说明客户端工具 gsql 成功连接 GBase 8c 数据库。

卸载集群

在主节点(172.72.3.30)执行以下命令

环境变量

安装脚本会自动帮我们配置,无需我们手动配置。

修改密码

配置远程登录

dbeaver 客户端工具 连接数据库时,应先将以下数据库参数 进行修改:

gbase 8c修改参数的命令

安装错误解决

gaussDB state is Coredump

原因:CPU不支持。。。

请检查是否含有avx、rdtscp指令集,若没有则不能安装。。。

AVX(Advanced Vector Extensions)是一组x86 CPU指令集扩展,用于加速向量和矩阵操作。AVX指令集在Intel Sandy Bridge微架构的CPU中首次引入,可用于执行单指令多数据(SIMD)计算。 AVX指令集扩展增加了256位和128位宽的SIMD指令,用于加速浮点运算、整数运算和逻辑运算。这些指令可用于执行并行计算,因为它们能够在一次操作中处理多个数据元素,而不是逐个处理。这使得AVX指令集非常适合执行科学计算、图形处理、媒体处理和数据分析等计算密集型任务。 AVX指令集扩展还提供了一些新的高级指令,例如FMA指令(Fused Multiply-Add),可以将一个乘法和一个加法操作结合起来,从而提高计算速度。另外,AVX指令集还增加了一些新的控制指令,用于支持更灵活的条件分支和循环结构。 总之,AVX指令集扩展可以大幅提高计算机系统的运算速度,特别是对于需要大量浮点运算和向量处理的应用程序来说。

rdtscp 是一个 x86 CPU 指令,它的作用是读取一个 64 位的时间戳计数器(TSC)的值,并且返回当前的处理器周期计数(即时钟周期数)和时间戳计数器的值。

时间戳计数器是一个单调递增的计数器,它记录了 CPU 自从上电以来所经过的时钟周期数。它通常被用来测量代码执行时间、性能分析和同步等方面。而 rdtscp 指令可以在多核 CPU 环境下提供一致的计数器值,这对于跨核心的时间测量和调试是非常有用的。

需要注意的是,rdtscp 指令可能会受到时钟频率调整和 CPU 切换等因素的影响,因此在一些特殊情况下,它可能不够精确。

这个问题在opengauss、Gaussdb和GBase 8c中都存在。。。。。

不支持的CPU列表:

支持的CPU列表:

解决:若是公司的虚拟化平台,那么请联系虚拟化平台管理员,让他协助解决。需要修改参数,然后重启服务器的。

error while loading shared libraries: libcjson.so.1

安装完成后需要退出gbase用户,然后重新进入一次 gbase 用户,或者重新引入环境变量,否则无法找到二进制文件或者类包。

Current gtm center group num 1 is out of range [0, 0]

原因:和底层的虚拟化环境有关系,因为我用的是wsl2环境,所以报错,若使用VMware workstation或其它环境安装不报错。

Rpc request failed:dn1_1 save node info

原因:系统资源不足,可以尝试增加内存,或减小shared_buffers参数,然后重启集群。

OPENSSL_1_1_1 not defined in file libcrypto.so.1.1

原因:openssl版本太高导致,需要使用yum安装回默认版本,请参考:https://www.xmmup.com/opensslshengji.html

本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!
在docker中模拟不同主机快速搭建GBase 8cV5集群环境后续精彩内容已被小麦苗无情隐藏,请输入验证码解锁本站所有文章
验证码:
请关注本站微信公众号,回复“小麦苗博客”,获取验证码。在微信里搜索“DB宝”或者“www_xmmup_com”或者微信扫描右侧二维码都可以关注本站微信公众号。

标签:

Avatar photo

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部