我想将我的 postgresdata
文件夹移动到 NFS 驱动器,但我不确定最好的方法是什么。我想到了三个选择:
根据Postgres 文档,一种方法是使用
initdb
带有-D
选项的命令。initdb
如果您指定的目录不存在,将尝试创建该目录。列出的另一种方法Linux问题网站是更新
postgressql
init 脚本以指向新目录,在本例中是 NFS 驱动器。最后,我想我只需将
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)。
也许如果您描述您正在尝试解决的根本问题(提出一个新问题),我们可以帮助您以风险较小的方式做到这一点?