当前位置: 首页 > article >正文

openGauss开源数据库实战十

文章目录

  • 任务十 openGauss逻辑结构:数据库管理
    • 任务目标
    • 实施步骤
      • 一、登录到openGauss
      • 二、创建数据库
      • 三、查看数据库集群中有哪些数据库
      • 四、查看数据库默认表空间的信息
      • 五、查看数据库下有哪些模式
      • 六、查看数据库下有哪些表
      • 七、修改数据库的默认表空间
      • 八、重命名数据库
      • 九、删除数据库
      • 十、修改数据库的默认用户
      • 十一、任务的扫尾工作

任务十 openGauss逻辑结构:数据库管理

任务目标

数据库是数据库对象的容器,在数据库中可以创建模式、表、索引等数据库对象。openGauss数据库管理包括创建数据库、删除数据库、重命名数据库、查看数据库的信息。

实施步骤

一、登录到openGauss

使用用户omm打开一个Linux终端窗口,执行如下的命令:

gsql -d postgres -p 26000 -r

二、创建数据库

执行下面的SOL语句,创建表空间ustb_ts和数据库ustbdb:

CREATE TABLESPACE ustb_ts RELATIVE LOCATION 'tablespace/ustb_ts1';
CREATE DATABASE ustbdb WITH TABLESPACE = ustb_ts;

三、查看数据库集群中有哪些数据库

执行下面的gsql命令,查看当前系统上有哪些数据库:

\l

执行下面的SQL语句,查看当前系统上有哪些数据库:

SELECT datname FROM pg_database;
\q

在这里插入图片描述

四、查看数据库默认表空间的信息

使用用户omm打开一个Linux终端窗口,执行如下的命令登录openGauss数据库:

gsql -d studentdb -h 192.168.100.91 -U student -p 26000 -W student@ustb2020 -r

可以分两步来查看数据库studentdb默认表空间的信息。首先执行下面的语句,查看数据库
studentdb默认表空间的OID:

select datname,dattablespace from pg_database where datname='studentdb';

注意:读者在做实验的时候,显示的OID可能会不同于这里的值16389。然后使用刚刚获得的表空间的OID,来查看表空间的名字:

select oid,spcname from pg_tablespace where oid=163889;

可以将上面的两条语句合并成一条语句,来查询数据库studentdb的默认表空间的名字:

select spcname 
from pg_tablespace 
where oid=( select dattablespace
           from pg_database
           where datname='studentdb' );

在这里插入图片描述

五、查看数据库下有哪些模式

执行下面的SQL语句,查看当前数据库下有哪些模式:

SELECT catalog_name, schema_name, schema_owner
FROM information_schema.schemata;

也可以执行下面的gsql命令,查看当前数据库下有哪些模式:

\dn+

在这里插入图片描述

六、查看数据库下有哪些表

执行下面的SQL语句,可以查询当前连接的数据库下有哪些表:

with my_tables(table_catalog, table_schema, table_name, table_type) as
    (   select table_catalog, table_schema, table_name, table_type
        from information_schema.tables
        where table_schema not in ('pg_catalog', 'information_schema','dbe_perf')
      )
select * from my_tables;

为了完成下一个实验,请保持这个窗口不退出。

七、修改数据库的默认表空间

如果数据库被一个用户打开,就无法更改数据库的默认表空间。
下面用实验证明这一点。先保持用户student连接到数据库studentdb(不要关闭刚才执行
SQL语句的Linux终端窗口。)
使用用户omm打开另外一个Linux终端窗口(我们将该窗口命名为working窗口),执行下
面的语句,先创建表空间app_ts:

gsql -d postgres -p 26000 -r
CREATE TABLESPACE app_ts  RELATIVE LOCATION 'tablespace/app_ts1';

然后在working窗口下,执行下面的语句,修改数据库studentdb的默认表空间为app_ts:

ALTER DATABASE studentdb SET TABLESPACE app_ts;

输出显示,更改数据库studentdb的默认表空间为app_ts的语句没有执行成功。可见,必须关
闭所有用户对数据库studentdb的连接,才能完成修改数据库studentdb的默认表空间的任务。
执行下面的gsql元命令,关闭对数据库studentdb的所有会话连接(至少得关闭刚才保留的会
话):

\q

在working窗口,重新执行上面的命令:

ALTER DATABASE studentdb SET TABLESPACE app_ts;

再次执行下面的SQL语句,查询数据库studentdb的默认表空间:

select spcname 
from pg_tablespace 
where oid=( select dattablespace
           from pg_database
           where datname='studentdb' );

可以看到,目前数据库studentdb的默认表空间是app_ts了。
执行下面的SQL语句,重新把数据库studentdb的默认表空间设置为表空间student ts,并退
出gsql:

ALTER DATABASE studentdb SET TABLESPACE student_ts;
drop tablespace app_ts;
\q

八、重命名数据库

使用Linux用户omm,执行下面的命令和SOL语句,查看当前openGauss上有哪些数据库:

gsql -d postgres -p 26000 -r
\l

执行下面的SOL语句,将数据库ustbdb更名为beikedadb:

ALTER DATABASE ustbdb RENAME TO  beikedadb;

执行下面的gsql元命令,查看当前系统上有哪些数据库:

\l

可以看到,已经把数据库ustbdb更名为beikedadb了。

九、删除数据库

执行下面的命令,删除数据库beikedadb:

DROP DATABASE beikedadb;

为了继续下面的测试,重新创建数据库ustbdb:

CREATE DATABASE ustbdb WITH TABLESPACE = ustb_ts;
\q

在这里插入图片描述

十、修改数据库的默认用户

使用用户omm打开一个Linux终端窗口,执行下面的命令,登录到openGaussDBMS:

gsql -d postgres -p 26000 -r

执行下面的SQL语句,创建数据库用户temp_user,并授予用户temp_user SYSADMIN权限:

CREATE USER temp_user  IDENTIFIED BY 'temp_user@ustb2020';
ALTER USER temp_user  SYSADMIN;

执行下面的gsql元命令,查看数据库的属主用户是谁:

\l

从输出可以看出,数据库ustbdb的拥有者是用户omm。
执行下面的SQL语句,将数据库ustbdb的拥有者变更为数据库用户temp_user:

ALTER DATABASE ustbdb OWNER to temp_user;

再次执行下面的gsql元命令,查看数据库的属主情况:

\l

从输出可以看到,数据库ustbdb的属主用户已经变更为用户temp_user了。执行下面的SQL语句,
重新将数据库ustbdb的属主更改为用户omm:

ALTER DATABASE ustbdb OWNER to omm;
\l

在这里插入图片描述

十一、任务的扫尾工作

继续后面的任务之前,执行下面的SOL语句,删除用户temp_user、数据库ustbdb、表空间ustb_ts,
并退出gsql:

drop user temp_user;
drop database ustbdb;
drop tablespace ustb_ts;
\q

http://www.kler.cn/a/372541.html

相关文章:

  • 【宠粉赠书】大模型项目实战:多领域智能应用开发
  • php处理文件上传的五种方式
  • 在qemu-system上跑arm-Debian
  • Golang | Leetcode Golang题解之第520题检测大写字母
  • 算法练习:209. 长度最小的子数组
  • PHP内存马:不死马
  • 详解:模板设计模式
  • Linux多机器文件分发
  • 时间序列分类任务---tsfresh库
  • 基于Spring Boot+Vue的健身房管理系统(协同过滤算法、功能非常多)
  • C++初阶(八)--内存管理
  • Spark RDD
  • C# CSV工具类,读取csv文件、将数据导出为csv文件格式,用DataGridView表格控件显示
  • 批量删除redis数据
  • N9300-S16语音芯片:提升电梯播报体验,实现导航声音播报提示
  • Spring Boot 创建项目详细介绍
  • list ------ 是一个带头双向循环的列表
  • 从0到1,解读安卓ASO优化!
  • At dp综合
  • react基础之reactHooks
  • JetPack Compose安卓开发之底部导航Tabbar
  • Windows on ARM上使用sherpa-onnx实现语音识别
  • MFC界面开发组件Xtreme Toolkit Pro v24全新发布—完整的SVG支持
  • FPGA 第一讲
  • 快速生成高质量提示词,Image to Prompt 更高效
  • 简道云和企业微信数据同步集成案例