3.10.2. pg_update を使用して、PostgreSQL 13 を RHEL の以前のバージョンから RHEL 10 上の PostgreSQL 16 へ移行する


PostgreSQL 13 インスタンスを以前の RHEL バージョンから RHEL 10 上の PostgreSQL 16 に移行する場合は、高速アップグレード方式を使用できます。この方法では、/var/lib/pgsql/data/ ディレクトリーの内容を RHEL 10 ホストにコピーし、pg_update ユーティリティーによってデータベースが変換されます。

重要

この方法は、既存の PostgreSQL インスタンスがバージョン 13 で、ソースホストと宛先ホストのハードウェアアーキテクチャーが同じである場合にのみ機能します。それ以外の場合は、バックアップと復元の方法 を使用します。

前提条件

  • 既存のデータベースサーバーが PostgreSQL 13 を使用している。
  • 現在のサーバーと将来のサーバーのハードウェアアーキテクチャーが同じである。
  • RHEL 10 ホストには、/var/lib/pgsql/ ディレクトリーを保持するディスク上に十分な空き領域がある。

    たとえば、移行する PostgreSQL サーバー上のディレクトリーのサイズが 10 GiB の場合、移行中に RHEL 10 ホストに少なくとも 20 GiB の空きディスク領域が必要です。

  • 両方のホストのロケール設定は同じです。これを確認するには、両方のホストで echo $LANG コマンドの出力を比較します。

手順

  1. 移行する既存の PostgreSQL インスタンスがあるホストで、次の手順を実行します。

    1. postgresql サービスを停止します。

      # systemctl stop postgresql.service
    2. /var/lib/pgsql/ ディレクトリーに移動し、data サブディレクトリーをバックアップします。

      # cd /var/lib/pgsql/
      # tar -zcf ~/pgdata.bak.tar.gz data/
    3. ~/pgdata.bak.tar.gz アーカイブを RHEL 10 ホストにコピーします。以下に例を示します。

      # scp ~/pgdata.bak.tar.gz <user>@<rhel_10_host>:/tmp/
  2. RHEL 10 ホストの場合:

    1. 必要なパッケージをインストールします。

      # dnf install postgresql-server postgresql-upgrade

      postgresql-upgrade パッケージは、移行中に必要な PostgreSQL 13 サーバーを提供します。

    2. サードパーティーの PostgreSQL サーバーモジュールを使用する場合は、postgresql-devel および postgresql-upgrade-devel の両方のパッケージに対してビルドし、インストールします。
    3. postgresql サービスが停止していることを確認します。

      # systemctl stop postgresql.service
    4. /var/lib/pgsql/ ディレクトリーに移動し、以前のホストからバックアップされたデータディレクトリーを抽出します。

      # cd /var/lib/pgsql/
      # tar -zxf /tmp/pgdata.bak.tar.gz
    5. オプション: /tmp/pgdata.bak.tar.gz アーカイブを削除します。

      # rm /tmp/pgdata.bak.tar.gz
    6. アップグレードプロセスを実行します。

      # postgresql-setup --upgrade

      postgresql-setup シェルスクリプトは、/var/lib/pgsql/data/ ディレクトリーの名前を /var/lib/pgsql/data-old/ に変更し、pg_upgrade ユーティリティーを使用して、データベースを再作成された /var/lib/pgsql/data/ ディレクトリーに移行します。

      重要

      pg_upgrade ユーティリティーは、データベースのみを移行し、設定ファイルは移行しません。移行後、/var/lib/pgsql/data/ にはデフォルトの .conf ファイルのみが含まれます。以前にカスタム設定ファイルがあった場合は、それらを /var/lib/pgsql/data-old/ ディレクトリーからコピーし、新しい PostgreSQL バージョンと互換性があることを確認します。

    7. postgresql サービスを有効にして起動します。

      # systemctl enable --now postgresql.service
    8. すべてのデータベースをクリーンアップして分析します。

      # su postgres -c 'vacuumdb --all --analyze-in-stages'
    9. データベースを検証し、PostgreSQL サーバーを使用するアプリケーションが期待どおりに動作することを確認します。
    10. オプション: 移行前のデータベースと設定ファイルが含まれている /var/lib/pgsql/data-old/ ディレクトリーを削除します。

      # rm -r /var/lib/pgsql/data-old/
    11. オプション: postgresql-upgrade パッケージを削除します。

      # dnf remove postgresql-upgrade
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2026 Red Hat
トップに戻る