1.查看数据库ID :
select oid,dataname from pg_database;
oid | dataname
------------------------
17146 testdb
2.查对应表空间ID:
select oid,* from pg_tablespace;
oid | spcname
------------------------
17152 tbs_test_data
从表对象查找物理文件:
select relname,relfilenode from pg_class where relname =''
select b.nspname||'.'||a.relname,a.relfilenode from pg_class a ,pg_class b where a.relnamespace=b.oid and and a.relname='表名' and b.nspname='模式名'
从物理文件查找表(此处数据文件名为2076025282):
/data1/fs_test_data/primary/gpseg133/17152/17146/2076025282
select b.nspname||'.'||a.relname,a.relfilenode from pg_class a ,pg_class b where a.relnamespace=b.oid and a.relfilenode ='2076025282'
文件路径:
/data1/fs_test_data/primary/gpseg133/17152/17146/2076025282
/数据目录/实例名/表空间ID/数据库ID/数据文件

本文详细介绍了如何通过数据库ID和表空间ID来追踪PostgreSQL中的数据文件,从pg_database和pg_tablespace系统视图获取ID,再到pg_class找到表的物理文件,最后揭示了数据文件在系统中的实际路径。这个过程对于数据库管理和故障排查至关重要。

1352

被折叠的 条评论
为什么被折叠?



