当前位置: 首页 > 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;欢迎…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器

第一章 引言&#xff1a;语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域&#xff0c;文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量&#xff0c;支撑着搜索引擎、推荐系统、…...

《通信之道——从微积分到 5G》读书总结

第1章 绪 论 1.1 这是一本什么样的书 通信技术&#xff0c;说到底就是数学。 那些最基础、最本质的部分。 1.2 什么是通信 通信 发送方 接收方 承载信息的信号 解调出其中承载的信息 信息在发送方那里被加工成信号&#xff08;调制&#xff09; 把信息从信号中抽取出来&am…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

EtherNet/IP转DeviceNet协议网关详解

一&#xff0c;设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络&#xff0c;本网关连接到EtherNet/IP总线中做为从站使用&#xff0c;连接到DeviceNet总线中做为从站使用。 在自动…...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式&#xff1a;dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一&#xff0c;腐蚀跟膨胀属于反向操作&#xff0c;膨胀是把图像图像变大&#xff0c;而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

springboot整合VUE之在线教育管理系统简介

可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生&#xff0c;小白用户&#xff0c;想学习知识的 有点基础&#xff0c;想要通过项…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...