如何移动 PostgreSQL 数据目录?

如何移动 PostgreSQL 数据目录?

我的 PostgreSQL 安装默认使用/var/lib/pgsql目录来存储数据、备份和配置文件。由于磁盘空间不足,我安装了新硬件并将其安装在目录中/data。完成此操作后,我现在想将数据和备份移到那里。

正确完成此转换的最佳方法是什么?请注意,我不需要原子转换 – 数据传输过程中,PostgreSQL 服务可以处于离线状态。

提前致谢,

皮特。

答案1

实际上有几个选项。最直接的可能是关闭服务器,然后将 /var/lib/pgsql 下的整个树复制到新磁盘,然后绑定挂载或将其挂载回 /var/lib/pgsql。我可能会选择后者,但可能有所不同。

mkdir /data/pgsql
cd /var/lib/pgsql
cp -aRp * /data/pgsql
cd ..
mv pgsql pgsql.safe
mkdir pgsql
mount -obind /data/pgsql /var/lib/pgsql

进行测试,如果有效,则添加合适的条目/etc/fstab

类似地,您可以将 /var/lib/pgsql 的全部内容复制到 /data,然后卸载 /data 并将其挂载到 /var/lib/pgsql(将旧目录移开并重新创建目录)。再次运行测试并对 fstab 进行适当的更改。

答案2

根据您的服务器的配置方式,您可以简单地更改 PG_DATA 变量。

但你可以轻松地做到:

service postgresql stop
mv /var/lib/pgsql/ /data/pgsql
ln -s /data/pgsql /var/lib/pgsql
service postgresql start

它将完成这项工作。

相关内容