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

Joh*_*ohn 4 postgresql nfs migration symbolic-link

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

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

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

  2. LinuxQuestions.org上列出的另一种方法是更新postgressqlinit 脚本以指向新目录,在本例中为 NFS 驱动器。

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

    IE, pgsql/data -> nfs/data

符号链接或更新 init 脚本对我来说似乎是最简单的方法,但我不确定它们是最好还是最安全的方法。这是我希望有人可以帮助我的地方。任何建议、顾虑和优点/缺点将不胜感激。

环境信息

  • 红帽企业 Linux 服务器 5.7
  • PostgreSQL 8.3.6

假设 NFS 驱动器是使用-maproot=root选项安装的,并且root用户可以访问 NFS 驱动器。

vor*_*aq7 8

您可以简单地关闭 Postgres,移动文件夹并更改初始化脚本以指向数据目录的正确位置。data/在重新启动服务器之前,仔细检查下面的配置文件以获取对旧路径的引用。


你可能不想这样做。真的。这是一个主意。
NFS 的另一个名称是网络故障系统。它的可靠性并不为人所知,并且在不合时宜的时间(例如附加到 WAL 时)让底层文件系统消失可能真的会毁了你的一天,更不用说你的数据库了。请记住,Postgres对 NFS没有什么特别之处,如果发生意外情况,它会吓坏了(请参阅Postgres 手册中的 17.2.1)。

也许如果您描述了您要解决的潜在问题(提出一个新问题),我们可以帮助您以较低风险的方式解决问题?

  • 这是 NFS FUD。NFS 可以是稳定的。Oracle 和 VMWare(两者都执行高度密集的 I/O)在 NFS 导出上运行良好。 (6认同)