目录

2024-12-27-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

https://i-blog.csdnimg.cn/direct/0b881b3122104beaad02c4049973657c.png#pic_center

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

使用用户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' );

https://i-blog.csdnimg.cn/direct/d32d54c685394066a011c27ad8d58c2b.png#pic_center

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

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

SELECT catalog_name, schema_name, schema_owner
FROM information_schema.schemata;

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

\dn+

https://i-blog.csdnimg.cn/direct/7af2bb4a1e1a479ca73eb7c5aa29fc9e.png#pic_center

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

执行下面的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

https://i-blog.csdnimg.cn/direct/2f50b8b8e72b4a88bc27e27088363832.png#pic_center

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

使用用户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

https://i-blog.csdnimg.cn/direct/42ac2f69ab144a60a6dbf006a62f38ee.png#pic_center

十一、任务的扫尾工作

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

并退出gsql:

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

68747470733a2f2f626c6f672e:6373646e2e6e65742f77656978696e5f37333332313434332f:61727469636c652f64657461696c732f313433323433333230