greenplum数据库对象(三)

一个GPDB系统可以有多个数据库(Database)。这与一些DBMS不同(比如Oracle),它们的Instance就是Database。在GP系统中,虽然可以创建多个DB,但是客户端程序一次只能连接一个DB –不可以跨越DB执行查询语句。

GP数据库
创建数据库
CREATE DATABASE DBNAME;
克隆数据库(新的DB包含旧的的所有对象和数据)
CREATE DATABASE new_dbname TEMPLATE old_dbname;
变更数据库
ALTER DATABASE DBNAME SET search_path TO myschema, public, pg_catalog;
删除数据库
DROP DATABASE DBNAME;
查看数据库的列表
SELECT datname from pg_database;
查看数据库下的所有表信息
SELECT * from pg_class;
文件空间
一个表空间需要一个文件系统位置来存放它的数据库文件。
在Greenplum数据库中,Master和每一个Segment(主要和镜像)要求不同的存储位置。
一个Greenplum数据库中所有部件所需的文件系统位置集合被称作一个文件空间。文件空间可以被一个或者多个表空间使用。
要创建一个文件空间,应在用户所有的Greenplum主机上准备好逻辑文件系统,然后使用gpfilespace工具来定义文件空间。用户必须是一个数据库超级用户才能创建文件空间。
使用gpfilespace创建一个文件空间
作为gpadmin用户登入到Greenplum数据库的Master。
su - gpadmin
创建一个文件空间配置文件:
gpfilespace -o gpfilespace_config
再次运行gpfilespace来基于该配置文件创建该文件空间:
gpfilespace -c gpfilespace_config
使用gpfilespace移动临时文件
确保文件空间存在,且与存储其他用户数据的文件空间不同;将GPDB系统停掉,保持停机状态;把GPDB启动为限制模式,确保其他用户无法连接,gpfilespace --movetempfilespace filespace_name
使用gpfilespace移动事务文件
gpfilespace --movetransfilespace filespace_name
创建表空间
可以使用下面的命令查看当前数据库的表空间和文件空间对应关系。
SELECT spcname as tblspc, fsname as filespc, fsedbid as seg_dbid, fselocation as datadir FROM pg_tablespace pgts, pg_filespace pgfs, pg_filespace_entry pgfse WHERE pgts.spcfsoid=pgfse.fsefsoid AND pgfse.fsefsoid=pgfs.oid ORDER BY tblspc, seg_dbid;
pg创建表空间的语法:
CREATE TABLESPACE testspace
OWNER dbdream
LOCATION ‘D:/changliangdajian/pg’;
删除表空间
DROP TABLESPACE testspace;
注:表空间只能被其Owner和SUPERUSER删除。
删除文件空间
DROP FILESPAC E命令完成
注:只有SUPERUSER可以删除文件空间。
模式(Schema)
是在DB内组织对象的一种逻辑结构。模式可以允许用户在一个DB内不同的模式之间使用相同Name的对象(比如Table)
CREATE SCHEMA myschema;
删除模式
CREATE SCHEMA myschema; --空模式
DROP SCHEMA myschema CASCADE ; --直接删除模式及相关的所有Object(Table、Index、Function等)

创建用户
create role rolename password ‘*******’ createdb login;
查看数据库用户信息
select rolname,oid from pg_roles;
创建完文件空间,即可在文件空间上创建表空间
create tablespace tsname filespace fsname;
要使用户默认就使用新建的表空间,需要设置用户的默认表空间
alter role rolename set default_tablespace=‘tsname’;
授权后,即可使用新建的表空间
grant all on tablespace tsname to rolname;
创建用户 并指定默认资源队列
CREATE ROLE tuser WITH LOGIN PASSWORD ‘tuser’ resource queue test_queue;
在数据库上的权限:
grant create on database testdb to tu1;
revoke connect on database testdb from tu1;
在表上的权限:
grant select on tu1schema.table1 to tu2;
grant select,update,delete,insert on tu1schema.table1 to tu2;
表与函数的权限:
grant select on tablename to username;
grant all on function functionName to username;
alter function functionName owner to username;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值