- 在GP系统中有表空间(tablespace)和文件空间(filespace)的概念。
- 有不同,在postgresq9.6中可以直接在创建表空间时指定路径。
- 在系统初始化时,只有两个表空间pg_default和pg_gloal。这两个表空间都在文件空间pg_system下。
select a.spcname,b.fsname from pg_tablespace a,pg_filespace b where spcfsoid=b.oid;
-
在Greenplum中,表空间必须创建在文件系统上。默认只有Pg_system一个表空间。
-
创建表空间
- 创建存储目录(在GP系统的每台主机上都要创建)
#mkdir /fstest/primary #mkdir /fstest/mirror #mkdir /fstest/master 然后授权给gpadmin用户使用 #chown gpadmin /fstest/primary #chown gpadmin /fstest/mirror #chown gpadmin /fstest/master
- $ gpfilespace
会要求输入文件空间名字,和上面所述的路径 最后生成一个配置文件 20170313:18:55:57:016253 gpfilespace:idap-241:gpadmin-[INFO]:-Creating configuration file 20170313:18:55:57:016253 gpfilespace:idap-241:gpadmin-[INFO]:-[created] 20170313:18:55:57:016253 gpfilespace:idap-241:gpadmin-[INFO]:-To add this filespace to the database please run the command:gpfilespace --config /home/gpadmin/gpfilespace_config_20170313_184540
- 创建文件空间
gpfilespace --config /home/gpadmin/gpfilespace_config_20170313_184540
- 创建表空间
# create tablespace tbs_test1 filespace fs_test;
-
使用表空间
- 创建数据库时指定表空间
create database testdb13 tablespace tbs_test1 connection limit 10;
-
在为数据库指定了表空间之后,它所有的表默认都创建在对应的表空间里面。
-
也可以在创建表时指定表空间。
-
授权
- 表空间有权限控制
- h grant 能看到
本文内容是在有道笔记markdown文件编辑后再复制粘贴到这来的,格式比之前好一些,感谢有道。