当前位置: 首页 > news >正文

在 Docker 中搭建GBase 8s主备集群环境

本文介绍了如何在同一台机器上使用 Docker 容器搭建GBase 8s主备集群环境。

拉取镜像

拉取GBase 8s的最新镜像

docker pull liaosnet/gbase8s或者docker pull liaosnet/gbase8s:v8.8_3513x25_csdk_x64

注:在tag为v8.8_3513x25_csdk_x64及之后的版本中,可通过参数方式自动创建集群

拉取镜像成功后,可通过docker images查看拉取镜像的版本。

创建自定义网络

Docker安装后,默认会创建三种网络。bridge网络是默认情况下启动Docker容器的网络,为Docker安装时创建的桥接网络,每次Docker容器重启时,会按照顺序获取对应的IP地址,这会导致Docker重启后IP地址的改变。因此在搭建一些集群软件的时候,组件和组件之间需要进行网络通信,如果没有固定分配的IP,容器提供的服务将是不可靠的。每次主机重启时,如果容器没有固定IP,容器的IP将由启动顺序决定。这将导致主备集群容器之间访问异常,从而使得服务提供失败;因此需要将容器的IP固定下来。这里我们就需要创建自定义的docker的bridge网络。
使用docker network create来创建自定义网络,创建命令如下:

docker network create --subnet=172.20.0.0/24 --gateway=172.20.0.1 mynetwork

创建网络成功后,可通过docker network ls查看docker的网络。
数据库集群将使用到172.20.0.21及172.20.0.22这两个IP地址。

创建数据卷(可选)

可以创建数据卷用于持久化数据库的数据。

docker volume create gbase_pri_datadocker volume create gbase_hac_data

注:未指定数据卷目录将默认使用/var/lib/docker/volumes/数据卷名/_data 目录

创建数据卷成功后,可通过docker volume ls查看数据卷。
不创建数据卷,也可使用-v的映射目录的方式进行持久化数据。

创建主节点容器

使用docker run来创建启动主节点容器,启动命令如下:

docker run -d -p 19188:9088 \--network mynetwork --ip 172.20.0.21 \--name node01 --hostname node01 \--privileged=true \-v /data/gbase_pri:/opt/gbase/data \-e SERVERNAME=gbase01 \-e MODE=primary \-e LOCALIP=172.20.0.21 \-e PAIRENAME=gbase02 \-e PAIREIP=172.20.0.22 \-e USERPASS=GBase123$% \-e CPUS=1 \-e MEMS=2048 \-e ADTS=0 \liaosnet/gbase8s:v8.8_3513x25_csdk_x64

以上面的启动命令进行如下说明:

-p 19188:9088将容器中的数据库端口号9088映射到宿主机上的19088端口,应用可以通过宿主机IP:19088端口访问容器中的数据库服务。如需要外部访问,此参数必须配置。
--network mynetwork指定容器使用自建的桥接网络,名称为mynetwork。如需要使用集群,此参数必须配置。
--ip 172.20.0.21指定容器使用自建的桥接网络下的IP地址。如需要使用集群,此参数必须配置。
--name node01指定容器使用的名称。
--hostname node01指定容器内使用的主机名称。
--privileged=true指定容器在特权模式下运行。有-v参数时,此参数必须配置。
-v /data/gbase_pri:/opt/gbase/data指定挂载宿主目录/data/gbase_pri到容器内/opt/gbase/data数据库数据目录。这里也可以使用数据卷的方式,如 -v gbase_pri_data:/opt/gbase/data
-e SERVERNAME=gbase01指定数据库服务/实例名称。
-e MODE=primary指定容器内数据库为主节点。
-e LOCALIP=172.20.0.21指定本节点使用的IP地址。
-e PAIRENAME=gbase02指定集群对端节点数据库服务/实例名称。
-e PAIREIP=172.20.0.22指定集群对端节点使用的IP地址。
-e USERPASS=GBase123$%指定gbasedbt用户密码。
-e CPUS=1指定容器内数据库使用CPU个数。
-e MEMS=2048指定容器内数据库使用内存大小(单位MB)
-e ADTS=0指定容器内数据库是否开启审计。
liaosnet/gbase8s:v8.8_3513x25_csdk_x64指定容器使用的镜像名称及版本。此参数必须配置。

容器启动完成后,使用docker logs node01查看启动情况

docker logs node01

最后一行显示类似如下,表示已经启动到主节点

[2025-02-26 14:48:07] Change mode to PRIMARY.

创建备节点容器

使用docker run来创建启动备节点容器,启动命令如下:

docker run -d -p 19288:9088 \--network mynetwork --ip 172.20.0.22 \--name node02 --hostname node02 \--privileged=true \-v /data/gbase_sec:/opt/gbase/data \-e SERVERNAME=gbase02 \-e MODE=secondary \-e LOCALIP=172.20.0.22 \-e PAIRENAME=gbase01 \-e PAIREIP=172.20.0.21 \-e USERPASS=GBase123$% \-e CPUS=1 \-e MEMS=2048 \-e ADTS=0 \liaosnet/gbase8s:v8.8_3513x25_csdk_x64

以上面的启动命令,注意与主节点命令的区别。

容器启动完成后,使用docker logs node02查看启动情况

docker logs node02

最后一行显示类似如下,表示已经启动并加入到集群中成为备节点

[2025-02-26 14:49:13] Add datbase to cluster as secondary mode.

查看及进入容器

容器启动完导后,使用docker ps来查看容器启动情况,命令如下:

docker ps 

通过docker logs来查看容器的日志,查看启动情况

docker logs node01docker logs node02

通过docker exec进入容器,然后切换到gbasedbt用户下

docker exec -it node01 bash
su - gbasedbtdocker exec -it node02 bash
su - gbasedbt

容器内数据库集群主备切换

容器内的集群切换与常规集群切换相同(使用DRAUTO值为1,主节点保持模式),当主节点(node01)所在的容器关闭时,备节点(node02)所在的容器升为标准节点;当原主节点(node01)恢复后,node01将恢复成主节点,而node2降级为备节点。
使用docker stop关闭主节点(node01)

docker stop node01

使用docker logs 查看容器内状态

docker logs node02 -f

备节点(node02)数据库升级为标准模式(5),类似如下

[2025-02-26 14:49:50] DATABASE STATUS CHANGE! LAST STATUS: 2, CURRENT: 5.

重新启动原主节点(node01),而后查看数据库状态

docker start node01
docker logs node01 -f

原主节点(node01)重新升级为主用(5)

[2025-02-26 14:52:41] DATABASE STATUS CHANGE! LAST STATUS: 2, CURRENT: 5.

查看备节点(node02)上的数据库状态

docker logs node02 -f

备节点(node02)的状态降级为备用(2)

[2025-02-26 14:52:40] DATABASE STATUS CHANGE! LAST STATUS: 5, CURRENT: 2.

相关文章:

在 Docker 中搭建GBase 8s主备集群环境

本文介绍了如何在同一台机器上使用 Docker 容器搭建GBase 8s主备集群环境。 拉取镜像 拉取GBase 8s的最新镜像 docker pull liaosnet/gbase8s或者docker pull liaosnet/gbase8s:v8.8_3513x25_csdk_x64注:在tag为v8.8_3513x25_csdk_x64及之后的版本中,…...

【MySQL-数据类型】数据类型分类+数值类型+文本、二进制类型+String类型

一、数据类型分类 二、数值类型 1.bit类型 测试环境ubuntu 基本语法: bit[(M)]:位字段类型,M表示每个值的位数,范围从1~64;如果M被忽略,默认为1举例: create table testBit(id i…...

小谈java内存马

基础知识 (代码功底不好,就找ai优化了一下) Java内存马是一种利用Java虚拟机(JVM)动态特性(如类加载机制、反射技术等)在内存中注入恶意代码的攻击手段。它不需要在磁盘上写入文件&#xff0c…...

简单的二元语言模型bigram实现

内容总结归纳自视频:【珍藏】从头开始用代码构建GPT - 大神Andrej Karpathy 的“神经网络从Zero到Hero 系列”之七_哔哩哔哩_bilibili 项目:https://github.com/karpathy/ng-video-lecture Bigram模型是基于当前Token预测下一个Token的模型。例如&#x…...

【清华大学】实用DeepSeek赋能家庭教育 56页PDF文档完整版

清华大学-56页:实用DeepSeek赋能家庭教育.pdf https://pan.baidu.com/s/1BUweVDeG2M8-t0QaIs3LHQ?pwd1234 提取码: 1234 或 https://pan.quark.cn/s/8a9473493bb0 《实用DeepSeek赋能家庭教育》基于清华大学研究成果,系统阐述了DeepSeek人工智能技…...

黑洞如何阻止光子逃逸

虽然涉及广义相对论,但广义相对论说的是大质量物体对周围空间的影响,而不是说周围空间和空间中的光子之间的关系。也就是说,若讨论光子逃逸问题,则不必限定于大质量的前提,也就是说,若质量周围被扭曲的空间…...

1.4 单元测试与热部署

本次实战实现Spring Boot的单元测试与热部署功能。单元测试方面,通过JUnit和Mockito等工具,结合SpringBootTest注解,可以模拟真实环境对应用组件进行独立测试,验证逻辑正确性,提升代码质量。具体演示了HelloWorld01和H…...

window系统中的start命令详解

start 是 Windows 系统中用于启动新进程或打开新窗口来运行指定程序或命令的命令。以下是对 start 命令参数的详细解释: 基本语法 start ["title"] [/Dpath] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED] [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENO…...

AI编程工具节选

1、文心快码 百度基于文心大模型推出的一款智能编码助手, 官网地址:文心快码(Baidu Comate)更懂你的智能代码助手 2、通义灵码 阿里云出品的一款基于通义大模型的智能编码辅助工具, 官网地址:通义灵码_你的智能编码助手-阿里云 …...

正则表达式,idea,插件anyrule

​​​​package lx;import java.util.regex.Pattern;public class lxx {public static void main(String[] args) {//正则表达式//写一个电话号码的正则表达式String regex "1[3-9]\\d{9}";//第一个数字是1,第二个数字是3-9,后面跟着9个数字…...

原生iOS集成react-native (react-native 0.65+)

由于官方文档比较老,很多配置都不能用,集成的时候遇到很多坑,简单的整理一下 时间节点:2021年9月1日 本文主要提供一些配置信息以及错误信息解决方案,具体步骤可以参照官方文档 原版文档:https://reactnative.dev/docs…...

java错题总结

本篇文章用来记录学习javaSE以来的错题 解答:重载要求俩个方法的名字相同,但参数的类型或者个数不同,但是不要求返回类型相同,所以A正确。 重写还需要要求返回类型相同(呈现父子类关系也可以,但是属于特例&…...

【商城实战(10)】解锁商品信息录入与展示的技术密码

【商城实战】专栏重磅来袭!这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建,运用 uniapp、Element Plus、SpringBoot 搭建商城框架,到用户、商品、订单等核心模块开发,再到性能优化、安全加固、多端适配&#xf…...

2025年主流原型工具测评:墨刀、Axure、Figma、Sketch

2025年主流原型工具测评:墨刀、Axure、Figma、Sketch 要说2025年国内产品经理使用的主流原型设计工具,当然是墨刀、Axure、Figma和Sketch了,但是很多刚入行的产品经理不了解自己适合哪些工具,本文将从核心优势、局限短板、协作能…...

MDM 如何彻底改变医疗设备的远程管理

在现代医疗行业迅速发展的格局中,医院和诊所越来越依赖诸如医疗平板和移动工作站等移动设备。这些设备在提高工作效率和提供卓越的患者护理方面发挥着关键作用。然而,随着它们的广泛使用,也带来了一系列挑战,例如在不同地点确保数…...

OpenCV计算摄影学(18)平滑图像中的纹理区域同时保留边缘信息函数textureFlattening()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::textureFlattening 是 OpenCV 中用于图像处理的一个函数,旨在平滑图像中的纹理区域,同时保留边缘信息。该技术特别适…...

用DeepSeek学Android开发:Android初学者遇到的常见问题有哪些?如何解决?

答案来自 DeepSeek Q: Android初学者遇到的常见问题有哪些?如何解决? A: Android初学者在学习过程中常会遇到以下问题及对应的解决方法,按类别整理如下: 一、开发环境问题 Android Studio安装或配置问题 问题:安装失…...

springboot 集成 MongoDB 基础篇

demo架构: Book Controller: package com.zy.controller;import com.zy.entity.Book; import com.zy.service.MongoDbService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.Get…...

大白话html语义化标签优势与应用场景

大白话html语义化标签优势与应用场景 大白话解释 语义化标签就是那些名字能让人一看就大概知道它是用来做什么的标签。以前我们经常用<div>来做各种布局&#xff0c;但是<div>本身没有什么实际的含义&#xff0c;就像一个没有名字的盒子。而语义化标签就像是有名…...

恶劣天候三维目标检测论文列表整理

恶劣天候三维目标检测论文列表 图摘自Kradar &#x1f3e0; 介绍 Hi&#xff0c;这是有关恶劣天气下三维目标检测的论文列表。主要是来源于近3年研究过程中认为有意义的文章。希望能为新入门的研究者提供一些帮助。 可能比较简陋&#xff0c;存在一定的遗漏&#xff0c;欢迎…...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

地震勘探——干扰波识别、井中地震时距曲线特点

目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波&#xff1a;可以用来解决所提出的地质任务的波&#xff1b;干扰波&#xff1a;所有妨碍辨认、追踪有效波的其他波。 地震勘探中&#xff0c;有效波和干扰波是相对的。例如&#xff0c;在反射波…...

VB.net复制Ntag213卡写入UID

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...