PostgreSQL 目录结构
PostgreSQL之base和global目录完全解析
PostgreSQL之base和global目录完全解析
1. base目录
对于集簇里的每个数据库,在$PGDATA/base里都有一个子目录对应,子目录的名字为该数据库在 pg_database里的 OID。
#查看各个数据库的oid
select oid,datname from pg_database;
postgres 是我的库名
每一张表的数据(大部分)又是放在 $PGDATA/base/{dboid}/{relfilenode} 这个文件里面,relfilenode一般情况下和和tboid一致,但有些情况下也会变化,如TRUNCATE、REINDEX、CLUSTER以及某些形式的ALTER TABLE。
#查询relowner
select oid,rolname from pg_authid where rolname='postgres';
select relname ,relowner, relfilenode,reltoastrelid from pg_class;
包含文件
在$PGDATA/base/{dboid}中通常会包含三种文件:例如16395、16395_fsm、16395_vm,分别是该数据库对应主表数据文件或索引数据文件、以_fsm(Free Space Mapping)后缀文件,其对应的空闲空间映射文件、以_vm(visibility map)后缀文件,其对应的可见性映射文件。
数据文件
欢迎来撩 : 汇总all