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-jdbc-3.0.0.jar 是一个用于连接和操作 OpenGauss 数据库的 Java JDBC 驱动程序。OpenGauss 是一款开源的关系型数据库管理系统,它提供了高性能、高可靠性和高安全性的数据存储和管理解决方案。opengauss-jdbc-3.0.0.jar 包含了与 OpenGauss 数据库进行交互所需的类和方法,可以帮助开发人员轻松地在他们的 Java 应用程序中使用 OpenGauss 数据库。 使用 opengauss-jdbc-3.0.0.jar,开发人员可以通过 Java 语言与 OpenGauss 数据库进行通信,执行 SQL 查询、更新和删除操作,管理数据库连接和事务等。这个 JDBC 驱动程序还支持连接池和多种高级特性,可以帮助开发人员优化他们的应用程序性能并提高数据库的可用性。 为了使用 opengauss-jdbc-3.0.0.jar,开发人员需要在他们的 Java 项目中引入该 JAR 文件,并在代码中使用相应的类和方法来连接和操作 OpenGauss 数据库。对于有经验的开发人员来说,这并不复杂,他们可以很快地上手并开始利用 OpenGauss 数据库的优势来构建他们的应用程序。 总而言之,opengauss-jdbc-3.0.0.jar 是 OpenGauss 数据库的 Java JDBC 驱动程序,可以帮助开发人员在他们的 Java 应用程序中方便地使用 OpenGauss 数据库。通过这个开源的 JDBC 驱动程序,开发人员可以更加轻松地利用 OpenGauss 数据库的高性能和高可靠性,从而提升他们应用程序的质量和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值