在 NFS 驱动器上移动 postgres 数据文件夹。符号链接、重新初始化集群或修改 init.d 脚本是否更好?

在 NFS 驱动器上移动 postgres 数据文件夹。符号链接、重新初始化集群或修改 init.d 脚本是否更好?

我想将我的 postgresdata文件夹移动到 NFS 驱动器,但我不确定最好的方法是什么。我想到了三个选择:

  1. 根据Postgres 文档,一种方法是使用initdb带有-D选项的命令。

    initdb如果您指定的目录不存在,将尝试创建该目录。

  2. 列出的另一种方法Linux问题网站是更新postgressqlinit 脚本以指向新目录,在本例中是 NFS 驱动器。

  3. 最后,我想我只需将pgsql/data文件夹复制到 NFS 驱动器并简单地对该文件夹进行符号链接即可。

    IE,pgsql/data -> nfs/data

符号链接或更新 init 脚本对我来说似乎是最简单的方法,但我不确定它们是否是最佳或最安全的方法。我希望有人能帮助我。任何建议、疑虑和利弊都将不胜感激。

环境信息

  • Red Hat Enterprise Linux 服务器 5.7
  • PostgreSQL 8.3.6

假设 NFS 驱动器已使用-maproot=root选项安装,并且用户将访问该 NFS 驱动器root

答案1

您只需关闭 Postgres,移动文件夹并更改初始化脚本以指向数据目录的正确位置即可。data/在重新启动服务器之前,请仔细检查配置文件中是否有对旧路径的引用。


你可能不想这样做。真的。这是一个坏的想法。NFS
的另一个名字是网络故障系统。它并不以可靠性而闻名,如果底层文件系统在不合适的时间消失(例如在附加到 WAL 时),可能会真的毁了你的一天,更不用说你的数据库了。记住 Postgres 不会没什么特别的对于 NFS,如果发生意外情况,它会崩溃(见Postgres 手册中的 17.2.1)。

也许如果您描述您正在尝试解决的根本问题(提出一个新问题),我们可以帮助您以风险较小的方式做到这一点?

相关内容