关键词:
一、前言
数据库作为信息系统基础底座软件,在大数据背景下,数据库的数据量和节点规模日益增长,数据库使用方越来越看重系统运行是否稳定、安全和高效,这也使数据库自身的运行与维护的要求也随之增高。是否拥有成熟健全的运行维护体系,支撑团队的数据库运维管理能力是否足够专业化和标准化,这都将影响和制约着整个企业信息化发展的步伐。
数据库运维一般会涉及到数据存储方案设计、数据库表设计、索引设计和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 start
Starting cluster.
=========================================
=========================================
Successfully started.
停止openGauss
使用以下命令停止openGauss:
gs_om -t stop [-h HOSTNAME] [-D dataDir] [--time-out=SECS] [-m MODE] [-l LOGFILE]
示例:
gs_om -t stop
Stopping 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 : Normal
redistributing : No
current_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 Normal
2 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
或
在主机异常时,将备机切换为主机,以操作系统用户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 数据导出
切换到默认
postgres=> \\c - omm
使用
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 部分重要指令解释:
-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
使用
[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 语句。
以上两部分导出的结果为纯文本格式的
使用
[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
对于使用
postgres=# copy customer_t1 from /gaussdb/backup/copy_cost.txt delimiter ^;
gs_restore 数据导入
gs_restore 是 openGauss 提供的针对 gs_dump 导出数据的导入工具。通过此工具可由 gs_dump 生成的导出文件进行导入。gs_restore 工具由操作系统用户 omm 执行。
使用
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)查看:postgres=#\\h
16)切换数据库:postgres=# \\c dbname
17)切换用户:postgres=# \\c – username
18)退出数据库:
6、第六组:Linux 操作系统相关命令
1)vi/vim,文本编辑器,若文件存在则是编辑,若不存在则是创建并编辑文本。
2)cd ,显示当前目录的名称,或切换当前的目录(打开指定目录)。
命令语法:cd [参数]
参数说明:无参数:切换用户当前目录。
3)mv ,文件或目录改名(move (rename) files)或将文件或目录移入其它位置,经常用来备份文件或者目录。
命令语法:mv [选项] 参数 1 参数 2
参数说明:参数
4) curl,在
命令语法: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 地址。
命令示例:下载
wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/1.1.0/x86/openGauss-1.1.0-CentOS64bit.tar.gz
7) ln ,为某一个文件在另外一个位置建立一个同步的链接(软硬链接,不带选项为硬链接)。当需要在不同的目录,用到相同的文件时,就不需要在每一个需要要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的目录下用
命令语法:ln [选项] 参数 1 参数 2
参数说明:参数
8) mkdir,创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。
命令语法:mkdir [选项] [参数]
9) chmod,更改文件权限。
命令语法:chmod [选项] <mode><file…>
10) chown,利用
命令语法:chown [选项] user[:group] file...
参数说明: user : 新的文件拥有者的使用者 ID。 group : 新的文件拥有者的使用者组(group)。 flie:文件。
11) ls,列出文件和目录的内容。
命令语法:ls [选项] [参数]
参数说明:目录或文件。
12) cp,复制文件或者目录。
命令语法:cp [选项] 参数 1 参数 2
参数说明:参数
13) rm,删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件,只是删除了链接,原有文件均保持不变。
命令语法:rm [选项] 文件
参数说明:需要删除的文件或目录。
14) cat,连接文件并在标准输出上输出。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。
命令语法:cat [选项] [参数]
参数说明:可操作的文件名。
三、小结(数据库平台管理示意图)
数据库运维其只是数据库平台(数据库系统)管理的一部分,正如下图所示。
数据库平台的管理(运维)包括但不限于:系统部署、资源分配与回收、日常监控、主备切换、增减备库、实例与数据迁移、备份与恢复、故障与异常排查诊断、性能分析、安全控制、变更发布、数据管理等。其每一点都可以展开来研究,本文不做详细介绍,仅供大家拓展思路。
以上就是本期基于openGauss数据库运维相关的介绍,欢迎测试、交流,下期再见!
作者:酷哥,来源Gauss松鼠会。
opengauss数据库日志管理
本文介绍openGauss数据库日志相关内容和管理方法,了解openGauss数据库中日志管理的内容,并对数据库进行日常管理维护、问题定位和数据库恢复的操作。环境说明组网说明本实验环境为openGauss数据库管理系统,安装在华为云openEu... 查看详情
opengauss主备流程与参数的详细介绍(代码片段)
一、openGauss主备介绍openGauss的主备架构、如何修改事务提交方式(同步、异步)、解释了主备日志复制的相关GUC参数、以及对openGauss3.0新添加的CM工具进行了介绍。注意点:opengauss是支持单机和一主多备部署方式。(不... 查看详情
opengauss主备流程与参数的详细介绍(代码片段)
一、openGauss主备介绍openGauss的主备架构、如何修改事务提交方式(同步、异步)、解释了主备日志复制的相关GUC参数、以及对openGauss3.0新添加的CM工具进行了介绍。注意点:opengauss是支持单机和一主多备部署方式。(不... 查看详情
linux运维之路
linux运维之路Linux入门必备内容成为一个优秀的linux运维人员必要条件如何能高标准的掌握linux运维实战技术计算机硬件组成、工作原理CPU、内存、磁盘、raid卡生产工作标准详解企业生产主流品牌服务器及型号内部拆卸讲解操作系... 查看详情
七opengauss搭建流程
一、安装流程流程图说明1、安装前准备openGauss安装前需要准备相应的软硬件环境以及完成相关配置。本文档提供了openGauss安装所需的最低要求,实际安装中,请用户根据实际情况进行规划。2、获取并校验安装包安装包需要在open... 查看详情
⭐opengauss数据库源码解析系列文章——deepsql⭐(代码片段)
...另外一个大方向,即DB4AI。在本章中,我们将介绍openGauss的 查看详情
opengauss数据库基本操作(超详细)(代码片段)
openGauss数据库常用操作命令(超详细)1.以操作系统用户omm登录数据库主节点su-omm1.1启动服务分布式openGauss:gs_om-tstart启动服务gs_om-trestart重启服务集中式openGauss:gs_om-tstop关闭服务gs_om-tstart启动服务1.2使用“gs_om-t... 查看详情
opengauss数据库源码解析系列文章——ai技术之“指标采集预测与异常检测”(代码片段)
上一篇介绍了“8.4智能索引推荐”的相关内容,本篇我们介绍“8.5指标采集、预测与异常检测”的相关精彩内容介绍。8.5指标采集、预测与异常检测数据库指标监控与异常检测技术,通过监控数据库指标,并基于时序... 查看详情
linux系统运维文件操作命令
1.文件复制cp命令复制文件:cpdir1/a.docdir2表示将dir1下的a.doc文件复制到dir2目录下复制文件夹:cp-rdir1dir2表示将dir1及其dir1下所包含的文件复制到dir2下cp-rdir1/.dir2表示将dir1下的文件复制到dir2,不包括dir1目录2.文件查找find-name... 查看详情
猿创征文|使用docker部署opengauss国产数据库(代码片段)
猿创征文|使用Docker部署openGauss国产数据库一、openGauss介绍1.openGauss简介2.openGauss产品定位3.支持的架构和操作系统版本二、检查宿主机环境1.检查系统版本2.检查Docker状态三、下载openGauss镜像1.进入docker官方镜像仓库2.openGauss镜像介... 查看详情
linux运维09:文件目录操作命令详解
在linux平台运维过程中,操作文件和目录是必不可少的,本章简单介绍运维过程中经常使用的名录。1.概念 绝对路径:路径的写法,由根目录/写起,例如:/usr/share/doc这个目录。 相对路径... 查看详情
运维常用的系统命令
man:查看命令帮助,命令的词典,更复杂的还有info,但不常用。help:查看Linux内置命令的帮助,比如cd命令。一、文件和目录操作命令(18个)ls:全拼list,功能是列出目录的内容及其内容属性信息。cd:全拼changedirectory,功能是从... 查看详情
云原生使用dockercommit的方式制作opengauss镜像(代码片段)
前面一期介绍了使用Dockerfile制作openGauss镜像,这种方式是根据打包脚本全新生成一个镜像,属于无中生有。本篇介绍使用dockercommit的方式制作openGauss镜像,这种方法是根据已有的镜像加上自己的定制,生成新的专... 查看详情
⭐opengauss数据库源码解析系列文章——ai查询时间预测⭐(代码片段)
上一篇介绍了“8.5指标采集、预测与异常检测”的相关内容,本篇我们介绍“8.6AI查询时间预测”的相关精彩内容介绍。8.6AI查询时间预测在前面介绍过“慢SQL发现”特性,该特性的典型场景是新业务上线前的检查,... 查看详情
git常用基本命令(代码片段)
...关命令分支相关命令tag相关命令撤销相关命令IDEAGit相关操作仓库相关操作提交相关操作提交代码步骤分支相关操作tag相关操作撤销相关操作参考资料本文主要介绍Git常用的基本命令。基本命令仓库相关命令创建新仓库gitinit克隆... 查看详情
opengauss维护管理之基本操作
...试验1、登录数据库su-omm[omm@gsdb01~]$gsql-dpostgres-p26000-rgsql((openGauss3.1.1build70980198)compiledat2023-01-0609:27:09commit0lastmr)Non-SSLconnection(SSLconnectionisrecommendedwhenrequiringhigh-security)Type"help"forhelp.2、创建和管理用户1、创建用户通过CREATEUSER创建的... 查看详情
opengauss数据库源码解析系列文章——sql引擎源解析(代码片段)
...查询优化”及“6.4小结”的相关内容的介绍。6.3查询优化openGauss数据库的查询优化过程功能比较明晰,从源代码组织的角度来看,相关代码分布在不同的目录下,如表6-6所示。表6-6查询优化模块说明模块目录说明查询... 查看详情
05_pulsar的主要组件介绍与命令使用名称空间pulsar的topic相关操作pulsartopic(主题)相关操作_高级操作(代码片段)
....3.Pulsar多租户的相关特性_隔离性1.5.1.4.Pulsar多租户的相关操作1-获取租户列表2-创建租户3-获取配置4-更新配置5-删除租户====================1.5.2.Pulsar的名称空间1.5.2.1.什么... 查看详情