openGauss手工配置主备

1、初始化

创建一个操作系统用户,例如postgres,为这个用户设置PATH和LD_LIBRARY_PATH环境变量,指向opengauss/bin和opengauss/lib

export GAUSSHOME=/mnt/disk01/opengauss

export PATH=$GAUSSHOME/bin:$PATH

export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH

注意,GAUSSHOME这个环境变量一定要设置,它指向openGauss软件的根目录。

下文的操作系统命令,都是以postgres操作系统用户执行的。

创建密码文件,例如,密码为Postgres@123,文件位置为/tmp/tmplk1xtqm1

echo Postgres@123> /tmp/tmplk1xtqm1

gs_ctl init -D _pg_root -o "--encoding=UTF8 --nodename=node1 --no-locale --username=postgres --pwfile=/tmp/tmplk1xtqm1"

-D _pg_root 是配置文件和数据库数据存放的目录,可以根据需要随意起名,不要放到opengauss目录下

--nodename 是节点名称,随便写

--username 初始超级用户名,也是随意,建议postgres

--pwfile 前一步创建的密码文件

初始化完成,启动数据库:

gs_ctl -D _pg_root start

启动后ps -ef|grep gaussdb可以看到一个进程,这就是openGauss数据库进程,注意,它只有一个进程:

登录:

gsql -U postgres -W Postgres@123 -d postgres -r

-U指定用户名

-W指定密码

-d指定数据库名

-r指定命令行中可以使用左右键

这个命令省略了主机IP和端口号,只能本机登录

-p指定端口号(默认5432)

-h指定IP

初始化也创建了名为postgres的默认初始数据库,各配置参数在_pg_root目录下的postgresql.conf中,上面的步骤使用默认参数,如果想修改监听端口、日志文件存储的位置等,需要修改postgresql.conf然后重启数据库。

2、配主备

如果初始化启动没有问题,则准备配置主备。

将opengauss目录复制到另一台机器上(备库),与主库路径可以不同,但建议最好相同,备库同样创建操作系统用户postgres,设置环境变量GAUSSHOME、PATH和LD_LIBRARY_PATH,但是不初始化。

在主库上,先停掉openGauss:

gs_ctl -D _pg_root stop

修改配置文件postgresql.conf:

port=5432

listen_addresses = '*'

修改replconninfo1参数:

对于一主一备(假设主库地址172.32.155.57,备库地址172.32.155.58),需要设置参数replconninfo1,其中localhost是自己的IP地址,localport、localheartbeatport、localservice是用来监听备库的端口,remotehost是备库的IP地址,remoteport、remoteheartbeatport、remoteservice是监听端口,这个信息是对称的,即格式上主备相同。注意port参数,localport要比port大1,其它端口没有限制,不要与已有服务器冲突。

replconninfo1 = 'localhost=172.32.155.57 localport=5433 localheartbeatport=5434 localservice=5435 remotehost=172.32.155.58 remoteport=5433 remoteheartbeatport=5434 remoteservice=5435'

然后修改主库的_pg_root/pg_hba.conf,增加一行:(这是允许所有用户的远程连接,除了postgres)

host all all 0.0.0.0/0 sha256

然后作为主库启动:

gs_ctl -D _pg_root -M primary start

然后配置备库,注意,备库不需要初始化,也千万不能初始化,它的数据目录要用gs_basebackup从第一台机器拉取过来,在备库以操作系统用户postgres执行:

mkdir _pg_root

chmod 0700 _pg_root

gs_basebackup --pgdata=_pg_root -X stream --username=postgres --host=172.32.155.57 --port=5432

此时 _pg_root目录的内容与主库 _pg_root的内容完全一样,需要修改postgresql.conf里的replconninfo1:

replconninfo1 = 'localhost=172.32.155.58 localport=5433 localheartbeatport=5434 localservice=5435 remotehost=172.32.155.57 remoteport=5433 remoteheartbeatport=5434 remoteservice=5435'

然后作为备库启动:

gs_ctl -D _pg_root -M standby start

查询主备状态,在备库或主库机器上执行:

gs_ctl -D _pg_root query

还可以配置一主两备,在第三个机器上创建postgres用户,复制opengauss目录,配置环境变量,执行gs_basebackup,这与前面配置备库的过程大致相同,不同点是replconninfoXX参数,一主两备的架构需要每个库配置replconninfo1和replconninfo2两个参数。

例如,主库的IP为172.32.155.57,两个备库的IP为172.32.155.58和172.32.155.59,则三台机器postgresql.conf中的replconninfo1和replconninfo2设置分别为:

172.32.155.57:

replconninfo1 = 'localhost=172.32.155.57 localport=5433 localheartbeatport=5434 localservice=5435 remotehost=172.32.155.58 remoteport=5433 remoteheartbeatport=5434 remoteservice=5435'

replconninfo2 = 'localhost=172.32.155.57 localport=5433 localheartbeatport=5434 localservice=5435 remotehost=172.32.155.59 remoteport=5433 remoteheartbeatport=5434 remoteservice=5435'

172.32.155.58:

replconninfo1 = 'localhost=172.32.155.58 localport=5433 localheartbeatport=5434 localservice=5435 remotehost=172.32.155.57 remoteport=5433 remoteheartbeatport=5434 remoteservice=5435'

replconninfo2 = 'localhost=172.32.155.58 localport=5433 localheartbeatport=5434 localservice=5435 remotehost=172.32.155.59 remoteport=5433 remoteheartbeatport=5434 remoteservice=5435'

172.32.155.59:

replconninfo1 = 'localhost=172.32.155.59 localport=5433 localheartbeatport=5434 localservice=5435 remotehost=172.32.155.57 remoteport=5433 remoteheartbeatport=5434 remoteservice=5435'

replconninfo2 = 'localhost=172.32.155.59 localport=5433 localheartbeatport=5434 localservice=5435 remotehost=172.32.155.58 remoteport=5433 remoteheartbeatport=5434 remoteservice=5435'

3、主备切换

在需要设置为主库的机器上执行:

gs_ctl switchover -D _pg_root

如果成功,备库会变为主库,主库会变为备库

查看状态主备状态:

gs_ctl -D _pg_root query

4、备升主

当主库故障时,人为将备库切换为主库称为failover,与swithover的区别是,不会交换主备。在需要升为主库的机器上执行:

gs_ctl failover -D _pg_root

failover之后是单机的可读写的库。

5、故障库重新加入

在需要重新加入的机器上,执行:

gs_ctl build -D _pg_root -b auto

它会同步主库的数据目录_pg_root并且作为备机启动。

有个前提,就是故障库上,原来的_pg_root还在,只是数据陈旧了,如果_pg_root不在了,或是同步失败,就需要删除_pg_root,按照前面gs_basebackup的过程走一遍了,即执行gs_basebackup后修改postgresql.conf里的replconninfo1、replconninfo2,再作为standby启动。

6、参数修改

配置参数在postgresql.conf,访问控制配置在pg_hba.conf,可以先在主库修改,然后在备库上执行:

gs_ctl build -D _pg_root -b auto

这个操作会同步postgresql.conf和pg_hba.conf中的配置(replconninfo1、replconninfo2不会同步)。

否则需要同时手动修改主备库的postgresql.conf和pg_hba.conf

postgresql.conf中的参数分为sighup类型和postmaster类型,sighup类型参数不需要重启数据库实例就可以生效,postmaster类型需要重启数据库实例才能生效。

可以用命令 gs_guc修改postgresql.conf 文件,例如,设置参数 audit_enabled:

gs_guc -D _pg_root/ set -c audit_enabled=on

查看参数 audit_enabled:

gs_guc check -D _pg_root/ -c audit_enabled

gs_guc -D _pg_root/ set 只是修改了postgresql.conf,正在运行的openGauss中并没有生效,对于sighup类型的参数,可以用gs_guc reload 修改并加载:

gs_guc reload -D _pg_root/ -c audit_enabled=on

但是对于postmaster类型的参数,gs_guc reload也不能使之生效,只能重启openGauss。

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

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

相关文章

CSS预处理器对比:Sass、Less与Stylus如何选择

引言 CSS预处理器已成为现代前端开发的标准工具,它们通过添加编程特性来增强纯CSS的功能,使样式表更加模块化、可维护且高效。在众多预处理器中,Sass、Less和Stylus是三个最流行的选择,它们各自拥有独特的语法和功能特点。本文将深…

基于Docker、Kubernetes和Jenkins的百节点部署架构图及信息流描述

以下是基于Docker、Kubernetes和Jenkins的百节点部署架构图及信息流描述,使用文本和Mermaid语法表示: 架构图(Mermaid语法) #mermaid-svg-WWCAqL1oWjvRywVJ {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-WWCAq…

js中get,set用法

1、作为对象的访问器属性 //使用Object.definePropertylet obj {_a:123};Object.defineProperty(obj, "a", {get() {return this._a;},set(val) {this._aval},});console.log(obj.a); //123obj.a456console.log(obj.a) // 456 //使用对象字面量let obj {_a:123,ge…

Steam游戏服务器攻防全景解读——如何构建游戏级抗DDoS防御体系?

Steam游戏服务器的DDoS攻防体系设计,从协议层漏洞利用到业务连续性保障,深度拆解反射型攻击、TCP状态耗尽等7类威胁场景。基于全球15个游戏厂商攻防实战数据,提供包含边缘节点调度、AI流量指纹识别、SteamCMD加固配置的三维防护方案&#xff…

【AI】SpringAI 第四弹:接入本地大模型 Ollama

Ollama 是一个开源的大型语言模型服务工具。它的主要作用是帮助用户快速在本地运行大模型, 简化了在 Docker 容器内部署和管理大语言模型(LLM)的过程。 1. 确保Ollama 已经启动 # 查看帮助文档 ollama -h# 自动下载并启动 ollama run deeps…

大语言模型的评估指标

目录 一、混淆矩阵 1. 混淆矩阵的结构(二分类为例) 2.从混淆矩阵衍生的核心指标 3.多分类任务的扩展 4. 混淆矩阵的实战应用 二、分类任务核心指标 1. Accuracy(准确率) 2. Precision(精确率) 3. …

SpringBoot Gradle插件:构建与打包配置

文章目录 引言一、Spring Boot Gradle插件基础二、依赖管理与配置三、应用打包配置四、启动脚本与运行配置五、多环境构建与配置六、集成Docker与云原生支持七、实践案例:自定义Spring Boot应用构建总结 引言 在Java生态系统中,Gradle作为一种灵活且强大…

Vue3 组件通信与插槽

Vue3 组件通信方式全解(10种方案) 一、组件通信方式概览 通信方式适用场景数据流向复杂度Props/自定义事件父子组件简单通信父 ↔ 子⭐v-model 双向绑定父子表单组件父 ↔ 子⭐⭐Provide/Inject跨层级组件通信祖先 → 后代⭐⭐事件总线任意组件间通信任…

【KWDB 创作者计划】_嵌入式硬件篇---数字电子器件

文章目录 前言一、系列前缀(如 "74" 或 "54")74(商用级)54(工业级)二、逻辑家族(如 "LS"、"HC"、"HCT" 等)TTL(晶体管-晶体管逻辑)家族CMOS(互补金属氧化物半导体)家族BiCMOS(双极 CMOS)家族三、功能编号(如…

黄勇的《架构探险:从Java到大数据》内容详解

《架构探险:从Java到大数据》内容详解 1. 书籍核心主题 黄勇的《架构探险:从Java到大数据》是一本系统性探讨架构设计演进的著作,结合Java技术栈和大数据场景,深入分析了从单体架构到分布式、微服务、云原生的演进路径&#xff0…

【动手学强化学习】番外8-IPPO应用框架学习与复现

文章目录 一、待解决问题1.1 问题描述1.2 解决方法 二、方法详述2.1 必要说明(1)MAPPO 与 IPPO 算法的区别在于什么地方?(2)IPPO 算法应用框架主要参考来源 2.2 应用步骤2.2.1 搭建基础环境2.2.2 IPPO 算法实例复现&am…

驱动开发硬核特训 · Day 17:深入掌握中断机制与驱动开发中的应用实战

🎥 视频教程请关注 B 站:“嵌入式 Jerry” 一、前言 在嵌入式驱动开发中,“中断”几乎无处不在。无论是 GPIO 按键、串口通信、网络设备,还是 SoC 上的各种控制器,中断都扮演着核心触发机制的角色。对中断机制掌握程度…

通过门店销售明细表用PySpark得到每月每个门店的销冠和按月的同比环比数据

假设我在Amazon S3上有销售表的Parquet数据文件的路径,包含ID主键、门店ID、日期、销售员姓名和销售额,需要分别用PySpark的SparkSQL和Dataframe API统计出每个月所有门店和各门店销售额最高的人,不一定是一个人,以及他所在的门店…

PostgreSQL 常用日志

PostgreSQL 常用日志详解 PostgreSQL 提供了多种日志类型&#xff0c;用于监控数据库活动、排查问题和优化性能。以下是 PostgreSQL 中最常用的日志类型及其配置和使用方法。 一、主要日志类型 日志类型文件位置主要内容用途服务器日志postgresql-<日期>.log服务器运行…

MySQL 存储过程:解锁数据库编程的高效密码

目录 一、什么是存储过程?二、创建存储过程示例 1:创建一个简单的存储过程示例 2:创建带输入参数的存储过程示例 3:创建带输出参数的存储过程三、调用存储过程调用无参数存储过程调用带输入参数的存储过程调用带输出参数的存储过程四、存储过程中的流控制语句示例 1:使用 …

基于STM32的物流搬运机器人

功能&#xff1a;智能循迹、定距夹取、颜色切换、自动跟随、自动避障、声音夹取、蓝牙遥控、手柄遥控、颜色识别夹取、循迹避障、循迹定距…… 包含内容&#xff1a;完整源码、使用手册、原理图、视频演示、PPT、论文参考、其余资料 资料只私聊

pg_jieba 中文分词

os: centos 7.9.2009 pg: 14.7 pg_jieba 依赖 cppjieba、limonp pg_jieba 下载 su - postgreswget https://github.com/jaiminpan/pg_jieba/archive/refs/tags/vmaster.tar.gzunzip ./pg_jieba-master cd ~/pg_jieba-mastercppjieba、limonp 下载 su - postgrescd ~/pg_jie…

基于Python+Flask的MCP SDK响应式文档展示系统设计与实现

以下是使用Python Flask HTML实现的MCP文档展示系统&#xff1a; # app.py from flask import Flask, render_templateapp Flask(__name__)app.route(/) def index():return render_template(index.html)app.route(/installation) def installation():return render_templa…

【“星睿O6”AI PC开发套件评测】GPU矩阵指令算力,GPU带宽和NPU算力测试

【“星睿O6”AI PC开发套件评测】GPU矩阵指令算力&#xff0c;GPU带宽和NPU算力测试 安谋科技、此芯科技与瑞莎计算机联合打造了面向AI PC、边缘、机器人等不同场景的“星睿O6”开发套件 该套件异构集成了Armv9 CPU核心、Arm Immortalis™ GPU以及安谋科技“周易”NPU 开箱和…

【Go语言】RPC 使用指南(初学者版)

RPC&#xff08;Remote Procedure Call&#xff0c;远程过程调用&#xff09;是一种计算机通信协议&#xff0c;允许程序调用另一台计算机上的子程序&#xff0c;就像调用本地程序一样。Go 语言内置了 RPC 支持&#xff0c;下面我会详细介绍如何使用。 一、基本概念 在 Go 中&…