任务十 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下令,查看当前体系上有哪些数据库:
执行下面的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下令,查看当前数据库下有哪些模式:
六、查看数据库下有哪些表
执行下面的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的所有会话连接(至少得关闭刚才生存的会
话):
在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
复制代码 执行下面的SOL语句,将数据库ustbdb更名为beikedadb:
- ALTER DATABASE ustbdb RENAME TO beikedadb;
复制代码 执行下面的gsql元下令,查看当前体系上有哪些数据库:
可以看到,已经把数据库ustbdb更名为beikedadb了。
九、删除数据库
执行下面的下令,删除数据库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元下令,查看数据库的属主用户是谁:
从输出可以看出,数据库ustbdb的拥有者是用户omm。
执行下面的SQL语句,将数据库ustbdb的拥有者变更为数据库用户temp_user:
- ALTER DATABASE ustbdb OWNER to temp_user;
复制代码 再次执行下面的gsql元下令,查看数据库的属主情况:
从输出可以看到,数据库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
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |