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 视图里查询不到复制信息。 数据复制流程区别:

openGauss/MogDB-3.0.0 dcf测试(非om安装)的更多相关文章

  1. Exploratory Testing 3.0 - 探索式测试

    最近看了James Bach新发的一篇文章,名为Exploratory Testing 3.0,文章链接:http://www.satisfice.com/blog/archives/1509 这篇文 ...

  2. Mysql 8.0 新特性测试

    Mysql 8.0 新特性测试 Role MySQL8.0版本添加了role特性,role是一种逻辑概念是权限的集合,可以将一个或以上的权限赋予给role,再将role赋给user.Oracle,Po ...

  3. [Linux] 非root安装GCC9.1.0

    说明 一般Linux系统自带或公共的GCC版本都很低,如目前我们的服务器版本的GCC还停留在gcc-4.9.3,而官网已到达9.2版本(下载http://ftp.gnu.org/gnu/gcc/) , ...

  4. Android 4.0.3 CTS 测试

    Android-CTS 4.0.3测试基本配置 1. Download CTS CTS的获取方式有两种: 1.1.由Google提供 1.1.1.打开浏览器输入连接: http://source.an ...

  5. sysbench 0.5 oltp测试笔记

    sysbench 0.5相比0.4版本的主要变化是,oltp测试结合了lua脚本,不需要修改源码,通过自定义lua脚本就可以实现不同业务类型的测试.同时0.5相比0.4需要消耗更多的cpu资源. 1. ...

  6. Node.js 4.0.0:灵雀云和 OneAPM 的整合测试

    关于 Node.js 4.0.0 稳定版刚刚推出,备受期待,迫不及待地想用它写点东西:此外,要把 Demo 放到 Internet 上得有一个公网 IP ,看到灵雀云挺不错的而且提供域名解析,简直业界 ...

  7. 【转】Android 4.0.3 CTS 测试

    原文网址:http://blog.csdn.net/zxm317122667/article/details/8508013 Android-CTS 4.0.3测试基本配置 1. Download C ...

  8. vue2.0父子组件以及非父子组件如何通信

    1.父组件传递数据给子组件 父组件数据如何传递给子组件呢?可以通过props属性来实现 父组件: <parent> <child :child-msg="msg" ...

  9. js中的0就是false,非0就是true及案例

    在处理js代码判断真假时经常会这么写. 但fun()可能得到的是数字0,这可不是表示的没有值,但是!js中的数字0就是false,非0就是true. 于是0就被无情的当做false了. 已经被这个坑过 ...

  10. 基于HDP3.0的基础测试

    1,TestDFSIO write和read的性能测试, 测试hadoop读写的速度.该测试为Hadoop自带的测试工具,位于$HADOOP_HOME/share/hadoop/mapreduce目录 ...

随机推荐

  1. 【Azure Redis 缓存】应用中出现连接Redis服务错误(production.ERROR: Connection refused)的排查步骤

    问题描述 在PHP应用中,连接Redis的方法报错  RedisException(code: 0): Connection refused at /data/Redis/Connectors/Php ...

  2. nmcli命令详解(创建热点,连接wifi,管理连接等)

    目录 简述 语法 比较有用的选项(OPTION) 对象 general对象(常规信息) 用途 语法 networking对象(整个网络) 用途 语法 命令示例 radio对象(无线开关) 用途 语法 ...

  3. 如何扩展Spark Catalyst,抓取spark sql 语句,通过listenerBus发送sql event以及编写自定义的Spark SQL引擎

    1.Spark Catalyst扩展点 Spark catalyst的扩展点在SPARK-18127中被引入,Spark用户可以在SQL处理的各个阶段扩展自定义实现,非常强大高效,是SparkSQL的 ...

  4. 导入Excel文件的时候公式为【#Ref!】应该怎么解决?

    前言 在我们使用Excel时,经常会遇到一个问题,就是导入Excel时公式显示为[#Ref!]的情况.这通常是因为公式中引用的单元格已被删除或对应的工作表被删除,导致原公式无法识别对应的参数而显示为[ ...

  5. Java //使用scanner从键盘输入多种类型

    1 //1.引入包名 import java.util.Scanner 2 //2.新建Scanner对象 3 Scanner scan = new Scanner(system.in); 4 //3 ...

  6. 青少年CTF训练平台-web部分随笔

    文章管理系统 首先打开环境(>ω<。人)ZZz♪♪ 既然要做题,就要做全面了,图上说了,既然有假flag我就先找出来: 假flag: 打开vmware,使用sqlmap进行处理: sqlm ...

  7. 掌握pandas cut函数,一键实现数据分类

    pandas中的cut函数可将一维数据按照给定的区间进行分组,并为每个值分配对应的标签.其主要功能是将连续的数值数据转化为离散的分组数据,方便进行分析和统计. 1. 数据准备 下面的示例中使用的数据采 ...

  8. config.baseUrl.dev 变量 转移到 .env.local 中

    config.baseUrl.dev 变量 转移到 .env.local 中 上下文 vue前端开发 问题 多人写代码的时候,会提交config.js里面的配置文件 解决方案 在根目录创建 .env. ...

  9. Nordic芯片调研简析

    一 公司简介: Nordic semiconductor是一家在奥斯证券交易所(OSX:NOD)上市的挪威无晶圆厂半导体公司,专门研究IoT的无线技术.Nordic的声誉建立在领先的技术和开发工具之上 ...

  10. Java使用Steam流对数组进行排序

    原文地址:Java使用Steam流对数组进行排序 - Stars-One的杂货小窝 简单记下笔记,不是啥难的东西 sorted()方法里传了一个比较器的接口 File file = new File( ...