3.9. 在 RHEL 10 上将 PostgreSQL 实例从之前的 RHEL 版本迁移到 PostgreSQL 16


如果您已在 RHEL 9 上运行了低于 16 的 PostgreSQL 版本,并希望将数据库软件移到运行 RHEL 10 的主机上,您可以迁移数据库。

可用的迁移方法是:

重要

在 PostgreSQL 迁移前,始终备份源主机上的 /var/lib/pgsql/data/ 目录。

您可以使用备份和恢复方法将数据从 PostgreSQL 的任何 RHEL 8 或 RHEL 9 版本迁移到 RHEL 10 上 PostgreSQL 的任何相等或更新版本。

先决条件

  • 现有数据库服务器在 RHEL 8 或 RHEL 9 上运行,并使用从 RHEL 存储库安装的 PostgreSQL 版本。
  • 两个主机上的区域设置是相同的。要验证这一点,请比较两个主机上的 echo $LANG 命令的输出。

流程

  1. 在具有您要迁移的现有 PostgreSQL 实例的主机上:

    1. 将所有数据库导出到 /var/lib/pgsql/pgdump_file.sql 文件中:

      # su - postgres -c "pg_dumpall > /var/lib/pgsql/pgdump_file.sql"
    2. 检查导出的文件:

      # su - postgres -c 'less "/var/lib/pgsql/pgdump_file.sql"'
    3. 将您在之前步骤中创建的数据库转储和 PostgreSQL 配置文件复制到 RHEL 10 主机,例如:

      # scp /var/lib/pgsql/pgdump_file.sql \
             /var/lib/pgsql/data/pg_hba.conf \
             /var/lib/pgsql/data/pg_ident.conf \
             /var/lib/pgsql/data/postgresql.conf \
             <user>@<rhel_10_host>:/tmp/
  2. 在 RHEL 10 主机上:

    1. 安装 postgresql-server 软件包:

      # dnf install postgresql-server
    2. 初始化 /var/lib/pgsql/data/ 目录:

      # postgresql-setup --initdb
    3. 将复制的配置文件移到 /var/lib/pgsql/data/ 目录中:

      # mv /tmp/pg_hba.conf \
           /tmp/pg_ident.conf \
           /tmp/postgresql.conf \
           /var/lib/pgsql/data/
    4. 确保 /var/lib/pgsql/data/ directory 目录中内容的所有权正确:

      # chown -R postgres:postgres /var/lib/pgsql/data/
    5. /var/lib/pgsql/data/ 恢复 SELinux 上下文:

      # restorecon -Rv /var/lib/pgsql/data/
    6. 启用并启动 postgresql 服务:

      # systemctl enable --now postgresql.service
    7. postgres 用户身份导入数据:

      # su - postgres -c 'psql -f /tmp/pgdump_file.sql postgres'
    8. 验证您的数据库,并确保您的使用 PostgreSQL 服务器的应用程序可以正常工作。
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部