openGauss数据库基本操作(超详细)

2023-11-14

openGauss数据库常用操作命令(超详细)

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

su - omm
1.1 启动服务
分布式openGauss:
gs_om -t start    启动服务
gs_om -t restart  重启服务
集中式openGauss:
gs_om -t stop   关闭服务
gs_om -t start  启动服务
1.2 使用“gs_om -t status –detail”命令查询openGauss各实例状态情况。
gs_om -t status --detail
  • 如下部署了集中式openGauss集群,数据库主节点实例的服务器IP地址为172.20.73.178
  • 数据库主节点数据路径为/opt/gaussdb/master1/
  • 集中式没有CN,通过主DN访问
[omm@openGauss01 ~]$ gs_om -t status --detail
[  CMServer State   ]

node           node_ip         instance                             state
---------------------------------------------------------------------------
2  openGauss02 172.20.73.179   1    /opt/gaussdb/cmserver/cm_server Standby
3  openGauss03 172.20.74.210   2    /opt/gaussdb/cmserver/cm_server Primary

[    ETCD State     ]

node           node_ip         instance                       state
---------------------------------------------------------------------------
1  openGauss01 172.20.73.178   7001 /opt/huawei/xuanyuan/etcd StateFollower
2  openGauss02 172.20.73.179   7002 /opt/huawei/xuanyuan/etcd StateLeader
3  openGauss03 172.20.74.210   7003 /opt/huawei/xuanyuan/etcd StateFollower

[   Cluster State   ]

cluster_state   : Normal
redistributing  : No
balanced        : Yes
current_az      : AZ_ALL

[  Datanode State   ]

node           node_ip         instance                   state            | node           node_ip         instance                   state            | node           node_ip         instance                   state
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
1  openGauss01 172.20.73.178   6001 /opt/gaussdb/master1  P Primary Normal | 2  openGauss02 172.20.73.179   6002 /opt/gaussdb/slave1_1 S Standby Normal | 3  openGauss03 172.20.74.210   6003 /opt/gaussdb/slave1_2 S Standby Normal
[omm@openGauss01 ~]$

1.3 检查数据库性能
gs_checkperf

1. 以简要格式在屏幕上显示性能统计结果。
gs_checkperf -i pmk -U omm 
2. 以详细格式在屏幕上显示性能统计结果。
gs_checkperf -i pmk -U omm --detai
1.4 确认数据库主节点的端口号

在1.2查到的数据库主节点数据路径下的postgresql.conf文件中查看端口号信息。示例如下:
cat /opt/gaussdb/master1/postgresql.conf |grep port

[omm@openGauss01 ~]$ cat /opt/gaussdb/master1/postgresql.conf |grep port
port = '36000'                          # (change requires restart)
#ssl_renegotiation_limit = 0            # amount of data between renegotiations, no longer supported
                                        # supported by the operating system:
  • 36000为数据库主节点的端口号
  • 端口号在安装数据库时,会在xml文件中配置,查看安装时的xml配置文件也可以找到端口。
1.5列出所有可用的数据库
gsql -d postgres -p 36000 -l
[omm@openGauss01 ~]$ gsql -d postgres -p 36000 -l
                          List of databases
   Name    | Owner | Encoding  | Collate | Ctype | Access privileges
-----------+-------+-----------+---------+-------+-------------------
 db1       | song  | SQL_ASCII | C       | C     |
 db2       | song  | SQL_ASCII | C       | C     |
 kwdb      | kw    | SQL_ASCII | C       | C     |
 mydb      | song  | GBK       | C       | C     |
 postgres  | omm   | SQL_ASCII | C       | C     |
 song_suse | song  | SQL_ASCII | C       | C     |
 template0 | omm   | SQL_ASCII | C       | C     | =c/omm           +
           |       |           |         |       | omm=CTc/omm
 template1 | omm   | SQL_ASCII | C       | C     | =c/omm           +
           |       |           |         |       | omm=CTc/omm
(8 rows)

其中,postgres为openGauss安装完成后默认生成的数据库。初始可以连接到此数据库进行新数据库的创建。

2. 查看数据库对象

1. 登陆默认数据库postgres:
gsql -d postgres -p 36000
[omm@openGauss01 ~]$ gsql -d postgres -p 36000
gsql ((GaussDB Kernel V500R002C00 build fab4f5ea) compiled at 2021-10-24 11:58:09 commit 3086 last mr 6592 release)
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

openGauss=#
2. 登陆自建数据库song_suse:
gsql -d 数据库名 -p 36000 -U 用户名 -W 密码  -r
[omm@openGauss01 ~]$ gsql -d song_suse -p 36000 -U song -W ******  -r
gsql ((GaussDB Kernel V500R002C00 build fab4f5ea) compiled at 2021-10-24 11:58:09 commit 3086 last mr 6592 release)
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

song_suse=>

1)查看帮助信息:

postgres=# \?

2)切换数据库:

postgres=# \c dbname

3)列举数据库:

使用\l元命令查看数据库系统的数据库列表。
postgres=# \l
使用如下命令通过系统表pg_database查询数据库列表。
postgres=# select dataname from pg_database;

4)列举表:

postgres=# \dt
postgres=# \d

5)列举所有表、视图和索引:

postgres=# \d+

6)使用gsql的\d+命令查询表的属性:

postgres=# \d+ tablename

7)查看表结构:

postgres=# \d tablename

8)列举schema:

postgres=# \dn

9)查看索引:

postgres=# \di

10)查询表空间:

使用gsql程序的元命令查询表空间。postgres=# \db
检查pg_tablespace系统表。如下命令可查到系统和用户定义的全部表空间。
postgres=# select spcname from pg_tablespace;

11)查看数据库用户列表:

postgres=# select * from pg_user;

12)要查看用户属性:

postgres=# select * from pg_authid;

13)查看所有角色:

postgres=# select * from PG_ROLES;

14)切换用户:

postgres=# \c – username

15)退出数据库:

postgres=# \q

3. 常用SQL语言:

1)创建数据库用户

create user 用户名 with password "密码";
create user jack password "******";
在每次创建新用户时,系统会在当前登录的数据库中为新用户创建一个同名Schema。对于其他数据库,若需要同名Schema,则需要用户手动创建。
openGauss=# create user jack password "******";
CREATE ROLE
openGauss=# \du
                                                              List of roles
 Role name |                                                    Attributes                                                    | Member of
-----------+------------------------------------------------------------------------------------------------------------------+-----------
 jack      |                                                                                                                  | {}
 kw        |                                                                                                                  | {}
 omm       | Sysadmin, Create role, Create DB, Replication, Administer audit, Monitoradmin, Operatoradmin, Policyadmin, UseFT | {}
 song      | Create role, Sysadmin                                                                                            | {}

2)删除数据库用户

drop user 用户名 cascade;
drop user jack cascade;

3)创建数据库,并指定所有者owner

create database 数据库名 owner 用户名;
create database jack_test owner jack;

4)为用户授权

给用户授权对某数据库的所有权限
grant all privileges on database jack_test to jack;
为用户追加有创建角色的CREATEROLE权限
alter user jack createrole;
将sysadmin权限授权给用户joe
grant all privileges to jack;
openGauss=# create database jack_test owner jack;
CREATE DATABASE
openGauss=# \l
                          List of databases
   Name    | Owner | Encoding  | Collate | Ctype | Access privileges
-----------+-------+-----------+---------+-------+-------------------
 db1       | song  | SQL_ASCII | C       | C     |
 db2       | song  | SQL_ASCII | C       | C     |
 jack_test | jack  | SQL_ASCII | C       | C     |
 kwdb      | kw    | SQL_ASCII | C       | C     |
 mydb      | song  | GBK       | C       | C     |
 postgres  | omm   | SQL_ASCII | C       | C     |
 song_suse | song  | SQL_ASCII | C       | C     | =Tc/song         +
           |       |           |         |       | song=CTc/song    +
           |       |           |         |       | song=APm/song
 template0 | omm   | SQL_ASCII | C       | C     | =c/omm           +
           |       |           |         |       | omm=CTc/omm
 template1 | omm   | SQL_ASCII | C       | C     | =c/omm           +
           |       |           |         |       | omm=CTc/omm
(9 rows)

openGauss=# grant all privileges on database jack_test to jack;
GRANT
openGauss=# alter user jack createrole;
ALTER ROLE
openGauss=# grant all privileges to jack;
ALTER ROLE
openGauss=# \du
                                                              List of roles
 Role name |                                                    Attributes                                                    | Member of
-----------+------------------------------------------------------------------------------------------------------------------+-----------
 jack      | Create role, Sysadmin                                                                                            | {}
 kw        |                                                                                                                  | {}
 omm       | Sysadmin, Create role, Create DB, Replication, Administer audit, Monitoradmin, Operatoradmin, Policyadmin, UseFT | {}
 song      | Create role, Sysadmin                                                                                            | {}

openGauss=#

5)删除数据库

drop database 数据库名;
drop database jack_test;

6)创建schema(模式,默认为public)

1. 切换到jack_test数据库:
openGauss=# \c jack_test
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "jack_test" as user "omm".
2. 切换到jack用户
jack_test=# \c - jack
Password for user jack:
Non-SSL connection (SSL connection is recommended when requiring high-security)
You are now connected to database "jack_test" as user "jack".
3. 查看schema
jack_test=> \dn
       List of schemas
         Name         | Owner
----------------------+-------
 blockchain           | omm
 cstore               | omm
 db4ai                | omm
 dbe_application_info | omm
 dbe_file             | omm
 dbe_lob              | omm
 dbe_match            | omm
 dbe_output           | omm
 dbe_perf             | omm
 dbe_pldebugger       | omm
 dbe_pldeveloper      | omm
 dbe_random           | omm
 dbe_raw              | omm
 dbe_scheduler        | omm
 dbe_session          | omm
 dbe_sql              | omm
 dbe_task             | omm
 dbe_utility          | omm
 pkg_service          | omm
 pkg_util             | omm
 public               | omm
 snapshot             | omm
 sqladvisor           | omm
 sys                  | omm
(24 rows)

jack_test=>
4. 查看当前用户:
select * from current_user;
select user;
jack_test=> select * from current_user;
 current_user
--------------
 jack
(1 row)

jack_test=> select user;
 current_user
--------------
 jack
(1 row)

jack_test=>


5. 为用户jack创建一个模式jack1
create schema 模式名 authorization 用户名;
create schema jack1 authorization jack;
jack_test=> create schema jack1 authorization jack;
CREATE SCHEMA
jack_test=> \dn
       List of schemas
         Name         | Owner
----------------------+-------
 blockchain           | omm
 cstore               | omm
 db4ai                | omm
 dbe_application_info | omm
 dbe_file             | omm
 dbe_lob              | omm
 dbe_match            | omm
 dbe_output           | omm
 dbe_perf             | omm
 dbe_pldebugger       | omm
 dbe_pldeveloper      | omm
 dbe_random           | omm
 dbe_raw              | omm
 dbe_scheduler        | omm
 dbe_session          | omm
 dbe_sql              | omm
 dbe_task             | omm
 dbe_utility          | omm
 jack1                | jack
 pkg_service          | omm
 pkg_util             | omm
 public               | omm
 snapshot             | omm
 sqladvisor           | omm
 sys                  | omm
(25 rows)

jack_test=>
6. 修改schema名称
alter schema jack1 rename to jack2;
7. 要更改当前会话的默认Schema,请使用SET命令。
执行如下命令将搜索路径设置为myschema、public,首先搜索myschema。
set search_path to jack2;
查看当前schema
show search_path;
jack_test=> set search_path to jack2;
SET
jack_test=>  show search_path;
 search_path
-------------
 jack2
(1 row)

jack_test=>

7)授权

grant usage on schema jack2 to jack;
回收(revoke)

将Schema中的表或者视图对象授权给其他用户或角色时,需要将表或视图所属Schema的USAGE权限同时授予该用户或角色。否则用户或角色将只能看到这些对象的名称,并不能实际进行对象访问。

8)数据库重新命名

alter database jack_test rename to jack_db;

9)命令查看当前数据库存储编码

show server_encoding;

10)查询表分布列(分布式openGauss才有,集中式没有):

select getdistributekey ('schemaName.tableName');
select getdistributekey ('tableName');

11)修改omm管理员密码
openGauss数据库登陆如果提示omm密码过期,需要修改omm管理员密码,例如:

alter role omm identified by '新密码' replace '旧密码';
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

openGauss数据库基本操作(超详细) 的相关文章

  • 使用 POJO 仅更新 JOOQ 记录中已更改的字段

    我想使用 POJO 作为源来更新 JOOQ 记录中已更改的字段 Record from Object http www jooq org javadoc 3 8 x org jooq Record html from java lang O
  • 使用DBFlow,如何加密已经存在的数据库?

    我正在使用 DBFlow 来处理项目中的数据库 并且我想对现有数据库进行加密 我知道我可能必须删除现有的未加密数据库并创建另一个加密数据库 我也知道我可以将 SQLCipher 与 DBFlow 一起使用 如上所述文档 https gith
  • 术语 SSTable 和 LSM Tree 之间有什么区别

    这两个术语可以互换使用吗 我读过有关 SSTable 工作原理的文章 通常文章都会开始提到 LSM Tree 然而 它们似乎是同一件事 我什么时候应该使用一个术语而不是另一个术语 对于凡人来说 SSTables 和 LSM Trees 的最
  • 显示包含特定表的所有数据库名称

    我的 SQL Server 中有很多数据库 我必须只搜索包含特定表名的数据库名称Heartbitmaster 我有很多数据库 例如Gotgold DVD等 我只想从包含此表的查询中查找数据库名称Heartbitmaster 我搜索我尝试查询
  • 什么会导致 Oracle ROWID 更改?

    AFAIK Oracle 中的 ROWID 表示相应数据文件中记录的物理位置 在什么情况下记录的ROWID可能会改变 我所知道的一个是分区表上的更新 它将记录 移动 到另一个分区 还有其他情况吗 我们的大多数数据库都是 Oracle 10
  • 具有多个主键的 SQLAlchemy 不会自动设置任何

    我有一个简单的表 class test Base tablename test id Column Integer primary key True title Column String def init self title self
  • 每个数据库多个/单个 *.edmx 文件

    我有一个通过 ADO net 数据服务与数据库交互的项目 数据库很大 近 150 个具有依赖关系的表 该项目几年前开始 当时使用的是数据集 现在我们正在转向实体模型关系 由于我们添加了更多需要使用的表 该模型正在不断增长 这是管理这一切的正
  • SQL Server 大小写/排序规则问题

    今天我在客户数据库中遇到了一个奇怪的情况 SQL Server 2005 数据库排序规则不区分大小写 因此我可以使用任何大小写编写 SQL 查询 没有任何问题 除了一个 一张特定表中的一个特定列称为 DeadZone 如果我这样查询 从表名
  • MYSQL 的 Google OAuth 2.0 用户 ID 数据类型

    我正在实施 Google OAuth 2 0 并注意到 Google OAuth 返回的唯一用户 ID 是21位数字长的 我想大整数 20 足以满足这种需求 但我现在看到 Google OAuth 返回的用户 ID 的长度感到困惑 关于我应
  • 自动删除主键序列中的间隙

    我正在创建一个网页 该网页根据用户操作将数据存储到 MySQL 数据库中 数据库有很多行 行的主键是列 rowID 它只是按顺序对行进行编号 例如 1 2 3 4 用户可以选择删除行 问题是当用户删除最后一行以外的行时 rowID 中有一个
  • 计算 mysql 数据库行数的最佳方法

    在遇到 mysql 查询加载时间慢的问题后 我现在正在寻找计算行数的最佳方法 我曾经愚蠢地使用过mysql num rows 函数来做到这一点 现在意识到这是最糟糕的方法 我实际上正在制作一个分页来用 PHP 制作页面 我找到了几种计算行数
  • sqlite3从打印数据中删除括号

    我创建了一个脚本 用于查找数据库第一行中的最后一个值 import sqlite3 global SerialNum conn sqlite3 connect MyFirstDB db conn text factory str c con
  • 插入具有多个值的外键

    我想知道 是否有可能创建一个表 其中我有一个接受外键但同一行可能有多个值的表 例如 Employee id name skillid Skill Skillid skillname 这里 Employee 的一个例子可以是 Employee
  • mysql表中的数据非常大。即使 select 语句也需要很多时间

    我正在开发一个数据库 它是一个相当大的数据库 有 13 亿行和大约 35 列 这是我检查表状态后得到的结果 Name Table Name Engine InnoDB Version 10 Row format Compact Rows 1
  • 使用连接池后如何处理过多的并发连接?

    Scenario 假设您有一个拥有大量流量的网站或应用程序 即使使用数据库连接池 性能也会受到真正的打击 站点 应用程序甚至可能崩溃 因为并发连接太多 Question 人们有什么选择来处理这个问题 我的想法 我在想有这个问题的人可以创建多
  • 表与多个表具有一对一的关系

    1 一个表可以和多个表建立一对一的关系吗 为了更清楚地说明 如果我想做插入 第一个表将受到影响并且 只有一张其他表会受到影响 2 如果是这样 主键将如何 3 另外 如果我想检索多条记录 查询会是什么样子 从这些表中 谢谢 一个表可以和多个表
  • MySQL 概念:会话与连接

    我对 MySQL 的概念有点困惑 会话与连接 当谈论连接到 MySQL 时 我们使用连接术语 连接池等 然而在 MySQL 在线文档中 http dev mysql com doc refman 4 1 en server system v
  • 如何迁移我的 Heroku 数据库?

    我试过了 heroku rake db migrate and heroku pg push 第一个给我一个 PGerror rake 中止错误 有没有办法用heroku完全重建 重置我的数据库 我似乎在他们的文档中找不到它 编辑 在此之前
  • MySQL InnoDB 约束不起作用

    我偶然发现 innoDB 约束的奇怪行为 但找不到原因 我有包含数据的表格 下面列出了它们的结构 CREATE TABLE contents id int 10 unsigned NOT NULL AUTO INCREMENT title
  • 迭代 pandas 数据框的最快方法?

    如何运行数据框并仅返回满足特定条件的行 必须在之前的行和列上测试此条件 例如 1 2 3 4 1 1 1999 4 2 4 5 1 2 1999 5 2 3 3 1 3 1999 5 2 3 8 1 4 1999 6 4 2 6 1 5 1

随机推荐

  • linux常用函数和知识点博文合集

    signal SIGCHLD SIG IGN 和signal SIGPIPE SIG IGN 中断产生EINTR错误 linux中sigaction函数详解 标准I O函数库提供了popen函数 它启动另外一个进程去执行一个shell命令行
  • 2023秋招算法题每日学习(4)

    DAY 4 1 AcWing 850 Dijkstra求最短路 ii 考察点 堆优化Dijkstra 求最短路问题 适合于稀疏图 利用邻接表来存储 邻接表不需要对重边做特殊的处理 1 基础知识 时间复杂度分析 堆优化Dijkstra 堆优化
  • JUST技术:利用迁移学习生成新城市的轨迹

    市民的出行轨迹数据无论是对于城市管理 规划 还是商业活动 都是重要的参考信息 然而 获取一个城市的人群轨迹数据却非常困难 在今年4月份召开的国际顶级互联网会议WWW 2020 CCF A类 上 京东城市报告了被会议收录的论文 What is
  • 解决安装强化学习库gymnasium,box2d安装报错的问题

    gymnasium是强化学习的库 比较难安装 一 安装方法 安装Gymnasium 一定要all 这样可以安装所有依赖 pip install gymnasium all pip install gymnasium all 二 报错信息一
  • Docker安装记录

    1 卸载旧版本 yum remove docker docker client docker client latest docker common docker latest docker latest logrotate docker
  • Git版本控制

    Git 版本控制 什么是版本控制 版本控制是一种开发的过程中用于管理我们对文件 目录或工程等内容的修改历史 方便查看更改历史记录 备份以便恢复以前的版本的软件工程技术 实现跨区域多人协同开发 追踪和机载一个或者多个文件的历史记录 组织和保护
  • 成功解决VMware安装操作系统出现分辨率的问题

    文章目录 问题重现 问题原因 问题解决 方法一 拓展 1 电脑分辨率 2 xrandr命令 3 查询后如果没有合适的分辨率解决方案 参考资料 问题重现 如下图 在VMware16上安装ubuntu操作系统的时候 出现分辨率问题 导致底部的按
  • < 面试知识点:什么是 Node.js ?有哪些优缺点?应用场景? >

    文章目录 一 什么是 Node js 二 Node js 有哪些优缺点 三 Node js 能做什么 四 Node js 的 模块系统 五 Node js 应用场景 参考文献 往期内容 一 什么是 Node js Node js 是一个开源
  • 微信小程序如何获取微信昵称和头像

  • MySQL 高可用:mysql+mycat实现数据库分片(分库分表)

    什么是MYCAT 一个彻底开源的 面向企业应用开发的大数据库集群 支持事务 ACID 可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库 用来替代昂贵的Oracle集群 一个融合内存缓存技术 NoSQL技术 HDFS
  • Docker入门命令详解

    目录 一 Docker 简介 1 Docker引擎 2 Docker客户端 3 Docker镜像 4 Docker容器 5 Docker镜像注册中心 二 Docker的特点 1 快速运行 2 节省资源 3 便于交付 4 容易管理 三 Doc
  • C语言有小数乘法,十道小数乘小数的乘法竖式计算并有答案

    十道小数乘小数的乘法竖式计算并有答案以下文字资料是由 历史新知网www lishixinzhi com 小编为大家搜集整理后发布的内容 让我们赶快一起来看一下吧 十道小数乘小数的乘法竖式计算并有答案 6 5 8 4 56 1 3 3 2 2
  • C#实现串口通信

    背景 在工业控制中 工控机 一般都基于Windows平台 经常需要与智能仪表通过串口进行通信 串口通信方便易行 应用广泛 一般情况下 工控机和各智能仪表通过RS485总线进行通信 RS485的通信方式是半双工的 在Win32下 可以使用两种
  • 04_两种常见的网页反爬措施及应对方法

    一 封禁IP地址反爬 1 应对思路 理解这种反爬方法的含义 当我们用自己电脑的ip地址短时间 高频率访问某个具有此类反爬设置的网站 这种网站就会把我们的ip地址封禁 一般都是封24小时或者其他时间 解决方案 通过代理ip访问 这种方式只不过
  • SQL 语句 最大长度限制 DB2如何修改最大长度限制

    home datamart db2 get db cfg grep HEAP Sort heap thres for shared sorts 4KB SHEAPTHRES SHR AUTOMATIC Sort list heap 4KB
  • PhotonServer介绍

    官网 On Premises Cross Platform Multiplayer Game Backend Photon Engine Photon为您完全封装了每个客户端平台的复杂网络层 Photon Server支持可靠的UDP TC
  • 作为一个编程新手,我再也不怕Flink迷了我的眼!

    欢迎大家前往腾讯云 社区 获取更多腾讯海量技术实践干货哦 本文由kyledong 发表于云 社区专栏 使用 Flink 编写处理逻辑时 新手总是容易被林林总总的概念所混淆 为什么 Flink 有那么多的类型声明方式 BasicTypeInf
  • 基于Qt的OpenGL编程(3.x以上GLSL可编程管线版)---(十五)obj模型加载

    Vries的原教程里 对于模型载入 使用的是一种非常流行的模型加载库Assimp 可以方便的加载obj fbx 3ds等常见的模型格式文件 在visual studio2015里 我照原教程进行了Assimp的配置 程序成功运行 在Qt中
  • 整蛊小程序(关机程序)

    关机小程序 简介 启动程序 执行关机 输入 我是猪 则关机停止 否则一直提醒 直到时间结束 关机启动 关闭窗口没有作用 先上代码 include
  • openGauss数据库基本操作(超详细)

    openGauss数据库常用操作命令 超详细 1 以操作系统用户omm登录数据库主节点 su omm 1 1 启动服务 分布式openGauss gs om t start 启动服务 gs om t restart 重启服务 集中式open