如何移动postgresql 13数据库的位置

How to move location of postrgresql 13 database

我希望将 pgsql 13 数据库的位置从默认位置移动到另一个磁盘。

我最初遵循了这个指南link

但这是针对 v9.5,而不是 13。我的挑战是数据库的位置 - 从 运行 下面的命令中找到 - 也是配置文件的存储位置。

SHOW data_directory;
     data_directory
------------------------
 /var/lib/pgsql/13/data
(1 row)

SHOW config_file;
     config_file
----------------------------------------
 /var/lib/pgsql/13/data/postgresql.conf
(1 row)

对于 9.5 版,配置文件位于一个单独的区域中,所以此时我被指南困住了。

看来如果我想移动数据库位置我还必须移动所有配置文件。

我试过将整个数据文件夹移动到新位置并重新启动 postgres,但没有成功。

如有任何帮助,我们将不胜感激。

假设您的配置文件位于 $PG_DATA 下,它们所属的位置:


  1. 关闭(旧)数据库[​​=31=]
  2. 将数据目录复制到新位置(使用cp -rp,或rsync -acv,或tar,或cpio,...)确保该文件副本保留属性和所有权。 pgdata 目录应该是 mode == 0600,并且 owner.group == postgres.postgres.
  3. [可选]重命名旧数据目录
  4. [可选]您可能想要在新位置编辑配置文件
  5. 编辑启动文件(在 /etc/init.d/postgresql 中)并确保 $PG_DATA 指向新位置。 [注意:这是为了 ubuntu;其他发行版可能使用不同的启动机制]
  6. 启动新数据库,并检查它是否运行(ps auxw| grep postgres,以及是否可以连接(psql -U postgres postgres)
  7. [可选] 删除旧位置的目录树。