7.4.10. RHEL 8 バージョンの PostgreSQL への移行


すでに RHEL 7 上で PostgreSQL を実行していて、データベースソフトウェアを RHEL 8 を実行するホストに移行したい場合は、データベースを移行できます。

Red Hat Enterprise Linux 上で PostgreSQL を使用しているユーザーは、データベースファイルの移行に 2 つの方法を選択できます。

  • pg_upgrade ユーティリティーを使用した高速アップグレード
  • ダンプおよび復元のアップグレード

高速アップグレードメソッドは、ダンプおよび復元のプロセスよりも速くなります。ただし、場合によっては高速アップグレードが機能せず、ダンプおよび復元プロセスしか使用できない場合があります。そのようなケースには、以下が含まれます。

  • アーキテクチャー間のアップグレード
  • plpython または plpython2 拡張を使用するシステム。RHEL 8 AppStream リポジトリーには postgresql-plpython3 パッケージのみが含まれ、postgresql-plpython2 パッケージは含まれません。
  • Red Hat Software Collections バージョンの PostgreSQL からの移行では、高速アップグレードはサポートされていません。

PostgreSQL の最新バージョンへの移行の前提条件として、すべての PostgreSQL データベースをバックアップしてください。

データベースをダンプし、SQL ファイルのバックアップを実行することは、ダンプおよび復元プロセスで必要であり、高速アップグレードメソッドとして推奨されます。

7.4.10.1. pg_upgrade ユーティリティーを使用した高速アップグレード

システム管理者であれば、高速アップグレード方式を使用して PostgreSQL の最新バージョンにアップグレードできます。高速アップグレードを実行するには、バイナリーデータファイルを /var/lib/pgsql/data/ ディレクトリーにコピーし、pg_upgrade ユーティリティーを使用します。

この方法を使用すると、データを移行できます。

  • RHEL 7 システム版の PostgreSQL 9.2 から RHEL 8 版の PostgreSQL 10 へ
  • RHEL 8 版の PostgreSQL 10 から RHEL 版の PostgreSQL 12 へ
  • RHEL 8 版の PostgreSQL 12 から RHEL 版の PostgreSQL 13 へ
  • RHEL 版 PostgreSQL 13 から RHEL 版 PostgreSQL 15 へ
  • RHEL 版 PostgreSQL 15 から RHEL 版 PostgreSQL 16 へ

RHEL 8 内の以前の PostgreSQL ストリームからアップグレードする場合は、より新しいストリームへの切り替え で説明されている手順に従ってから、PostgreSQL データを移行してください。

RHEL 内の他の PostgreSQL バージョンの組み合わせ間での移行、および Red Hat Software Collections バージョンの PostgreSQL から RHEL への移行には、ダンプとリストアのアップグレードを 使用します。

以下の手順では、高速アップグレード方式を使用して、RHEL 7 システムバージョンの PostgreSQL 9.2 から RHEL 8 バージョンの PostgreSQL に移行する方法について説明します。

前提条件

  • PostgreSQL データベースと設定ファイルのバックアップを作成しました。

手順

  1. RHEL 8 システムで、移行するストリーム (バージョン) を有効にします。

    # yum module enable postgresql:stream

    ストリームを、選択したバージョンの PostgreSQL サーバーに置き換えてください。

    PostgreSQL 10 を提供するデフォルトのストリームを使用する場合は、この手順を省略できます。

  2. RHEL 8 システムで、postgresql-server パッケージおよび postgresql-upgrade パッケージをインストールします。

    # yum install postgresql-server postgresql-upgrade

    オプションとして、RHEL 7 で PostgreSQL サーバーモジュールを使用していた場合は、RHEL 8 システムにも 2 つのバージョンでインストールしてください。PostgreSQL 9.2 用にコンパイルされたもの (postgresql-upgrade パッケージとしてインストール) と、PostgreSQL のターゲットバージョン用にコンパイルされたもの (postgresql-server パッケージとしてインストール) です。サードパーティー製の PostgreSQL サーバーモジュールをコンパイルする必要がある場合は、postgresql-devel パッケージと postgresql-upgrade-devel パッケージの両方に対してビルドしてください。

  3. 以下の項目を確認します。

    • 基本設定 - RHEL 8 システムで、サーバーがデフォルトの /var/lib/pgsql/data ディレクトリーを使用し、データベースが正しく初期化され、有効になっているかどうかを確認します。さらに、データファイルは、/usr/lib/systemd/system/postgresql.service ファイルに記載されているパスと同じパスに保存する必要があります。
    • PostgreSQL サーバー: システム上で複数の PostgreSQL サーバーを実行できます。これらのすべてのサーバーのデータディレクトリーが独立して処理されていることを確認してください。
    • PostgreSQL サーバーモジュール:RHEL 7 で使用していた PostgreSQL サーバーモジュールが、RHEL 8 システムにもインストールされていることを確認してください。プラグインは /usr/lib64/pgsql/ ディレクトリー (32 ビットシステムの場合は /usr/lib/pgsql/ ディレクトリー) にインストールされることに注意してください。
  4. データのコピー時に、postgresql サービスがソースおよびターゲットのシステムで稼働していないことを確認します。

    # systemctl stop postgresql.service
  5. データベースファイルをソースの場所から RHEL 8 システムの /var/lib/pgsql/data/ ディレクトリーにコピーします。
  6. PostgreSQL ユーザーとして以下のコマンドを実行して、アップグレードプロセスを実行してください。

    # postgresql-setup --upgrade

    これでバックグラウンドで pg_upgrade プロセスが開始します。

    障害が発生すると、postgresql-setup は通知のエラーメッセージを提供します。

  7. /var/lib/pgsql/data-old から新規クラスターに、以前の設定をコピーします。

    高速アップグレードは、新しいデータスタックで以前の設定を再利用せず、設定がゼロから生成されることに注意してください。古い設定と新しい設定を手動で組み合わせたい場合は、データディレクトリーの *.conf ファイルを使用します。

  8. 新しい PostgreSQL サーバーを起動します。

    # systemctl start postgresql.service
  9. 新しいデータベースクラスターを分析します。

    • PostgreSQL 13 以前のバージョンの場合:

      su postgres -c '~/analyze_new_cluster.sh'
    • PostgreSQL 15 以降の場合:

      su postgres -c 'vacuumdb --all --analyze-in-stages'
      注記

      場合によって、ALTER COLLATION name REFRESH VERSION を使用する必要があります。詳細は、アップストリームのドキュメント を参照してください。

  10. 新しい PostgreSQL サーバーを起動時に自動的に起動させたい場合は、以下を実行してください。

    # systemctl enable postgresql.service
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

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

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

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

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

Legal Notice

Theme

© 2026 Red Hat
トップに戻る