我在pg_tblspc/16384/PG_11_201809051/13888/16385
等目录下的pg_tblspc中找到了这些文件,并且发现它们来自TABLESPACE_VERSION_DIRECTORY宏。
但是我不明白为什么需要这个级别的目录,不能直接用pg_tblspc/16384/13888/16385
吗?有什么好处?不用会怎么样?和表空间的符号链接有关系吗?
我在pg_tblspc/16384/PG_11_201809051/13888/16385
等目录下的pg_tblspc中找到了这些文件,并且发现它们来自TABLESPACE_VERSION_DIRECTORY宏。
但是我不明白为什么需要这个级别的目录,不能直接用pg_tblspc/16384/13888/16385
吗?有什么好处?不用会怎么样?和表空间的符号链接有关系吗?
1条答案
按热度按时间tez616oj1#
TABLESPACE_VERSION_DIRECTORY
的目的是避免意外地使用错误版本的PostgreSQL的数据文件。在主数据目录中,PG_VERSION
文件可以达到这个目的。TABLESPACE_VERSION_DIRECTORY
显示其强大功能的一个非常明显的地方是在使用pg_upgrade
升级时:由于表空间目录位置保持不变,因此来自不同版本的文件仅通过不同的TABLESPACE_VERSION_DIRECTORY
来区分。