opengauss 在一个机器上搭建主备集群

news2024/11/23 15:51:36

项目上需要高斯主备集群,试了好几个版本。最后搭建出一个在一个机器上的主备。用做测试,记录一下。

下载安装包

  1. 从openGauss开源社区下载对应平台的安装包。

    a. 通过软件包 | openGauss登录openGauss开源社区,选择3.1.0版本对应平台极简版安装包。

 

                b. 单击“下载”。

   2.检查安装包。

解压安装包,检查安装目录及文件是否齐全。在安装包所在目录执行以下命令,并将软件包重命名去掉后面的bz2后缀(不然解压不了)

tar -xvf openGauss-x.x.x-openEuler-64bit.tar

查看解压的结果

输入:ls -lb

结果:
total 90296
drwx------ 3 root root     4096 Mar 31 21:18 bin
drwx------ 3 root root     4096 Mar 31 21:18 etc
drwx------ 3 root root     4096 Mar 31 21:18 include
drwx------ 4 root root     4096 Mar 31 21:18 jre
drwx------ 5 root root     4096 Mar 31 21:18 lib
-rw------- 1 root root 92427499 Apr  1 09:43 openGauss-x.x.x-openEuler-64bit.tar.bz2
drwx------ 5 root root     4096 Mar 31 21:18 share
drwx------ 2 root root     4096 Mar 31 21:18 simpleInstall
-rw------- 1 root root       32 Mar 31 21:18 version.cfg

安装高斯需要的软件环境要求(大部分centos7.8都可以满足)

 环境变量配置

目前仅支持在防火墙关闭的状态下进行安装。

  1. 修改/etc/selinux/config文件中的“SELINUX”值为“disabled”。

    a. 使用VIM打开config文件。

    vim /etc/selinux/config
    

    b. 修改“SELINUX”的值“disabled”,执行**:wq**保存并退出修改。

    SELINUX=disabled
    
  2. 重新启动操作系统。

    reboot
    
  3. 检查防火墙是否关闭。

    systemctl status firewalld
    

    若防火墙状态显示为active (running),则表示防火墙未关闭,请执行4;

    若防火墙状态显示为inactive (dead),则无需再关闭防火墙。

  4. 关闭防火墙。

    systemctl disable firewalld.service
    systemctl stop firewalld.service
    

设置字符集参数

将各数据库节点的字符集设置为相同的字符集,可以在/etc/profile文件中添加“export LANG=XXX”(XXX为Unicode编码)。

vim /etc/profile

(可选)关闭swap交换内存

关闭swap交换内存是为了保障数据库的访问性能,避免把数据库的缓冲区内存淘汰到磁盘上。 如果服务器内存比较小,内存过载时,可打开swap交换内存保障正常运行。

在各数据库节点上,使用swapoff -a命令将交换内存关闭。

swapoff -a

关闭RemoveIPC

在各数据库节点上,关闭RemoveIPC。CentOS操作系统默认为关闭,可以跳过该步骤。

  1. 修改/etc/systemd/logind.conf文件中的“RemoveIPC”值为“no”。

    a. 使用VIM打开logind.conf文件。

    vim  /etc/systemd/logind.conf
    

    b. 修改“RemoveIPC”值为“no”。

    RemoveIPC=no
    
  2. 修改/usr/lib/systemd/system/systemd-logind.service文件中的“RemoveIPC”值为“no”。

    a. 使用VIM打开systemd-logind.service文件。

    vim /usr/lib/systemd/system/systemd-logind.service
    

    b. 修改“RemoveIPC”值为“no”。

    RemoveIPC=no
    
  3. 重新加载配置参数。

    systemctl daemon-reload
    systemctl restart systemd-logind
    
  4. 检查修改是否生效。

    loginctl show-session | grep RemoveIPC
    systemctl show systemd-logind | grep RemoveIPC

创建用户与组(重要,后续安装和查询都要用这个用户)

1.创建组 

groupadd dbGroup

2.创建用户(gauss)并指定组

 useradd -m -g dbGroup omm

节点安装

执行命令切换到刚才创建的omm用户

su - omm
  1. 假定解压包的路径为/opt/software/openGauss,进入解压后目录下的simpleInstall。

    cd /opt/software/openGauss/simpleInstall
    
  2. 执行install.sh脚本安装openGauss。

    sh install.sh  -w xxxx  --multinode

 说明:

  • -w:初始化数据库密码(gs_initdb指定),安全需要必须设置。
  • -p:指定的openGauss主节点端口号,默认5432。备节点端口号会使用主端口号+200,默认5632。
  • –multinode:用来区分是单节点还是一主一备安装。
  • -h|–help:打印使用说明。
  • 安装后,数据库的主节点名称为nodename1,备节点名称为nodename2。
  • 安装后,数据库主节点目录安装路径/opt/software/openGauss/data/master,备节点目录安装路径为/opt/software/openGauss/data/slave,其中/opt/software/openGauss为解压包路径,data/master(slave)为新创建的数据库节点目录。

 

安装执行完成后,使用ps和gs_ctl查看进程是否正常。

ps ux | grep gaussdb
gs_ctl query -D /opt/software/openGauss/data/master

执行ps命令,显示类似如下信息:

omm  4879 11.8 1.1 2082452 373832 pts/0  Sl   14:26   8:29 /opt/software/openGauss/bin/gaussdb -D /opt/software/openGauss/data/master -M primary

omm  5083  1.1  0.9 1819988 327200 pts/0  Sl   14:26   0:49 /opt/software/openGauss/bin/gaussdb -D /opt/software/openGauss/data/slave -M standby

omm      20377  0.0  0.0 119880  1216 pts/0    S+   15:37   0:00 grep --color=auto gaussdb

执行gs_ctl命令,显示类似如下信息:

gs_ctl query ,datadir is /opt/software/openGauss/data/master
HA state:
    local_role                     : Primary
    static_connections             : 1
    db_state                       : Normal
    detail_information             : Normal

Senders info:
    sender_pid                     : 5165
    local_role                     : Primary
    peer_role                      : Standby
    peer_state                     : Normal
    state                          : Streaming
    sender_sent_location           : 0/4005148
    sender_write_location          : 0/4005148
    sender_flush_location          : 0/4005148
    sender_replay_location         : 0/4005148
    receiver_received_location     : 0/4005148
    receiver_write_location        : 0/4005148
    receiver_flush_location        : 0/4005148
    receiver_replay_location       : 0/4005148
    sync_percent                   : 100%
    sync_state                     : Sync
    sync_priority                  : 1
    sync_most_available            : Off
    channel                        : 10.244.44.52:27001-->10.244.44.52:35912

 Receiver info:
No information 

修改IP绑定和权限,链接navicat

进入主库配置文件修改IP验证

vim /opt/software/openGauss/data/master/pg_hba.conf

修改验证权限,添加下面这行

host    all             all             0.0.0.0/0               sha256

vim /opt/software/openGauss/data/master/postgresql.conf

修改ip绑定和验证方式

搜索 #listen_addresses 将注释删除,并将单引号中的值改为 * ,

搜索 max_connections(最大连接数) 将值修改为1200,如图:

搜索password_encryption_type(密码存储类型) 将值修改为 1,如图:

 进入bin目录重启服务器主库

gs_ctl restart -D /opt/software/openGauss/data/master -M primary

重启成功后提示

执行命令进入主库

gsql -d postgres -p 5432

 输入\du查询用户

 执行命令新增用户

CREATE user root WITH SYSADMIN password "1qaz@WSX";

新增成功之后输入\q退出主库。

使用navicat尝试链接

链接成功

主从同步验证

用navicat新建一个模式,在模式中新建一个表。建表结束之后进入从库验证。

cd /opt/software/openGauss/bin
#进入从库,端口5632
gsql -d postgres -p 5632
#切换数据库到同步过来的新库
\c lztest

输入\dn查看同步过来的模式

 

运行sql查询任意一个数据表:

格式: select * from 模式名.表名

主从库数据相同。验证完毕

至此,opengauss主从的下载、搭建、访问、验证执行完毕 。

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/766600.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【网络可用性】

网络可用性 Availability defined in a service-level agreement (SLA) between a network operator (carrier) and a customer. 关于SLA,可参考 思科Service Level Management: Best Practices White Paper 可用性对应的停机时间 转载于 https://blog.csdn.net/a…

Spark(27):Spark任务调度机制

目录 0. 相关文章链接 1. Spark任务调度概述 2. Spark Stage级调度 3. Spark Task级调度 3.1. 调度策略 3.1.1. FIFO调度策略 3.1.2. FAIR调度策略 3.2. 本地化调度 3.3. 失败重试与黑名单机制 0. 相关文章链接 Spark文章汇总 1. Spark任务调度概述 在生产环境下&am…

C#为什么不能成为大学编程入门的首选?

大学编程入门不以C#作为首选的原因有多个因素。虽然C#是一种功能强大的编程语言,但在大学编程入门阶段,通常会选择其他语言作为首选,以下是一些可能的原因: 我这里刚好有嵌入式、单片机、plc的资料需要可以私我或在评论区扣个6 …

投个 3D 冰壶,上班玩一玩 | 物理引擎

本篇文章将介绍如何使用物理引擎和图扑 3D 可视化技术来呈现冰壶运动的模拟。 Oimo.js 物理引擎 Oimo.js 是一个轻量级的物理引擎,它使用 JavaScript 语言编写,并且基于 OimoPhysics 引擎进行了改进和优化。Oimo.js 核心库只有 150K ,专门用…

抢滩“返校季”!这些品类拉开爆单之旅!

“返校季”作为仅次于“黑五网一”的购物旺季。在开学的前四到六周,家长与学生就会开始陆续采购返校季所需的物品,从七月下旬一直持续到九月,都将是“返校季”的购物高峰。今年的“返校季”又将呈现什么样的消费趋势?消费者的消费…

Julia变量作用域问题

变量作用域问题 1.软作用域与硬作用域 1.1软作用域 软作用域是指在代码块内部定义的变量,如果外部有同名变量,则内部变量会被优先使用,即“遮蔽”外部的同名变量,而不影响外部变量。 1.2硬作用域 硬作用域是指在代码块内部定…

DataGrip使用随笔

由于公司不让使用NAVIcat,顾用datagrip作为替代软件 1.下载和安装 从官网下载安装包https://download.jetbrains.com.cn/datagrip/datagrip-2023.1.2.exe后,选择安装位置并试用 2.链接数据库 需要先新建个项目存储所有的db连接信息,然后选…

安卓通过adb pull和adb push 手机与电脑之间传输文件

1.可以参考这篇文章 https://www.cnblogs.com/hhddcpp/p/4247923.html2.根据上面的文章,我做了如下修改 //设置/system为可读写: adb remount //复制手机中的文件到电脑中。需要在电脑中新建一个文件夹,我新建的文件夹为ce文件夹 adb pull …

2.9Frame 框架

2.9Frame 框架 这一次的效果将会像下面的图片一样. Frame 部件 Frame 是一个在 Windows 上分离小区域的部件, 它能将 Windows 分成不同的区,然后存放不同的其他部件. 同时一个 Frame 上也能再分成两个 Frame, Frame 可以认为是一种容器. ###定义一个label显示on the windo…

视频问答新增或修改视频问答

通过问答id新增或修改视频问答题目 新增或修改视频问答 图3:视频问答功能(观看效果) 图4:视频问答功能(观看效果) 图5:视频问答功能(观看效果) 单元测试 Testpublic voi…

Linux下九个实用脚本

目录 1.批量创建用户并设置密码脚本 2.查看网卡实时流量脚本 3.nginx访问日志脚本 4.dos防范攻击(自动屏蔽攻击脚本) 5.监控多台服务器磁盘利用率脚本 6.监控MySQL主从同步异常脚本 7.批量检查网站异常脚本 8.查看服务器资源利用率脚本 9.查找占…

高效出报表的工具有哪些?奥威BI报表工具怎样?

随着企业精细化数据分析的展开,数据分析报表的制作压力也随之增加。对企业而言,拥有一个高效出报表的工具十分重要。高效出报表的工具有哪些?奥威BI报表工具的效率够不够高? 高效出报表的工具有很多,奥威BI报表工具就…

java多线程之并发容器集合

一、多线程操作容器存在的问题 如下代码 public class NotSafeDemo {public static void main(String[] args) {List list new ArrayList();for (int i 0; i < 100; i) {new Thread(() -> {list.add(UUID.randomUUID().toString());System.out.println(list);}, &quo…

Vue导入Echarts实现散点图 axios解析excel流数据 echarts数据可视化前端展示

为实现从本地服务器下载xlsx文件至前端vue echarts中展示&#xff0c;踩过许多坑&#xff0c;现将完整流程和源码分享。 1、 vue axios get请求 返回304 Not Modified 不更新数据 原因&#xff1a;由于浏览器缓存了get请求&#xff0c;导致不管如何刷新&#xff0c;数据都不更…

Echarts:柱状图的第一个柱子超出了y轴

问题 使用Echarts绘制柱状图的时候&#xff0c;第一个柱子超出了y轴&#xff1a; 解决 boundaryGap 此属性与坐标轴两端空白有关。默认值为true即留空&#xff0c;false则表示柱子顶头,而出现上述现象,是因为代码中参数 boundaryGap设置为了false 将boundaryGap的值改为tru…

sadtalker-- 本地生成数字人

文章目录 概要工具讲解安装流程1. 安装Python2. 安装FFmpeg3. 安装Sadtalker4. 导入模型 使用流程1. 生成语音2. 上传图片跟语音3. 点击生成&#xff0c;漫长等待4. 虚拟内存 小结 概要 sadtalker&#xff0c;可以根据图片以及语音&#xff0c;生成动态视频&#xff0c;跟现在…

怎么将拼接的字符串element组件通过“v-html“渲染到页面

如上图所示&#xff0c;没那么多废话&#xff0c;直接上代码 html中 <div id"app"><div :html"tempHtml"></div> </div>vue中 new Vue({el: #app,data() {return {tempHtml: }},created() {this.getHtml()},mounted() {window.…

Java学到什么程度可以在当下面试找工作?

今年的面试主打一个字&#xff1a;卷&#xff01; 随着经济环境下行&#xff0c;大厂降本增效、筛除了一部分冗余岗位&#xff0c;原本荒蛮的IT行业发展正在逐步进入正轨中。虽说今年就业环境不容乐观&#xff0c;但数据不会骗人&#xff0c;以Java为例&#xff0c;在职友集上…

gd32f103vbt6 串口OTA升级3-linux端的部分

一. 简介 本文主要是对linux端升级单片机程序的功能部分做一些介绍&#xff0c;包括一些软件流程。 二.硬件部分 2.1 rk3399cpugd32f103 2.2 连接方式&#xff1a;串口&#xff08;115200&#xff0c;8N1&#xff09;或者iic&#xff08;本文没有介绍iic&#xff09; 三、其…

[nlp] GPT

一、联合训练任务 1.1 NTP(Next Token Prediction) gpt预训练的一个目标函数有两个,第一个是基础的下一个词预测任务,选择一个K窗口,将窗口中的K个词的embedding作为条件去预测下一个词。 1.2 TC(Text Classification) 第二个是一个分类任务,一段话给一个标签,然后去预…