initdb 的时候会指定一个 PGDATA 目录,这就是 PostgresQL 存储数据的地方。典型的位置是在 /postgres/data a 。PGDATA 下面各项存储的内容大概是:
文件或目录名 存储内容
PG_VERSION PostgresQL 实例的版本号如 9.3 之类的
base 每个 database 会在 base 目录下有一个子目录
global Postgres 自己的 meta 数据库存放的地方(全局 DB)
pg_xlog WAL(Write Ahead Log 预写式日志)存放的地方
base 目录是最重要的一个目录,放的是每一个 database 的数据。base 目录里的每一个数字目录对于一个 database 的 oid, 可以通过 查看 pg_database 这张表查看每一个 数据库的 oid 。
select oid, datname from pg_database ;
select pg_relation_filepath('20191231-1.aoi_jobinfo');