Page tree
Skip to end of metadata
Go to start of metadata

数据库初始化后默认创建pg_default和pg_global表空间;

如果在创建表时没有指定表空间,默认存放在pg_default表空间;

在数据库集群层管理的表存放在pg_global表空间;

pg_default物理位置$PGDATA\base;
pg_global物理位置$PGDATA\global;

一个表空间可以被多个数据库使用,这时会在表空间文件夹下创建该数据库对应的子文件夹;

创建用户表空间会在$PGDATA\pg_tblspc文件夹下创建指向该用户表空间的链接。


创建/查询表空间

# --
# create tablespace mytbs01 location '/acdata/pgsql/11/tbs/mytbs01';
# --
# select oid , * from pg_tablespace ;
oid    | spcname    | spcowner | spcacl | spcoptions 
-------+------------+----------+--------+------------
1663   | pg_default | 10       |        | 
1664   | pg_global  | 10       |        | 
16391  | mytbs01    | 10       |        | 


$ ls -l /acdata/pgsql/11/data/pg_tblspc
total 0
lrwxrwxrwx. 1 pgsql dba 28 May 17 16:36 16391 -> /acdata/pgsql/11/tbs/mytbs01



更改表空间位置

$ /usr/pgsql-11/bin/pg_ctl -D /acdata/pgsql/11/data/ stop

$ ls -l
lrwxrwxrwx. 1 pgsql dba 28 May 17 16:36 16391 -> /acdata/pgsql/11/tbs/mytbs01

$ mv /acdata/pgsql/11/tbs/mytbs01 /acdata/pgsql/11/tbs/myts01 

$ unlink 16391

$ ln -s /acdata/pgsql/11/tbs/myts01 16391
$ ls -l
lrwxrwxrwx. 1 pgsql dba 27 May 17 17:19 16391 -> /acdata/pgsql/11/tbs/myts01

$ /usr/pgsql-11/bin/pg_ctl -D /acdata/pgsql/11/data/ -l /acdata/pgsql/11/logs/alert_pg.log start
  • No labels