1条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
PostgreSQL数据库的文件存储在哪里?
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 ;
可以看到 oid和文件夹的名称是对应的。
每一张表的数据(大部分)又是放在 base/(oid)/(relfilenode) 这个文件里面:
select relname, relowner, relfilenode from pg_class where relowner = 10 ;
--或者可以加入表名称的过滤
select relname, relowner, relfilenode from pg_class where relowner = 10 and relname like '%viid%';
具体可以参考:https://blog.csdn.net/carcarrot/article/details/110088439
评论
有用 1
墨值悬赏