集群目录中的 PostgreSQL 数据库文件在哪里?

Where are PostgreSQL database files in the cluster directory?

在 OSX,我最近通过 Homebrew 安装了 PostgreSQL:

brew install postgresql

然后我创建了一个新的数据库集群:

initdb /usr/local/var/postgres

我确认 postgresql 服务器是 运行 预期的数据库集群:

$ ps auxwww | grep postgres    
0:00.03 /usr/local/opt/postgresql/bin/postgres -D /usr/local/var/postgres

我创建了一个新数据库:

createdb mynewdb

我看到它存在。

$ psql
<user>=# \l 
mynewdb | <user> | UTF8 | en_US.UTF-8 | en_US.UTF-8

但是,我发现集群目录没有明显变化(例如,仅通过检查内容 ls -lt)。

数据库写入/存储在集群目录(或子目录)的什么位置?

因为@ahorsewithnoname 说它们在基本目录中,(在其他一些平台上 data/base) 数字名称是数据库的 OID,目录中的文件将以 table 的 OID 或它们相关的索引命名。

可以使用此查询确定数据库 oid。 oid 就像一个隐藏的唯一 id 列。

select oid,* from pg_catalog.pg_database;

table 索引oid可以这样找到,

select * from pg_catalog.pg_class;

文件名基础的 relifilenode 列(感谢@jjames)