在 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 说它们在基本目录中,(在其他一些平台数据/基础上)
数字名称是数据库的 OID
,目录中的文件将以它们相关的表或索引的 OID
命名。
可以使用此查询确定数据库 oid。 oid 就像一个隐藏的唯一 id 列。
select oid,* from pg_catalog.pg_database;
表和索引oid可以这样找到,
select * from pg_catalog.pg_class;
文件名基础的 relifilenode 列(感谢@jjames)
关于postgresql - 集群目录中的 PostgreSQL 数据库文件在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27882187/