10.GaussDB用户/表空间/数据库管理

1.用户管理

--用户创建
--创建用户:
--创建用户并设置密码
gaussdb=>  create user user1 identified by 'Gauss_123';
CREATE ROLE
--创建用户并授予权限:sysadmin 
gaussdb=> create user user2 with sysadmin password 'Gauss_123'; 
CREATE ROLE
--创建用户时指定用的寿命
gaussdb=> create user user3 with VALID BEGIN '2023-09-04 23:59:59' VALID UNTIL '2023-09-10 00:00:00' identified by 'Gauss_123' CONNECTION LIMIT 100;
CREATE ROLE
--修改用户具有sysadmin权限。
gaussdb=> alter user user1 with sysadmin;
ALTER ROLE
--重命名用户
gaussdb=> alter user user2 rename to user4;
ALTER ROLE
gaussdb=> drop user user4;
DROP ROLE

--删除有数据的用户;
--无法删除,有四个对象在sjzt数据库里。
gaussdb=> drop user user1 cascade;
ERROR:  role "user1" cannot be dropped because some objects depend on it
DETAIL:  4 objects in database sjzt

--解决方法。
revoke all on database sjzt from user1;
DROP user user1;
--如果数据库是用户user1创建的.
alter database sjzt owner to sjzt;
DROP user user1;

2.表空间管理

--表空间管理
--创建表空间:
--创建自定义表空间
gaussdb=> create tablespace tbs2 relative location 'tablespace/tbs2' maxsize '10M';  
CREATE TABLESPACE
gaussdb=> select * from pg_tablespace_location((select oid from pg_tablespace where spcname='tbs2'));
 pg_tablespace_location 
------------------------
 tablespace/tbs2
(1 row)

gaussdb=> create user jack with password 'Gauss_123';
CREATE ROLE

--只在第一个节点上手工创建目录。
cd /data/cluster/data
mkdir my_tbs
chown -R omm:ommm my_tbs
chmod -R 775 my_tbs

gaussdb=> create tablespace tbs3 owner jack location '/data/cluster/data/my_tbs/tbs3';
CREATE TABLESPACE
gaussdb=> select oid,* from pg_tablespace;
  oid  |  spcname   | spcowner | spcacl | spcoptions | spcmaxsize | relative 
-------+------------+----------+--------+------------+------------+----------
  1663 | pg_default |       10 |        |            |            | f
  1664 | pg_global  |       10 |        |            |            | f
 18203 | tbs2       |    16420 |        |            | 10240 K    | t
 18208 | tbs3       |    18204 |        |            |            | f
(4 rows)

--可以看到,虽然只在第一个目录创建了表空间的目录,但是创建成功后,
--集群所有自定义表空间的信息都复制到了所有节点。
--所以创建自定义表空间,只需要在一个节点上创建目录即可,不需要在所有的节点都创建。
[omm@gaussdb01 my_tbs]$ cd tbs3/
[omm@gaussdb01 tbs3]$ ll
total 16
drwx------ 3 omm omm 4096 Sep  4 18:57 PG_9.2_201611171_cn_5001
drwx------ 3 omm omm 4096 Sep  4 18:57 PG_9.2_201611171_dn_6001_6002_6003
drwx------ 3 omm omm 4096 Sep  4 18:57 PG_9.2_201611171_dn_6004_6005_6006
drwx------ 3 omm omm 4096 Sep  4 18:57 PG_9.2_201611171_dn_6007_6008_6009
[omm@gaussdb02 my_tbs]$ cd tbs3/
[omm@gaussdb02 tbs3]$ ll
total 16
drwx------ 3 omm omm 4096 Sep  4 18:56 PG_9.2_201611171_cn_5002
drwx------ 3 omm omm 4096 Sep  4 18:56 PG_9.2_201611171_dn_6001_6002_6003
drwx------ 3 omm omm 4096 Sep  4 18:56 PG_9.2_201611171_dn_6004_6005_6006
drwx------ 3 omm omm 4096 Sep  4 18:56 PG_9.2_201611171_dn_6007_6008_6009
[omm@gaussdb02 tbs3]$ 
[omm@gaussdb03 my_tbs]$ cd tbs3/
[omm@gaussdb03 tbs3]$ ll
total 16
drwx------ 3 omm omm 4096 Sep  4 18:57 PG_9.2_201611171_cn_5003
drwx------ 3 omm omm 4096 Sep  4 18:57 PG_9.2_201611171_dn_6001_6002_6003
drwx------ 3 omm omm 4096 Sep  4 18:57 PG_9.2_201611171_dn_6004_6005_6006
drwx------ 3 omm omm 4096 Sep  4 18:57 PG_9.2_201611171_dn_6007_6008_6009
[omm@gaussdb03 tbs3]$ 


---查看表空间
gaussdb=> select oid,* from pg_tablespace; 
  oid  |  spcname   | spcowner | spcacl | spcoptions | spcmaxsize | relative 
-------+------------+----------+--------+------------+------------+----------
  1663 | pg_default |       10 |        |            |            | f
  1664 | pg_global  |       10 |        |            |            | f
 18203 | tbs2       |    16420 |        |            | 10240 K    | t
 18208 | tbs3       |    18204 |        |            |            | f
(4 rows)

gaussdb=> alter tablespace tbs3 rename to tbs4;  --重命名 
ALTER TABLESPACE
gaussdb=> alter tablespace tbs4 owner to jack;   --修改属主
ALTER TABLESPACE
gaussdb=> alter tablespace tbs4 resize maxsize unlimited; --修改大小
ALTER TABLESPACE
gaussdb=>  alter tablespace tbs4 reset (random_page_cost); --修改访问页的成本值。
ALTER TABLESPACE
gaussdb=> drop tablespace tbs4;  --删除表空间。
DROP TABLESPACE

3.数据库管理

--数据库管理
--创建数据库:
gaussdb=> create database mydb2;
CREATE DATABASE
gaussdb=> create database mydb3 with owner=jack encoding='UTF-8' LC_COLLATE='zh_CN.UTF-8' LC_CTYPE='zh_CN.UTF-8' DBCOMPATIBILITY='ORA' TABLESPACE=tbs2 CONNECTION LIMIT=1000;
CREATE DATABASE
--指定了数据库mydb3的拥有者(owner)、编码(encoding)、字符集(LC_COLLATE)、字符分类(LC_CTYPE)、兼容模式(DBCOMPATIBILITY)、
--默认表空间(TABLESPACE)、并发连接限制(CONNECTION LIMIT)
--修改数据库属性:
gaussdb=> alter database mydb3 rename to mydb4;  --修改数据库的名字
ALTER DATABASE
gaussdb=> alter database mydb2 owner to user1;  --修改数据库的属主
ALTER DATABASE
gaussdb=> alter database mydb2 set tablespace tbs2;  --设置数据库的表空间。
ALTER DATABASE
gaussdb=> drop database mydb4; --删除数据库。
DROP DATABASE
--查看数据库。
gaussdb=> \l
                             List of databases
   Name    |  Owner   | Encoding  | Collate | Ctype |   Access privileges   
-----------+----------+-----------+---------+-------+-----------------------
 mydb2     | user1    | SQL_ASCII | C       | C     | 
 postgres  | rdsAdmin | SQL_ASCII | C       | C     | =Tc/rdsAdmin         +
           |          |           |         |       | rdsAdmin=CTc/rdsAdmin+
           |          |           |         |       | rdsBackup=c/rdsAdmin +
           |          |           |         |       | rdsRepl=c/rdsAdmin   +
           |          |           |         |       | root=c/rdsAdmin      +
           |          |           |         |       | rdsMetric=c/rdsAdmin
 sjzt      | sjzt     | SQL_ASCII | C       | C     | =Tc/sjzt             +
           |          |           |         |       | sjzt=CTc/sjzt        +
           |          |           |         |       | sjzt=APm/sjzt
 template0 | rdsAdmin | SQL_ASCII | C       | C     | =c/rdsAdmin          +
           |          |           |         |       | rdsAdmin=CTc/rdsAdmin
 template1 | rdsAdmin | SQL_ASCII | C       | C     | =c/rdsAdmin          +
           |          |           |         |       | rdsAdmin=CTc/rdsAdmin
(5 rows)

--系统表查看数据库。
gaussdb=> select * from pg_database;
  datname  | datdba | encoding | datcollate | datctype | datistemplate | datallowconn | datconnlimit | datlastsysoid | datfrozenxid | dattablespace | datcompatibility |                            datacl                                                       | datfrozenxid64 | datminmxid | dattimezone 
-----------+--------+----------+------------+----------+---------------+--------------+--------------+---------------+--------------+---------------+------------------+-------------------------------------------------------------------------------------------------------------------+----------------+------------+-------------
 template1 |     10 |        0 | C          | C        | t             | t            |           -1 |         12732 | 0            |          1663 | MYSQL            | {=c/rdsAdmin,rdsAdmin=CTc/rdsAdmin}|              3 |          1 | PRC
 template0 |     10 |        0 | C          | C        | t             | f            |           -1 |         12732 | 0            |          1663 | MYSQL            | {=c/rdsAdmin,rdsAdmin=CTc/rdsAdmin}|              3 |          0 | PRC
 postgres  |     10 |        0 | C          | C        | f             | t            |           -1 |         12732 | 0            |          1663 | MYSQL            | {=Tc/rdsAdmin,rdsAdmin=CTc/rdsAdmin,rdsBackup=c/rdsAdmin,rdsRepl=c/rdsAdmin,root=c/rdsAdmin,rdsMetric=c/rdsAdmin} |              3 |          0 | PRC
 mydb2     |  18191 |        0 | C          | C        | f             | t            |           -1 |         12732 | 0            |         18203 | MYSQL            |  |              3 |          0 | PRC
 sjzt      |  16900 |        0 | C          | C        | f             | t            |           -1 |         12732 | 0            |          1663 | MYSQL            | {=Tc/sjzt,sjzt=CTc/sjzt,sjzt=APm/sjzt}|              3 |          0 | PRC
(5 rows)
gaussdb=> 

4.总结

GaussDB中可以设置用户的寿命,这是它的一个特色。表空间可以自定义,并且只需要在一个节点创建目录授权即可。数据库的创建,支持:ORA,MYSQL,TD,PG四种模式。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值