我确实使用了pg_upgrade
.
我的机器上有一个版本为 9.6 的 Postgresql 集群,然后我确实启动了另一个版本为 v12 的集群。他们每个人都有单独的数据目录,在这样的目录方案中:
./postgresql/
├── 12
│ └── main
└── 9.6
└── main
然后我关闭了 9.6 集群并开始使用 v12 集群。但是现在,偶然发现base
v12集群目录中的一些文件不是文件,而是base
9.6目录下文件的符号链接;例如:
./postgresql/12/main/base/16401/35093 -> ./postgresql/9.6/main/base/16402/35093
为什么会这样?而且,更重要的是,这是怎么回事?!我的意思是,我认为base
目录内的文件对于每个数据库来说是如此内部,以至于这根本不可能。
而且,我可以做些什么来禁用符号链接吗?
这是
pg_upgrade
带有-k
选项的结果,这些不是符号链接,而是硬链接。pg_upgrade
如果您在一切正常后没有设法启动旧集群。您只是在升级后忘记删除旧集群。现在就这样做:如果使用
-k
,则升级过程不会复制,而是链接文件。这使得升级更快,但使旧集群无法使用。