opengauss数据库的日常运维操作

ops/2025/1/16 11:23:23/

主从切换

1.1 在从节点执行如下命令
gs_ctl switchover -D /opt/huawei/install/data/dn
cm_ctl switchover -n 1 -D /opt/huawei/install/data/dn
1.2 查看集群状态
gs_om -t status –detail
1.3 如果主节点宕机,可以使用如下命令进行failover
gs_ctl failover -D /opt/huawei/install/data/dn
1.4 switchover或failover成功后,需要保存当前主备机器信息
gs_om -t refreshconf
1.5 当某个节点故障后,需要在故障的节点重建备库,进行修复

如果data直接删除了的话,需要先拷贝postgresql.conf到对应的dn目录下,并修改primary_conninfo的信息后build

gs_ctl build -b auto -D /opt/huawei/install/data/dn

远程操作

opengauss不支持管理员远程登陆,需要创建应用用户进行登陆:

gs_guc reload -N all -I all -c "listen_addresses = '*'"
gs_guc reload -N all -I all -h "host all all 0.0.0.0/0 sha256"
CREATE USER postgres WITH PASSWORD '123qqq...A';

开启归档

mkdir -p /opt/huawei/install/wal_archive
gs_guc reload -N all -I all -c "archive_mode=on"
gs_guc reload -N all -I all -c "archive_command='cp %p /opt/huawei/install/wal_archive/%f'"

异步修改为同步

4.1 可以直接使用集群管理命令进行修改
gs_guc reload -N all -I all -c "synchronous_commit = on"
gs_guc reload -N all -I all -c "synchronous_standby_names = 'FIRST 2(dn_6002,dn_6003)'"

有些参数必须重启集群才能生效:

gs_om -t stop && gs_om -t start
4.2 也可以直接修改配置文件
vi postgresql.conf
synchronous_standby_names = 'FIRST 2(dn_6002,dn_6003)'
gs_ctl -D /opt/huawei/install/data/dn reload

增加及删除节点

5.1 删除节点

查看当前备节点日志接收状态:

select * from pg_stat_get_wal_receiver();

移除备节点,在主节点执行:

gs_dropnode -U omm -G dbgrp -h 10.0.0.12

删除从节点数据,在从节点执行
参数表示将数据也一并删除卸载

gs_uninstall --delete-data -L
5.2 添加节点

注意:在添加节点之前,要添加节点的目录,用户,软件包路径,以及环境变量要与主节点一致,具体操作略。

1)在主节点添加对所有节点的互信
# 添加整个集群的IP地址:
cd /opt/software/openGauss/script
vi hostfile
10.0.0.10
10.0.0.11
10.0.0.12
# 创建root用户互信:
./gs_sshexkey -f hostfile
# 创建omm用户互信:
su - omm
cd /opt/software/openGauss/script
./gs_sshexkey -f hostfile
)在主节点修改XML配置文件,添加如下信息
vi /opt/software/openGauss/cluster_config.xml<!-- 节点2上的部署信息 --><DEVICE sn="gsdb02"><!-- 节点2的主机名称 --><PARAM name="name" value="gsdb02"/><!-- 节点2所在的AZ及AZ优先级 --><PARAM name="azName" value="AZ1"/><PARAM name="azPriority" value="1"/><!-- 节点2的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --><PARAM name="backIp1" value="10.0.0.11"/><PARAM name="sshIp1" value="10.0.0.11"/></DEVICE><!-- 节点3上的部署信息 --><DEVICE sn="gsdb03"><!-- 节点3的主机名称 --><PARAM name="name" value="gsdb03"/><!-- 节点3所在的AZ及AZ优先级 --><PARAM name="azName" value="AZ1"/><PARAM name="azPriority" value="1"/><!-- 节点3的IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP --><PARAM name="backIp1" value="10.0.0.12"/><PARAM name="sshIp1" value="10.0.0.12"/></DEVICE>
3)在主节点添加环境变量
vi /etc/profile
export PGDATA=/opt/huawei/install/data/dn
export GPHOME=/opt/huawei/install/om
export GAUSSHOME=/opt/huawei/install/app
export PGHOST=/opt/huawei/install/om/omm_mppdb
export PATH=/root/gauss_om/omm/script:$GAUSSHOME/bin:$PATH

升 级

6.1 创建新包目录,并上传软件包
mkdir -p /opt/software/gaussdb_upgrade
tar xf openGauss-3.0.0-CentOS-64bit-all.tar.gz
tar xf openGauss-3.0.0-CentOS-64bit-om.tar.g
chown -R omm:dbgrp /opt/software/
6.2 在就地升级或灰度升级前执行前置脚本gs_preinstall
cd /opt/software/gaussdb_upgrade/script
./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml
6.3 进行升级

使用gs_upgradectl脚本执行就地升级:

cd /opt/software/gaussdb_upgrade/script
./gs_upgradectl -t auto-upgrade -X /opt/software/openGauss/cluster_config.xml

也可以进行灰度升级:

gs_upgradectl -t auto-upgrade -X /opt/software/openGauss/cluster_config.xml --grey
6.4 升级版本查询
gs_ssh -c "gsql -V"
6.5 完成升级提交
gs_upgradectl -t commit-upgrade  -X /opt/software/openGauss/cluster_config.xml
6.6 也可以升级回滚
gs_upgradectl -t auto-rollback  -X /opt/software/openGauss/cluster_config.xml

说明:如果数据异常,可以进行强制回滚:

gs_upgradectl -t auto-rollback -X /opt/software/openGauss/cluster_config.xml --force

设置备机可读

vi postgresql.conf
wal_level=hot_standby;
hot_standby = on

卸载opengauss

7.1 使用gs_uninstall卸载openGauss,在omm用户下执行
gs_uninstall --delete-data
7.2 openGauss环境清理是对环 境准备脚本gs_preinstall所做设置的清理,在root下执行
cd /opt/software/openGauss/script
./gs_postuninstall -U omm -X /opt/software/openGauss/cluster_config.xml --delete-user --delete-group
7.3 删除残留软件目录
rm -rf /opt/*

启停opengauss

gs_ctl -t start
gs_ctl -t stop

状态查询

gs_om -t status –detail

查看某主机上的实例状态:

gs_om -t status –h  db01

cm基础命令

cm_ctl query -Civdp
cm_ctl stop
cm_ctl start
cm_ctl switchover -n 2 -D dn1
cm_ctl build -n 2 -D dn1

–cm_ctl start/stop数据库
–一主多备数据库部署模式下启动/停止所有数据库服务:

cm_ctl stop
cm_ctl start

–启动/停止单个主机上的所有实例(含CM):

cm_ctl stop -n nodeid
cm_ctl start -n nodeid

–单独启动/停止某个实例进程(数据库进程):

cm_ctl stop -n nodeid -D datadir
cm_ctl start -n nodeid -D datadir

–启动/停止整个AZ:

cm_ctl stop -z ALL
cm_ctl start -z ALL

–重复停止所有/某个实例:

cm_ctl stop -n nodeid
cm_ctl stop -n nodeid

–重复启动所有/某个实例:

cm_ctl start -n nodeid
cm_ctl start -n nodeid

–&&连接使用:

cm_ctl stop && cm_ctl start
cm_ctl stop -n nodeid && cm_ctl start -n nodeid

后续有遇到问题在更新,看到这里了,点赞关注支持一下吧~~~~~


http://www.ppmy.cn/ops/150536.html

相关文章

Cyber Security 101-Offensive Security-Shells Overview(shells概述)

了解不同类型的 shell。 任务1&#xff1a;房间介绍 介绍 网络安全中的 shell 被攻击者广泛用于远程控制系统&#xff0c;使其成为攻击链的重要组成部分。在这个房间里&#xff0c;我们将探讨进攻性安全中使用的不同 shell、它们之间的区别以及它们的用例。这些知识有助于提高…

x86-64架构的Linux服务器上运行.NET 6.0应用程序,安装runtimes

在x86-64架构的Linux服务器上运行.NET 6.0应用程序&#xff0c;你确实只需要dotnet-runtime-6.0.28-linux-x64.tar.gz这个运行时压缩包。以下是搭建.NET环境的步骤&#xff1a; 下载.NET运行时 首先&#xff0c;确保你已经下载了dotnet-runtime-6.0.28-linux-x64.tar.gz文件。你…

Python海龟绘图库:从入门到精通 - Python官方文档(三万字解析!)

turtle --- 海龟绘图 源码&#xff1a; Lib/turtle.py 概述 海龟绘图是对 最早在 Logo 中引入的受欢迎的几何绘图工具 的实现&#xff0c;它由 Wally Feurzeig, Seymour Papert 和 Cynthia Solomon 在 1967 年开发。 入门 请想象绘图区有一只机器海龟&#xff0c;起始位置在…

在AWS云平台上实现多架无人机自主飞行控制和管理的系统设计和实现代码

为了为低空飞机设计和实施自主飞行控制系统&#xff0c;使其能够远程规划和监控飞行路径、设置目标位置以及通过 AWS 云管理多架飞机&#xff0c;我们需要集成几个关键组件。 该技术栈将低级控制与实时处理、基于云的数据管理和高级路径规划算法相结合。您可以根据真实飞行数据…

pytorch小记(一):pytorch矩阵乘法:torch.matmul(x, y)

pytorch小记&#xff08;一&#xff09;&#xff1a;pytorch矩阵乘法&#xff1a;torch.matmul&#xff08;x, y&#xff09;/ x y 代码代码 1&#xff1a;torch.matmul(x, y)输入张量&#xff1a;计算逻辑&#xff1a;输出结果&#xff1a; 代码 2&#xff1a;y y.view(4,1)…

苹果手机ios脚本用按键精灵文件配置代码

以下是一个大致的思路来使用按键精灵在 iOS 手机上实现文件配置导出功能&#xff08;需要注意的是&#xff0c;在 iOS 上使用按键精灵等类似工具要确保符合苹果应用的相关使用规范和权限要求哦&#xff09;&#xff0c;但实际操作中可能会受限于 iOS 系统的封闭性以及应用本身的…

Golang概述

文章目录 1. 什么是程序2. Go语言的诞生小故事2.1 Go 语言的核心开发团队--三个大牛2.2 Google 创造 Golang 的原因2.3 Golang 的发展历程 3. Golang 的语言的特点 1. 什么是程序 程序&#xff1a;就是完成某个功能的指令的集合。画一个图理解&#xff1a; 2. Go语言的诞生小故…

《大型语言模型与强化学习的融合:探索问题的新解决方案与开源验证需求》

强化学习在2020年代初期通过开源项目如CleanRL的多学习者PPO算法取得了显著进展&#xff0c;但在语言模型领域未能充分利用其潜力 1. 开源项目CleanRL的贡献 CleanRL 是一个致力于提供简单、高效且易于理解的强化学习&#xff08;RL&#xff09;算法实现的开源项目。该项目通…