PostgreSQL的数据目录移到新位置

要准备移动PostgreSQL的数据目录,让我们通过启动一个交互式PostgreSQL会话来验证当前位置。 在下面的线, psql是进入交互式显示器的命令, -u postgres告诉sudo来执行psql作为系统的postgres用户:

sudo -u postgres psql
进入监视器后,选择数据目录:

SHOW data_directory;

      data_directory       
------------------------------
/var/lib/postgresql/9.5/main
(1 row)

此输出确认PostgreSQL的配置为使用默认的数据目录, /var/lib/postgresql/9.5/main ,所以这是我们需要移动的目录。 一旦你确认你的系统上的目录,键入\q退出。

为了确保数据的完整性,我们将在我们实际修改数据目录之前关闭PostgreSQL:

sudo systemctl stop postgresql
systemctl不显示所有服务管理命令的结果。 要验证您是否成功,请使用以下命令:

sudo systemctl status postgresql

现在,服务器关闭,我们将现有的数据库目录复制到新的位置用rsync 。 使用-a标志保留的权限和其他目录属性而-v提供详细输出,以便能够按照进度。

注意:确保没有对目录没有尾随斜线,如果你使用制表符完成可以加入。 当有一个结尾的斜线, rsync将转储目录复制到安装点,而不是转移成一个包含内容PostgreSQL目录:

我们要启动rsync从postgresql目录,以模拟在我们的新位置,原来的目录结构。 通过创建postgresql PostgreSQL用户的安装点目录中的目录和保留所有权,我们能避免未来的升级权限问题。 该版本的目录, 9.5不是绝对必要的,因为我们已经定义的位置明确在postgresql.conf的文件,但按照约定的项目肯定会受到伤害,尤其是如果有一个需要在将来运行PostgreSQL的多个版本。

sudo rsync -av /var/lib/postgresql /mnt/volume-nyc1-01
复制完成后,我们将使用.bak扩展名重命名当前文件夹,并保留该文件,直到我们确认移动已成功。 通过重命名它,我们将避免可能由于新的和旧的位置中的文件引起的混乱:

sudo mv /var/lib/postgresql/9.5/main /var/lib/postgresql/9.5/main.bak
现在我们准备把注意力转向配置。

PostgreSQL有几种方法来覆盖配置值。 默认情况下, data_directory设为/var/lib/postgresql/9.5/main在/etc/postgresql/9.5/main/postgresql.conf文件。 编辑此文件以反映新的数据目录:

sudo nano /etc/postgresql/9.5/main/postgresql.conf
查找开头的行data_directory ,改变它遵循以反映新的位置的路径。

在我们的示例中,更新的文件看起来像下面的输出:

/etc/postgresql/9.5/main/postgresql.conf
. . .
data_directory = ‘/mnt/volume-nyc1-01/postgresql/9.5/main’
. . .
第3步 - 重新启动PostgreSQL
我们准备好启动PostgreSQL。

sudo systemctl start postgresql
sudo systemctl status postgresql
为了确保新的数据目录确实在使用,启动PostgreSQL监视器。

sudo -u postgres psql
再次查看数据目录的值:

SHOW data_directory;

            data_directory
-----------------------------------------
/mnt/volume-nyc1-01/postgresql/9.5/main
(1 row)

现在您已经重新启动PostgreSQL并确认它正在使用新位置,请确保您的数据库完全正常运行。 验证任何现有数据的完整性后,您可以删除备份数据目录:

sudo rm -Rf /var/lib/postgresql/9.5/main.bak

最后一次重新启动PostgreSQL以确保它按预期工作:

sudo systemctl restart postgresql
sudo systemctl status postgresql

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值