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

标签 postgresql homebrew

在 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/

相关文章:

postgresql - Postgres - 多列索引 - 前导(最左边)列

sql - 为什么SQL既支持两个单引号又支持反斜杠转义

homebrew - 有没有办法在我的 .bash_profile 中加快对 brew --prefix 的调用?

python - 在 OS-X Mavericks 上安装了 OpenCV 但未链接错误消息

postgresql - 如何通过一个单一的操作从生产数据库中克隆测试数据库?

java - C3P0 托管连接池无法从其主要资源或工厂资源中获取资源

postgresql - Go语言,Postgres : cannot get oid after Scan

php - 如何在 OS X 10.9 上使用 OpenSSL 编译 PHP?

python - 使用 Homebrew 安装另一个 python 后如何恢复 Mac 默认 python?

go - go-swagger:找不到命令