HGDB查看数据库与表空间对应的物理文件

来源:互联网 发布:人工智能 健康管理 编辑:程序博客网 时间:2024/06/05 20:01

1.创建一个表空间:

su - highgomkdir -p /tmp/data/user_tCREATE TABLESPACE tbls_t OWNER user_t LOCATION '/tmp/data/user_t';

在此之前应该确保目录/tmp/data/user_t有权限访问,并且目录为空。
2.创建一个数据库,指明该数据库的表空间是刚刚创建的user_t:

CREATE DATABASE db_t  TEMPLATE template1 OWNERE user_t TABLESPACE tbls_t;CREATE DATABASE db_t  TABLESPACE tbls_t;

连接数据库

\c db_t user_tdb_t=# select pg_relation_filepath('pg_class'::regclass);            pg_relation_filepath             --------------------------------------------- pg_tblspc/57351/PG_9.5_201510051/57352/1259(1 row)

注:pg_relation_filepath
Database Object Location Functions
it returns the entire file path name (relative to the database cluster’s data directory PGDATA) of the relation.

分解:
1) pg_tblspc/57351/PG_9.5_201510051/57352/1259
代表$PGDATA中的相对路径

2)57351—对应表空间oid

db_t=# select spcname from pg_tablespace where oid=57351;1 spcname --------- tbls_t(1 row)

表空间的文件指向

[highgo@hgdb01 pg_tblspc]$ cd /data/highgo/4.1.1/data/pg_tblspc[highgo@hgdb01 pg_tblspc]$ ls -ltotal 0lrwxrwxrwx. 1 highgo highgo 16 Dec  8 17:33 57351 -> /tmp/data/user_t

3)57352—对应数据库的oid

db_t=# select oid,datname from pg_database where datname=current_database();                                       oid  | datname -------+--------- 57352 | db_t(1 row)  

4)1259—对应表空间的main fork文件名
其他fork后面加后缀fsm, vm, init等. 对于超过1GB(系统编译时指定), 文件名后面加.x

[highgo@hgdb01 57352]$ ll /data/highgo/4.1.1/data/pg_tblspc/57351/PG_9.5_201510051/57352/1259*-rw-------. 1 highgo highgo 106496 Dec  8 17:34 /data/highgo/4.1.1/data/pg_tblspc/57351/PG_9.5_201510051/57352/1259-rw-------. 1 highgo highgo  24576 Dec  8 17:34 /data/highgo/4.1.1/data/pg_tblspc/57351/PG_9.5_201510051/57352/1259_fsm-rw-------. 1 highgo highgo   8192 Dec  8 17:34 /data/highgo/4.1.1/data/pg_tblspc/57351/PG_9.5_201510051/57352/1259_vm

by 波罗

阅读全文
0 0
原创粉丝点击