当前位置:网站首页>openGauss数据库基本操作(超详细)
openGauss数据库基本操作(超详细)
2022-08-09 21:51:00 【m0_67393828】
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访问
[[email protected] ~]$ 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
[[email protected] ~]$
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
[[email protected] ~]$ 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
[[email protected] ~]$ 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
[[email protected] ~]$ 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
[[email protected] ~]$ gsql -d song_suse -p 36000 -U song -W Info1234 -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 "Info1234";
在每次创建新用户时,系统会在当前登录的数据库中为新用户创建一个同名Schema。对于其他数据库,若需要同名Schema,则需要用户手动创建。
openGauss=# create user jack password "Info1234";
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 '旧密码';
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
边栏推荐
- CVPR22 Oral | shunt through multi-scale token polymerization from attention, code is open source
- Technology Sharing | How to Handle Header Cookies in Interface Automation Testing
- 2022 首期线下 Workshop!面向应用开发者们的数据应用体验日来了 | TiDB Workshop Day
- In programming languages, the difference between remainder and modulo
- STC8H Development (15): GPIO Drives Ci24R1 Wireless Module
- linux定时执行sql文件[通俗易懂]
- kvm虚拟机出现启动不了,NOT available,PV大于分区
- Endpoint mode for NetCore routing
- laravel 表迁移报错[通俗易懂]
- APP自动化测试框架-UiAutomator2基础入门
猜你喜欢
角度和弧度的相互换算
APP automation test framework - UiAutomator2 introductory
4D Summary: 38 Knowledge Points of Distributed Systems
Multiple reasons for MySQL slow query
[Implementation of the interface for adding, deleting, checking, and modifying a double-linked list]
Pagoda measurement - building LightPicture open source map bed system
[Cloud Native] 4.2 DevOps Lectures
2.1.5 大纲显示问题
宝塔实测-搭建LightPicture开源图床系统
深度剖析 Apache EventMesh 云原生分布式事件驱动架构
随机推荐
好未来,想成为第二个新东方
CVPR22 Oral | shunt through multi-scale token polymerization from attention, code is open source
自监督学习 —— MoCo v2
SecureCRT sets the timeout period for automatic disconnection
Cookie, session, token
Simple questions peek into mathematics
TF uses constant to generate data
筑牢安全防线 鹤壁经济技术开发区开展安全生产培训
Usage of placeholder function in Tensorflow
Xiaohei's leetcode journey: 94. Inorder traversal of binary trees (supplementary Morris inorder traversal)
凸集与凸函数
NIO Cup 2022 Nioke Summer Multi-School Training Camp 7 CFGJ
hdu 1503 Advanced Fruits(最长公共子序列的应用)
必看设计干货|易知微设计师是怎么做标准可视化设计服务的?
Converting angles to radians
Xiaohei leetcode's refreshing rainy day trip, just finished eating Yufei Beef Noodles, Mala Tang and Beer: 112. Path Sum
Word文档怎么输入无穷大符号∞
ACM MM 2022 | Cloud2Sketch: 长空云作画,AI笔生花
“稚晖君”为2022昇腾AI创新大赛打call 期待广大开发者加入
五星控股汪建国:以“植物精神”深耕赛道,用“动物精神”推动成长