首页 > 其他分享 >openGauss/MogDB-3.0.0 dcf测试(非om安装)

openGauss/MogDB-3.0.0 dcf测试(非om安装)

时间:2024-03-28 12:01:05浏览次数:14  
标签:... om dcf 节点 3.0 opengauss data id

openGauss/MogDB-3.0.0 dcf 测试(非 om 安装)
本文出处:https://www.modb.pro/db/402037

IP 地址

... LERDER
... FOLLOWER
... FOLLOWER
一、安装 openGauss
安装依赖包

yum install -y bzip2 bzip2-devel curl libaio
创建用户、组并创建目录

groupadd omma -g 20001
useradd omma -g 20001 -u 20001
echo "*@" | passwd --stdin omma

mkdir -p /opengauss/{soft,data}
tar xf openGauss-3.0.0-CentOS-64bit-all.tar.gz -C /opengauss/soft

配置环境变量

echo "export GAUSSHOME=/opengauss/soft" >> /home/omma/.bashrc &&
echo "export PATH=$GAUSSHOME/bin:$PATH " >> /home/omma/.bashrc &&
echo "export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH" >> /home/omma/.bashrc

解压数据库软件包

cd /opengauss/soft
tar -xf openGauss-3.0.0-CentOS-64bit.tar.bz2

初始化数据库 后续所有操作均使用 omma 用户,初始化需要加-c 参数,会生成 dcf 相关文件(注意 nodename)

gs_initdb --nodename=gaussdb1 -w *@ -D /opengauss/data/ -c

二、配置 dcf 参数
1.配置白名单
在 pg_hba.conf 里添加白名单

2.配置 dcf 参数与 replconninfo
因为在初始化时加了-c,会自动打开 enable_dcf 参数 在节点一的 postgresql.conf 里添加

port=21000
dcf_node_id = 1
dcf_ssl=off
dcf_data_path = '/opengauss/data/dcf_data'
dcf_log_path= '/opengauss/data/dcf_log'
dcf_config='[{"stream_id":1,"node_id":1,"ip":"...","port":21000,"role":"LEADER"},{"stream_id":1,"node_id":2,"ip":"...","port":21000,"role":"FOLLOWER"},{"stream_id":1,"node_id":3,"ip":"...","port":21000,"role":"FOLLOWER"}]'
replconninfo1 = 'localhost=... localport=21001 localheartbeatport=21005 localservice=21004 remotehost=... remoteport=21001 remoteheartbeatport=21005 remoteservice=21004'
replconninfo2 = 'localhost=... localport=21001 localheartbeatport=21005 localservice=21004 remotehost=... remoteport=21001 remoteheartbeatport=21005 remoteservice=21004'
类似得,在其他两个备机添加 节点二:

port=21000
dcf_node_id = 2
dcf_ssl=off
dcf_data_path = '/opengauss/data/dcf_data'
dcf_log_path= '/opengauss/data/dcf_log'
dcf_config='[{"stream_id":1,"node_id":1,"ip":"...","port":21000,"role":"LEADER"},{"stream_id":1,"node_id":2,"ip":"...","port":21000,"role":"FOLLOWER"},{"stream_id":1,"node_id":3,"ip":"...","port":21000,"role":"FOLLOWER"}]'
replconninfo1 = 'localhost=... localport=21001 localheartbeatport=21005 localservice=21004 remotehost=... remoteport=21001 remoteheartbeatport=21005 remoteservice=21004'
replconninfo2 = 'localhost=... localport=21001 localheartbeatport=21005 localservice=21004 remotehost=... remoteport=21001 remoteheartbeatport=21005 remoteservice=21004'
节点三:

port=21000
dcf_node_id = 3
dcf_ssl=off
dcf_data_path = '/opengauss/data/dcf_data'
dcf_log_path= '/opengauss/data/dcf_log'
dcf_config='[{"stream_id":1,"node_id":1,"ip":"...","port":21000,"role":"LEADER"},{"stream_id":1,"node_id":2,"ip":"...","port":21000,"role":"FOLLOWER"},{"stream_id":1,"node_id":3,"ip":"...","port":21000,"role":"FOLLOWER"}]'
replconninfo1 = 'localhost=... localport=21001 localheartbeatport=21005 localservice=21004 remotehost=... remoteport=21001 remoteheartbeatport=21005 remoteservice=21004'
replconninfo2 = 'localhost=... localport=21001 localheartbeatport=21005 localservice=21004 remotehost=... remoteport=21001 remoteheartbeatport=21005 remoteservice=21004'
三、启动 openGauss
全部以备机身份拉起

gs_ctl start -D /opengauss/data -M standby
手动设置存活节点为少数派模式运行,在主节点执行(即 LEADER)

gs_ctl setrunmode -D /opengauss/data -v 1 -x minority
集群其他节点主动重建拉起,在所有备节点执行(即 FOLLOWER) gs_ctl build -b full -D /opengauss/data ... 存活节点重回多数派,在主节点执行(即 LEADER)
gs_ctl setrunmode -D /opengauss/data -x normal
全部节点查看状态
gs_ctl query -D /opengauss/data

四、数据同步测试
主节点

[omma@localhost ~]$ gsql -p 21000 postgres -r
gsql ((openGauss 3.0.0 build 02c14696) compiled at 2022-04-01 18:12:34 commit 0 last mr )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

openGauss=# create table ysl (id int);
CREATE TABLE
openGauss=# insert into ysl values(1);
INSERT 0 1
openGauss=# select * from ysl;
id

1
(1 row)

备机

五、故障切换测试
主节点进行停数据库 gs_ctl stop -D /opengauss/data/

可以看到我们的 node2 变成了主节点,身份是 leader,而我们的原主变成了它的 follower

拉起原主库,以 standby 方式启动,查看当前状态,原主节点依旧是新主节点的 follower gs_ctl start -D /opengauss/data -M standby

六、switchover 切换测试
在节点 1 进行 switchover 操作,之前节点 1 为 follower,执行完切换之后,可以看到我们的节点 1 又重新恢复成主节点。

此时查看节点 2,也就是我们 switchover 之前的主节点,发现节点 2 已经 shutdown 了,需要手动再加入集群

总结:
1.openGauss-3.0.0 版本的 dcf 对于 switchover,在进行切换之后会把原主节点 shutdown,而不会重启为 follower,需要手动重启。 2.此外 dcf 不像 om 工具这种部署的主备,dcf 在主节点 pg_stat_replication 视图里查询不到复制信息。 数据复制流程区别:

标签:...,om,dcf,节点,3.0,opengauss,data,id
From: https://www.cnblogs.com/helloopenGauss/p/18101289

相关文章

  • 【平台开发】MTK6833——add harware command queue function in lk
    CQE实现主要步骤(参考协议)Hostsystem结构commandqueue任务结构:2.TheoryofOperation(操作理论)init(初始化)初始化,enableCQ配置CQCFGTaskDescriptorsize配置CQTDLBA(CommandQueuingTaskDescriptorListBaseAddress)和CQTDLBAU(CommandQueuingTaskDe......
  • DOM
    一.DOMDOM(DocumentObjectModel)编程就是使用document对象的API,完成对网页HTML文档进行动态修改,以实现网页数据和样式动态变化效果的编程document对象代表整个html文档,可用来访问页面中的所有元素,是最复杂的一个dom对象,可以说是学好dom编程的关键所在根......
  • GAMES01 Geometry
    生活中有许多曲面、曲线需要去表示。这里也有许多表示几何的方法:Implicitalgebraicsurfacelevelsetsdistancefunctions...Explicitpointcloudpolygonmeshsubdivision,NURBS...Implicit表达通常,隐式表达被定义为f(x,y,z)=0,其中f(x,y,z)是一个xyz的关系表达式......
  • 软件测试技术分享丨uiautomator2详细使用方法
    本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/53961.简介uiautomator2是一个自动化测试开源工具,仅支持android平台的自动化测试,其封装了谷歌自带的uiautomator2测试框架,可以运行在支持Python的任一系统上,目前版本为2.10.2开源库地址:https://github.com/ope......
  • 大白话讲解Promise(一)
    ES6Promise先拉出来遛遛复杂的概念先不讲,我们先简单粗暴地把Promise用一下,有个直观感受。那么第一个问题来了,Promise是什么玩意呢?是一个类?对象?数组?函数? 别猜了,直接打印出来看看吧,console.dir(Promise),就这么简单粗暴。这么一看就明白了,Promise是一个构造函数,自己身上有all......
  • ActiveMQ Artemis 系列| High Availability 主备模式(消息复制) 版本2.33.0
    一、ActiveMQArtemis介绍ApacheActiveMQArtemis是一个高性能的开源消息代理,它完全符合JavaMessageService(JMS)2.0规范,并支持多种通信协议,包括AMQP、MQTT、STOMP和OpenWire等。ActiveMQArtemis由ApacheSoftwareFoundation开发和维护,旨在提供可靠的消......
  • CommandBuffer使用1
    是用来干嘛的?在渲染的某个步骤,插入额外的渲染处理。比如:在渲染不透明物体前,渲染一个正方体;在渲染不透明物体后,渲染一个球体。CommandBuffer支持的可插入点还是很多的,加在Camera上时,支持的可插入点在CameraEvent枚举上;加在Light上时,支持的可插入点在LightEvent枚举上。 和G......
  • dump文件分析OOM及线程堆栈
    OutOfMemoryError(OOM)如果项目报错:OutOfMemoryError:Javaheapspace,说明堆内存空间(HeapSpace)中没有足够的空间来分配对象了。一旦发生OOM,系统有可能不可用,或者频繁重启。属于非常严重的问题。OOM的解决方法一:比较简单粗暴的一种做法,是增大堆内存空间。在项目启动时,......
  • LeetCode-9 Palindrome Number
    9.PalindromeNumber easyGivenaninteger x,return true if x isa palindrome ,and false otherwise. Example1:Input:x=121Output:trueExplanation:121readsas121fromlefttorightandfromrighttoleft.Example2:Input:x=-......
  • docker-运行tomcat服务
    环境说明linux系统版本:lsb_release-a  docker版本:docker-v  不同的操作系统以及软件版本,可能会遇到不一样的问题,一定要注意版本问题。 .1.tomcat镜像版本选择。进入docker官网搜索8-jdk8  自己选择的版本如下  dockerpulltomcat:8-jdk8 ......