Greenplum表空间管理

  • 在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文件编辑后再复制粘贴到这来的,格式比之前好一些,感谢有道。

原文地址:https://www.cnblogs.com/fangjx/p/6546790.html