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

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

时间:2024-04-01 14:45:48浏览次数: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/18108366

相关文章

  • COMP 2012食品订购系统实现办法
    P2012课业1:食品订购系统,2024年3月29日,23:23COMP2012面向对象编程与数据结构课业1食品订购系统来源:DALL-E介绍在本课业中,我们将结合面向对象编程(OOP)的概念并利用C++构建了一个订餐系统。我们将利用权力OOP概念,如类和对象,买家和菜单。这些类将封装相关数据和功能,确保正确执行。此......
  • 【OpenREALM学习笔记:4】geometry_msgs和tf在项目中的不同作用
    geometry_msgsgeometry_msgs是ROS中用于表示几何信息的消息包。它包含了多种消息类型,用于描述点、向量、变换、姿态(位置和方向)、形状等几何概念。geometry_msgs中的消息类型通常用于在ROS节点之间传递几何数据,例如:geometry_msgs/Point:表示三维空间中的一个点。geometry_......
  • Error in callback for immediate watcher “chartsData“: “Error: Initialize fail
     在使用echarts提示dom未找到,原因就是当我们封装了echarts组件初始化传值时通常会造成过早调用,也就是在数据还未处理完就已经调用init函数进行初始化,此时dom还未挂载成功,就会报这个错,这里解决可以使用nextTick()函数在初始化时延时调用;this.$nextTick(()=>{this.draw......
  • 从零开始 使用OMNET++结合VEINS,INET和SUMO的联合仿真
    背景知识当我们探索未来的交通系统和智能交通解决方案时,车辆到一切(Vehicle-to-Everything,V2X)通信技术显得尤为重要。V2X是指在车辆与车辆(V2V)、车辆与基础设施(V2I)、车辆与行人(V2P)以及车辆与网络(V2N)之间进行的通信。这种技术能够提高道路安全,优化交通流量,减少拥堵,提升驾驶体验......
  • Someone important to me
    ......
  • Linux服务器运行tomcat
    环境说明linux系统版本:lsb_release-a  JDK版本:1.8  .1.tomcat下载。官网如下https://tomcat.apache.org/ 获取下载地址https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.100/bin/apache-tomcat-8.5.100.tar.gz使用wget命令下载wgethttps://dlcdn.apache.or......
  • hadoop3.0高可用分布式集群安装
    hadoop高可用,依赖于zookeeper。用于生产环境,企业部署必须的模式. 1.部署环境规划1.1.虚拟机及hadoop角色划分主机名称namenodedatanoderesourcemanagernodemanagerzkfcjournalnodezookeepermasterslave1slave21.2.软件......
  • import resolve from '@rollup/plugin-node-resolve' 这个包的作用是什么
    importresolvefrom'@rollup/plugin-node-resolve'这行代码引入了Rollup.js的一个插件——@rollup/plugin-node-resolve。这个插件在使用Rollup进行模块打包时起到至关重要的作用,具体作用如下:**1.Node.js模块解析:@rollup/plugin-node-resolve插件的主要职责是帮助Ro......
  • 从虚拟dom知识无痛深入vue与react的原理
     我们都知道像vue、react都有用到虚拟dom,那么虚拟dom到底是什么?框架为什么不直接操作真实dom而要在中间要引入虚拟dom呢?vue和react的虚拟dom又有什么异同呢?我们就从虚拟dom开始讲起,再来逐步引入讲解vue与react的部分原理及其异同,这里会顺便讲解到数据驱动视图及视图驱动数据,......
  • 解决 java.sql.SQLException:null,message from Server:"Host 'xxx' is not allowed t
    问题:url中机器地址写127.0.0.1或是localhost时不会发生,但写真实IP就出现此异常,即使从本机运行也会出此错。解决方法:在MySQL控制台,执行以下命令:mysql>usemysql;Databasechangedmysql>updateusersethost='%'whereuser='root';QueryOK,1rowaffected(0.04sec)......