查看原文
其他

openGauss 运维操作命令及其相关介绍

酷哥 JiekeXu DBA之路 2024-03-03

一、前言  

数据库运维一般会涉及到数据存储方案设计、数据库表设计、索引设计和SQL优化等,另外还包括对数据库进行变更、监控、备份、高可用设计等工作。

本文将从数据库运维的角度简单介绍一下openGauss在日常运维工作中常用的操作命令,以便能够帮助大家轻松使用openGauss数据库。

二、常用运维相关命令

1、第一组:openGauss启停

以操作系统用户omm登录数据库主节点

启动openGauss

使用以下命令启动openGauss

gs_om -t start [-h HOSTNAME] [-D dataDir] [--time-out=SECS] [--security-mode=MODE] [--cluster-number=None] [-l LOGFILE]示例:gs_om -t startStarting cluster.==================================================================================Successfully started.

停止openGauss

使用以下命令停止openGauss

gs_om -t stop [-h HOSTNAME] [-D dataDir] [--time-out=SECS] [-m MODE] [-l LOGFILE]

示例:

gs_om -t stopStopping cluster.=========================================Successfully stopped cluster.=========================================End stop cluster.

重启 openGauss

使用以下命令重启openGauss:

gs_om -t restart [-h HOSTNAME] [-D dataDir] [--time-out=SECS] [--security-mode=MODE] [-l LOGFILE] [-m MODE]

2、第二组:openGauss 状态查询

查询 openGauss 状态

以操作系统用户omm登录数据库主节点

使用以下命令查询openGauss状态:

gs_om -t status [-h HOSTNAME] [-o OUTPUT] [--detail] [--all] [-l LOGFILE]

示例(查看openGauss详细状态信息,含实例状态信息):

gs_om -t status --detail[ Cluster State ]cluster_state : Normalredistributing : Nocurrent_az : AZ_ALL[ Datanode State ]node node_ip port instance state------------------------------------------------------------------------------------------------1 node1 192.168.1.204 5432 6001 /opt/gaussdb/cluster/data/dn1 P Primary Normal2 node2 192.168.1.205 5432 6002 /opt/gaussdb/cluster/data/dn1 S Standby Normal

若要查询某主机上的实例状态,请在命令中增加“-h”项。示例如下:

gs_om -t status -h name1

其中,name1为待查询主机的名称。

查询openGauss状态详细信息

gs_om -t query [-o OUTPUT]

3、第三组:openGauss实例主备切换

场景

openGauss在运行过程中,数据库管理员可能需要手工对数据库节点做主备切换。例如发现数据库节点主备failover后需要恢复原有的主备角色,或怀疑硬件故障需要手动进行主备切换。级联备机不能直接转换为主机只能先通过switchover或者failover成为备机,然后再切换为主机。

操作步骤 

以操作系统用户omm登录数据库任意节点执行如下命令,查看主备情况 

gs_om -t status --detail

在主备机正常时,出于维护的需要,将备机切换为主机以操作系统用户omm登录准备切换为主节点的备节点,执行如下命令

gs_ctl switchover-D /home/omm/cluster/dn1/

在主机异常时,将备机切换为主机以操作系统用户omm登录准备切换为主节点的备节点执行如下命令

gs_ctl failover -D /home/omm/cluster/dn1/

注:/home/omm/cluster/dn1/ 为备数据库节点的数据目录

switchover或failover成功后,执行如下命令保存数据库主备机器信息

gs_om -t refreshconf

特别说明:

1)主备切换为维护操作,确保openGauss状态正常,所有业务结束后,再进行切换操作。

2)在开启极致RTO时,不支持级联备机。因为在极致RTO开启情况下,备机不支持连接,所以无法与级联备机同步数据。

3)对于同一数据库,上一次主备切换未完成,不能执行下一次切换。当业务正在操作时,发起switchover,可能主机的线程无法停止导致switchover显示超时,实际后台仍然在运行,等主机线程停止后,switchover即可完成。比如在主机删除一个大的分区表时,可能无法响应switchover发起的信号。

4、第四组:openGauss备份与还原(数据导出/导入)

场景

数据备份主要是从两方面考虑一是数据库系统备份二是数据本身的备份。其主要是为了预防一些意外,例如:数据库系统硬件故障人为错误的操作等情况造成的数据丢失。下面从数据本身出发简单罗列一下openGauss数据库的数据导出导入操作

copy 数据导出

切换到默认 omm 用户下

postgres=> \c - omm

使用 copy 命令进行导出

postgres=# copy customer_t1 to '/gaussdb/backup/copy_cost.txt' delimiter '^'; COPY 4 postgres=# \q

查看导出文件

[omm@opengauss ~]$ cd /gaussdb/backup/ [omm@opengauss backup]$ ll total 4.0K -rw------- 1 omm dbgrp 80 Jun 17 14:39 copy_cost.txt [omm@opengauss backup]$ more copy_cost.txt 3769^hello^\N^\N 6885^maps ^Joes ^\N 4321^tpcds^Lily ^\N 9527^world^James ^\N

gs_dump 数据导出 

使用 gs_dump 命令将 postgres 数据库导出,导出为纯文本格式。

gs_dump 部分重要指令解释:

  • -f:将导出文件发送至指定目录文件夹。

  • -F:选择导出文件格式。-F 参数值如下:p:纯文本格式 c:自定义归档 d:目录归档格式 t:tar 归档格式

  • -n:只导出与模式名称匹配的模式,此选项包括模式本身和所有它包含的对象。

  • -t:指定导出的表(或视图、序列、外表),可以使用多个-t 选项来选择多个表,也可以使用 通配符指定多个表对象。

  • -T:不转储的表(或视图、或序列、或外表)对象列表,可以使用多个-T 选项来选择多个 表,也可以使用通配符指定多个表对象。

[omm@opengauss backup]$ gs_dump -U omm -W Bigdata@123 -f /gaussdb/backup/gsdump_post.sql - p 26000 postgres -F p gs_dump[port='26000'][postgres][2022-10-16 14:45:16]: The total objects number is 391. gs_dump[port='26000'][postgres][2022-10-16 14:45:16]: [100.00%] 391 objects have been dumped. gs_dump[port='26000'][postgres][2022-10-16 14:45:16]: dump database postgres successfully gs_dump[port='26000'][postgres][2022-10-16 14:45:16]: total time: 254 ms

查看导出文件

[omm@opengauss backup]$ cd /gaussdb/backup/ [omm@opengauss backup]$ ll total 8.0K -rw------- 1 omm dbgrp 80 Oct 16 14:39 copy_cost.txt -rw------- 1 omm dbgrp 1.8K Oct 16 14:45 gsdump_post.sql

使用 gs_dump,导出 postgres 数据库,导出为 tar 格式

[omm@opengauss backup]$ gs_dump -U omm -W Bigdata@123 -f /gaussdb/backup/gsdump_post.tar - p 26000 postgres -F t gs_dump[port='26000'][postgres][2022-10-16 14:56:50]: The total objects number is 391. gs_dump[port='26000'][postgres][2022-10-16 14:56:50]: [100.00%] 391 objects have been dumped. gs_dump[port='26000'][postgres][2022-10-16 14:56:50]: dump database postgres successfully gs_dump[port='26000'][postgres][2022-10-16 14:56:50]: total time: 219 ms

查看导出文件

[omm@opengauss backup]$ ll total 20K -rw------- 1 omm dbgrp 80 Oct 16 14:39 copy_cost.txt -rw------- 1 omm dbgrp 1.8K Oct 16 14:45 gsdump_post.sql -rw------- 1 omm dbgrp 9.5K Oct 16 14:56 gsdump_post.tar

gs_dumpall 导出数据

gs_dumpall 在导出 openGauss 所有数据库时分为两部分:

  1. gs_dumpall 自身对所有数据库公共的全局对象进行导出,包括有关数据库用户和组,表 空间以及属性(例如,适用于数据库整体的访问权限)信息。

  2. gs_dumpall 通过调用 gs_dump 来完成 openGauss 中各数据库的 SQL 脚本文件导出,该 脚本文件包含将数据库恢复为其保存时的状态所需要的全部 SQL 语句。

以上两部分导出的结果为纯文本格式的 SQL 脚本文件,使用 gsql 运行该脚本文件可以恢复 openGauss 数据库。

使用 gs_dumpall 一次导出 openGauss 的所有数据库

[omm@opengauss backup]$ gs_dumpall -f /gaussdb/backup/gsdumpall.sql -p 26000 gs_dump[port='26000'][dbname='postgres'][2022-10-16 15:27:35]: The total objects number is 393. gs_dump[port='26000'][dbname='postgres'][2022-10-16 15:27:35]: [100.00%] 393 objects have been dumped. gs_dump[port='26000'][dbname='postgres'][2022-10-16 15:27:35]: dump database dbname='postgres' successfully gs_dump[port='26000'][dbname='postgres'][2022-10-16 15:27:35]: total time: 223 ms gs_dumpall[port='26000'][2022-10-16 15:27:35]: dumpall operation successful gs_dumpall[port='26000'][2022-10-16 15:27:35]: total time: 257 ms[omm@opengauss backup]$ cd /gaussdb/backup/ [omm@opengauss backup]$ ll total 28K -rw------- 1 omm dbgrp 80 Oct 16 14:39 copy_cost.txt -rw------- 1 omm dbgrp 1.8K Oct 16 14:45 gsdump_post.sql -rw------- 1 omm dbgrp 9.5K Oct 16 14:56 gsdump_post.tar-rw------- 1 omm dbgrp 3.2K Oct 16 15:27 gsdumpall.sql

对于.sql 文件,可使用 gsql 直接导入

[omm@opengauss backup]$ gsql -p 26000 postgres -r -f /gaussdb/backup/gsdump_post.sql

对于使用 copy 导出的数据,同样可以使用 copy 导入

postgres=# copy customer_t1 from '/gaussdb/backup/copy_cost.txt' delimiter '^';

gs_restore 数据导入

gs_restore 是 openGauss 提供的针对 gs_dump 导出数据的导入工具。通过此工具可由 gs_dump 生成的导出文件进行导入。gs_restore 工具由操作系统用户 omm 执行。

使用 gs_restore 导入 gsdump_post.tar 文件内数据到 tpcc 数据库

postgres=# create database tpcc; [omm@opengauss backup]$ gs_restore /gaussdb/backup/gsdump_post.tar -p 26000 -d tpcc start restore operation ... table mytable complete data imported ! table customer_t1 complete data imported ! Finish reading 12 SQL statements!end restore operation ... restore operation successful

补充信息(几种常用备份策略):

物理备份:对数据库系统的物理文件(如数据文件,日志文件等)的备份,也可说是文件系统级别的备份,其中包含的方法:冷备份(脱机备份):是在关闭数据库的时候进行的;

热备份(联机备份):数据库处于运行状态,依赖于数据库的日志文件;温备份:数据库锁定表格(不可写入但可读)的状态下进行备份操作。

逻辑备份:就是对数据库逻辑组件(如:表等数据库对象)的备份,备份文件是SQL文件或特定格式的导出文件。实际操作中大部分以物理备份为主,逻辑备份为辅。逻辑备份和物理备份各有优劣,一般来说,物理备份恢复速度比较快,但占用空间比较大,逻辑备份速度比较慢,占用空间比较小,但逻辑备份的恢复成本相对高一些

5、第五组:openGauss 常用 gsql 元命令

1)查看帮助信息:postgres=# \?

2)切换数据库:postgres=# \c dbname

3)列举数据库:

postgres=# \l postgres=# SELECT datname FROM pg_database;

4)列举表:postgres=# \dt

5)列举所有表、视图和索引:postgres=# \d+

6)查询表的属性postgres=# \d+ tablename

7)查看表结构:postgres=# \d tablename

8)列举 schema:postgres=# \dn

9)查看索引:postgres=# \di

10)查询表空间:postgres=# \db

11)查系统和用户定义的全部表空间: postgres=# SELECT spcname FROM pg_tablespace;

12)查看数据库用户列表:postgres=# SELECT * FROM pg_user;

13)要查看用户属性:postgres=# SELECT * FROM pg_authid;

14)查看所有角色:postgres=# SELECT * FROM PG_ROLES;

15)查看 openGauss 支持的所有 SQL 语句:postgres=#\h

16)切换数据库:postgres=# \c dbname

17)切换用户:postgres=# \c – username

18)退出数据库: postgres=# \q

6第六组Linux 操作系统相关命令

1)vi/vim文本编辑器,若文件存在则是编辑,若不存在则是创建并编辑文本。

2)cd 显示当前目录的名称,或切换当前的目录(打开指定目录)

命令语法:cd [参数]

参数说明:无参数:切换用户当前目录。 . :表示当前目录;.. :表示上一级目录;~ :表示 home 目录;/ :表示根目录。

3)mv 文件或目录改名(move (rename) files)或将文件或目录移入其它位置,经常用来备份文件或者目录。

命令语法:mv [选项] 参数 1 参数 2

参数说明: 参数 1:源文件或目录。参数 2:目标文件或目录。

4) curl在 Linux 中 curl 是一个利用 URL 规则在命令行下工作的文件传输工具。支持文件的上传和下载,是综合传输工具。

命令语法:curl [选项] [URL]

参数说明:URL:指定的文件传输 URL 地址。

5) yum Shell 前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安 装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载和安装。

命令语法:yum [options] [command] [package ...]

参数说明:command:要进行的操作。package:安装的包名。

命令示例安装指定软件

yum install -y libaio-devel flex bison ncurses-devel glibc.devel patch lsb_release wget python3

6) wget,是Linux 下下载文件的最常用命令。wget 支持 HTTP,HTTPS 和 FTP 协议,支持自动下载, 即可以在用户退出系统后在后台执行,直到下载结束。

命令语法:wget [选项] [URL]

参数说明: 指定的文件下载 URL 地址。

命令示例:下载 openGauss 数据库安装文件到当前文件夹:

wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/1.1.0/x86/openGauss-1.1.0-CentOS64bit.tar.gz

7) ln 为某一个文件在另外一个位置建立一个同步的链接(软硬链接,不带选项为硬链接)。 当需要在不同的目录,用到相同的文件时,就不需要在每一个需要要的目录下都放一个必须相 同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用 ln 命令链接 (link)它就可以,不必重复的占用磁盘空间。

命令语法:ln [选项] 参数 1 参数 2

参数说明: 参数 1:源文件或目录。参数 2:被链接的文件或目录。

8) mkdir创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不 能是当前目录中已有的目录。

命令语法:mkdir [选项] [参数]

9) chmod更改文件权限。

命令语法:chmod [选项] <mode><file…>

10) chown利用 chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户 ID;组可以是组名或者组 ID;文件是以空格分开的要改变权限的文件列表,支持通配符。只有系统管理者(root)才有这样的权限。使用权限 : root。

命令语法:chown [选项] user[:group] file...

参数说明: user : 新的文件拥有者的使用者 ID。group : 新的文件拥有者的使用者组(group)。flie:文件。

11) ls列出文件和目录的内容。

命令语法:ls [选项] [参数]

参数说明:目录或文件。

12) cp复制文件或者目录。

命令语法:cp [选项] 参数 1 参数 2

参数说明: 参数 1:源文件。参数 2:目标文件。

13) rm 删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均 删除。对于链接文件,只是删除了链接,原有文件均保持不变。 rm 是一个危险的命令,使用的时候要特别当心,否则整个系统就会毁在这个命令(比如在/ (根目录)下执行 rm * rf)。所以,我们在执行 rm 之前最好先确认一下在哪个目录,到底要 删除什么东西,操作时保持高度清醒的头脑。

命令语法:rm [选项] 文件

参数说明:需要删除的文件或目录。

14) cat连接文件并在标准输出上输出。这个命令常用来显示文件内容,或者将几个文件连接起来显 示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。

命令语法:cat [选项] [参数]

参数说明:可操作的文件名。

小结(数据库平台管理示意图)

数据库运维其只是数据库平台(数据库系统)管理的一部分,正如下图所示。

数据库平台的管理(运维)包括但不限于:系统部署、资源分配与回收、日常监控、主备切换、增减备库、实例与数据迁移、备份与恢复、故障与异常排查诊断、性能分析、安全控制、变更发布、数据管理等。其每一点都可以展开来研究,本文不做详细介绍,仅供大家拓展思路。

以上就是本期基于 openGauss 数据库运维相关的介绍,欢迎测试、交流,下期再见!

作者:酷哥,来源Gauss松鼠会。

全文完,希望可以帮到正在阅读的你,如果觉得此文对你有帮助,可以分享给你身边的朋友,同事,你关心谁就分享给谁,一起学习共同进步~~~

❤️ 欢迎关注我的公众号【JiekeXu DBA之路】,一起学习新知识!

————————————————————————————
公众号:JiekeXu DBA之路
CSDN :https://blog.csdn.net/JiekeXu
墨天轮:https://www.modb.pro/u/4347
腾讯云:https://cloud.tencent.com/developer/user/5645107
————————————————————————————



Oracle 表碎片检查及整理方案

OGG|Oracle GoldenGate 基础

2021 年公众号历史文章合集整理

2020 年公众号历史文章合集整理

Oracle 19c RAC 遇到的几个问题

OGG|Oracle 数据迁移后比对一致性

利用 OGG 迁移 Oracle11g 到 19C

OGG|Oracle GoldenGate 微服务架构

Oracle 查询表空间使用率超慢问题一则

国产数据库|TiDB 5.4 单机快速安装初体验

Oracle ADG 备库停启维护流程及增量恢复

Linux 环境搭建 MySQL8.0.28 主从同步环境

继续滑动看下一个

openGauss 运维操作命令及其相关介绍

向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存