为什么PostgreSQL的表空间中需要一个TABLESPACE_VERSION_DIRECTORY?

siv3szwd  于 2023-03-29  发布在  PostgreSQL
关注(0)|答案(1)|浏览(84)

我在pg_tblspc/16384/PG_11_201809051/13888/16385等目录下的pg_tblspc中找到了这些文件,并且发现它们来自TABLESPACE_VERSION_DIRECTORY宏。
但是我不明白为什么需要这个级别的目录,不能直接用pg_tblspc/16384/13888/16385吗?有什么好处?不用会怎么样?和表空间的符号链接有关系吗?

tez616oj

tez616oj1#

TABLESPACE_VERSION_DIRECTORY的目的是避免意外地使用错误版本的PostgreSQL的数据文件。在主数据目录中,PG_VERSION文件可以达到这个目的。TABLESPACE_VERSION_DIRECTORY显示其强大功能的一个非常明显的地方是在使用pg_upgrade升级时:由于表空间目录位置保持不变,因此来自不同版本的文件仅通过不同的TABLESPACE_VERSION_DIRECTORY来区分。

相关问题