准备工作

要完成本教程,我们需要:

  • 具有 sudo 权限的用户的 Ubuntu 16.04 服务器。
  • 一个 PostgreSQL 服务器。如果我们还没有设置,如何在 Ubuntu 16.04 上安装 PostgreSQL 9.6 文章可以。
  • 我们将其中移动 PostgreSQL 数据库数据的新卷。

在本教程中,我们会将 PostgreSQL 数据库数据移动到安装在 /opt/pgdb 的存储卷。

步骤 1. 移动 PostgreSQL 数据目录

检查当前的 PostgreSQL 数据目录
在开始移动 PostgreSQL 数据目录之前,我们必须检查当前的 PostgreSQL 数据目录位置。

连接到 PostgreSQL 服务器并运行以下命令:

# sudo -u postgres psql
could not change directory to "/root": Permission denied
psql (9.6.1)
Type "help" for help.
postgres=# SHOW data_directory;
        data_directory         
------------------------------
 /var/lib/postgresql/9.6/main
(1 row)
postgres=#

请注意,PostgreSQL 被配置为使用默认数据目录,/var/lib/postgresql/9.6/main

停止 PostgreSQL 服务

# sudo systemctl stop postgresql

复制 PostgreSQL 数据库数据目录

# sudo rsync -av /var/lib/postgresql /opt/pgdb

复制 PostgreSQL 数据库数据目录后,我们将重命名旧数据库数据目录。

# sudo mv /var/lib/postgresql/9.6/main /var/lib/postgresql/9.6/main.backup

步骤 2. 指向新的 PostgreSQL 数据目录位置

打开 /etc/postgresql/9.6/main/postgresql.conf 文件并使用新路径位置修改 data_directory 设置

# sudo vi /etc/postgresql/9.6/main/postgresql.conf
data_directory = '/opt/pgdb/postgresql/9.6/main'         # use data in another directory
                                        # (change requires restart)
.
.

启动 PostgreSQL 服务

# sudo systemctl start postgresql

步骤 3. 检查

连接到 PostgreSQL 并使用以下命令验证 PostgreSQL 数据库数据目录

# sudo -u postgres psql
could not change directory to "/root": Permission denied
psql (9.6.1)
Type "help" for help.
postgres=# SHOW data_directory;
        data_directory         
------------------------------
 /opt/pgdb/postgresql/9.6/main
(1 row)
postgres=#

删除旧的 PostgreSQL 数据库数据目录

# sudo rm -rf /var/lib/postgresql/9.6/main.backup
如何在 Ubuntu 16.04 上更改 PostgreSQL 数据目录位置

假设数据库增长频繁且需要更多空间,最好的解决方案是将 PostgreSQL 数据目录重新定位到新位置。

在本文中,我们将介绍如何在 Ubuntu 16.04 上更改或者移动 PostgreSQL 数据库数据目录到新位置。

日期:2020-06-02 22:17:39 来源:oir作者:oir