暂无图片
PostgreSQL数据库的文件存储在哪里?
我来答
分享
Jiang
2021-09-18
PostgreSQL数据库的文件存储在哪里?

PostgreSQL数据库的文件存储在哪里?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
Lucifer三思而后行
暂无图片

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
打赏 0
暂无图片
Jiang
题主
2021-09-18
谢谢
回答交流
Markdown


请输入正文
提交
相关推荐
PCP和PGCE这两个证哪个含金量更高一些更值得考?
回答 2
这是两个认证体系,还是建议自行考虑
pg中为什么大量的逻辑读不好?怎么理解
回答 1
大量的全表扫描,全表扫描会带来大量的逻辑读的请求逻辑读更多引起latchlock,消耗CPU资源、性能损耗IO消耗负载较高。逻辑读buffer读物理读,无论大量的buffer读还是物理读,都会影响性能
pcm认证与pgcm认证,有啥区别
回答 1
已采纳
PGCM(PostgreSQLCertifiedMaster),是中国PostgreSQL技术能力认证体系的最高级别,代表PostgreSQL数据库认证大师。要考PGCM必先通过PGCA、PGCP。P
在postgresql 表中建了一个check约束使用了like判断: check (name like '[0-9]'); 结果insert into 表名 values('0'); 执行报错:违反了检醒约束
回答 1
已采纳
可以使用similarto方法替换like(postgres@[local])[sbtest]14:01:15createtabletlike(idint,namevarchar(20)check(n
pacemaker+pg13.10流复制查看资源状态异常
回答 1
从节点的主从配置参数是你自己手动配置的,还是pacemaker接管生成的?
pg中show 参数,怎么模糊查看或者show all|grep -i data这样怎么过滤需要的参数名
回答 3
这个问题可以用pg15的psql客户端\dconfig查看
PostgreSQL 中一般 IPC: MessageQueueSend 等待是什么原因造成的?
回答 1
由于没有更详细的信息,只能推测可能与资源争用有关,打开或观察下autovacuum信息,或者系统进度报告pgstatprogressvacuum,或者系统配置不高。
PG流复制,从库用pg_basebackup -h 主库IP -p 5432 -U rep_user -F p -P -x -R -D /var/lib/postgres/data 进度到4%左右不动?
回答 1
可以打开日志功能分析一下,除了pgbasebackup;可以使用传统的start和stop backup方式。
PostgreSQL 如何修改表中字段的顺序?
回答 4
参考https://blog.csdn.net/weixin39540651/article/details/118482969
如何从列中拆分数据并插入到 postgresql 中的另一个表?
回答 1
已采纳
insertintotable2selectid,regexpsplittotable(username,',')fromtable1;
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~