openGauss/MogDB-3.0.0 dcf测试(非om安装)
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安装)的更多相关文章
- Exploratory Testing 3.0 - 探索式测试
最近看了James Bach新发的一篇文章,名为Exploratory Testing 3.0,文章链接:http://www.satisfice.com/blog/archives/1509 这篇文 ...
- Mysql 8.0 新特性测试
Mysql 8.0 新特性测试 Role MySQL8.0版本添加了role特性,role是一种逻辑概念是权限的集合,可以将一个或以上的权限赋予给role,再将role赋给user.Oracle,Po ...
- [Linux] 非root安装GCC9.1.0
说明 一般Linux系统自带或公共的GCC版本都很低,如目前我们的服务器版本的GCC还停留在gcc-4.9.3,而官网已到达9.2版本(下载http://ftp.gnu.org/gnu/gcc/) , ...
- Android 4.0.3 CTS 测试
Android-CTS 4.0.3测试基本配置 1. Download CTS CTS的获取方式有两种: 1.1.由Google提供 1.1.1.打开浏览器输入连接: http://source.an ...
- sysbench 0.5 oltp测试笔记
sysbench 0.5相比0.4版本的主要变化是,oltp测试结合了lua脚本,不需要修改源码,通过自定义lua脚本就可以实现不同业务类型的测试.同时0.5相比0.4需要消耗更多的cpu资源. 1. ...
- Node.js 4.0.0:灵雀云和 OneAPM 的整合测试
关于 Node.js 4.0.0 稳定版刚刚推出,备受期待,迫不及待地想用它写点东西:此外,要把 Demo 放到 Internet 上得有一个公网 IP ,看到灵雀云挺不错的而且提供域名解析,简直业界 ...
- 【转】Android 4.0.3 CTS 测试
原文网址:http://blog.csdn.net/zxm317122667/article/details/8508013 Android-CTS 4.0.3测试基本配置 1. Download C ...
- vue2.0父子组件以及非父子组件如何通信
1.父组件传递数据给子组件 父组件数据如何传递给子组件呢?可以通过props属性来实现 父组件: <parent> <child :child-msg="msg" ...
- js中的0就是false,非0就是true及案例
在处理js代码判断真假时经常会这么写. 但fun()可能得到的是数字0,这可不是表示的没有值,但是!js中的数字0就是false,非0就是true. 于是0就被无情的当做false了. 已经被这个坑过 ...
- 基于HDP3.0的基础测试
1,TestDFSIO write和read的性能测试, 测试hadoop读写的速度.该测试为Hadoop自带的测试工具,位于$HADOOP_HOME/share/hadoop/mapreduce目录 ...
随机推荐
- 【Azure 事件中心】如何查看事件中心的消息中具体报文内容呢?
问题描述 如何查看事件中心的消息中具体报文内容呢? 问题解答 正常情况是通过 Event Hub 的消费端获取消息进行处理查看,但是没有客户端代码的情况下,也可以通过微软的默认客户端Service B ...
- Java 理解“万事万物皆对象”+ 匿名对象的使用
1 /** 2 * 3 * @Description 4 * @author Bytezero·zhenglei! Email:420498246@qq.com 5 * @version 6 * @d ...
- Codeforces Round 916 (Div. 3)(A~E2)
A 统计一下每个字母的出现次数然后输出即可 #include <bits/stdc++.h> #define rep(i,a,b) for(register int i = (a); i ...
- JS-1基本语法
初识JavaScript JavaScript是一种运行在客户端的脚本语言 脚本语言:不需要编译,运行过程中由js解释器(js引擎)逐行来进行解释并执行 现在也可以基于Node.js技术进行服务器编程 ...
- ansible-vault 教程
基本使用 在编写playbook时,可能会涉及到一些敏感的数据,比如密码,当这些敏感数据以明文的方式存储在playbook中时,可能是不能被接受的,那么我们该怎么办呢?ansible官方已经考虑到了这 ...
- 基于RocketMQ实现分布式事务
背景 在一个微服务架构的项目中,一个业务操作可能涉及到多个服务,这些服务往往是独立部署,构成一个个独立的系统.这种分布式的系统架构往往面临着分布式事务的问题.为了保证系统数据的一致性,我们需要确保这些 ...
- 玉蟾宫(悬线dp)
求最大子矩阵一般用采用悬线法 (包好用的牢底) 悬线法: [ 以这道题为例,我们将R称为障碍格子,将F称为非障碍格子] 我们选择任意一个非障碍格子,引出三条直线:左直 右直 上直 随后从这个点出发,分 ...
- HUAWEI WATCH GT3手表芯片传感器简析
一 这里梳理一下华为手表GT3所使用的芯片 芯片A: BES2500L 恒玄BES2500L智能手表SoC,集存储.音频.连接为一体,集成BT5.2双模蓝牙,可支持BLE数据传输.蓝牙通话和音乐播放功 ...
- ESP8266 下安装esptool.py并使用esptool刷机神助手
一 前记 在使用ESP8266模块时,通常会用到一些刷机软件.官方提供了nodemcu_flasher.ESPFlashDownloadTool.ESP8266Flasher等下载工具,但是缺少更底层 ...
- 译:使用现代的 Node.js 构建简单的CLI工具
原文地址: https://evertpot.com/node-changelog-cli-tool/ 作者: Evert Pot 发布时间:2023-02-13 只使用 Node.js 的标准库,不 ...