Red Hat Training

A Red Hat training course is available for RHEL 8

9.3.6.2. ダンプおよび復元のアップグレード

ダンプおよび復元のアップグレードを使用する場合は、すべてのデータベースのコンテンツを SQL ファイルのダンプファイルにダンプする必要があります。

ダンプおよび復元のアップグレードは高速なアップグレード方法よりも低速であり、生成された SQL ファイルで手動修正が必要になる場合があります。

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

  • Red Hat Enterprise Linux 7 システムバージョンの PostgreSQL 9.2
  • 以前のバージョンの Red Hat Enterprise Linux 8 バージョンの PostgreSQL
  • Red Hat Software Collections の PostgreSQL の以前のバージョンまたは同等バージョン:

    • PostgreSQL 9.2 (サポート対象外になりました)
    • PostgreSQL 9.4 (サポート対象外になりました)
    • PostgreSQL 9.6 (サポート対象外になりました)
    • PostgreSQL 10
    • PostgreSQL 12

RHEL 7 および RHEL 8 システムでは、PostgreSQL データは、デフォルトで /var/lib/pgsql/data/ ディレクトリーに保存されます。Red Hat Software Collections バージョンの PostgreSQLの場合、デフォルトのデータディレクトリーは /var/opt/rh/collection_name/lib/pgsql/data/ です (/opt/rh/postgresql92/root/var/lib/pgsql/data/ ディレクトリーを使用する postgresql92 を除く)。

RHEL 8 内の以前の postgresql ストリームからアップグレードする場合は 「後続のストリームへの切り替え」の説明に従い、PostgreSQL データを移行します。

ダンプおよび復元のアップグレードを実行するには、ユーザーを root に変更します。

以下の手順では、RHEL 7 システムバージョンの Postgreql 9.2 から、RHEL 8 バージョンの PostgreSQLへの移行を説明します。

手順

  1. RHEL 7 システムで PostgreSQL 9.2 サーバーを起動します。

    # systemctl start postgresql.service
  2. RHEL 7 システムで、すべてのデータベースのコンテンツを pgdump_file.sql ファイルにダンプします。

    su - postgres -c "pg_dumpall > ~/pgdump_file.sql"
  3. データベースが正しくダンプされたことを確認します。

    su - postgres -c 'less "$HOME/pgdump_file.sql"'

    これにより、ダンプされた sql ファイルのパスが /var/lib/pgsql/pgdump_file.sql に表示されます。

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

    # yum module enable postgresql:stream

    stream を、選択した PostgreSQL サーバーのバージョンに置き換えます。

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

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

    # yum install postgresql-server

    必要に応じて、RHEL 7 で PostgreSQL サーバーモジュールを使用している場合は、RHEL 8 システムにもインストールしてください。サードパーティーの PostgreSQL サーバーモジュールをコンパイルする必要がある場合は、postgresql-devel パッケージに対してビルドします。

  6. RHEL 8 システムで、新しい PostgreSQL サーバーのデータディレクトリーを初期化します。

    # postgresql-setup --initdb
  7. RHEL 8 システムで、pgdump_file.sqlPostgreSQL ホームディレクトリーにコピーし、ファイルが正しくコピーされたことを確認します。

    su - postgres -c 'test -e "$HOME/pgdump_file.sql" && echo exists'
  8. RHEL 7 システムから設定ファイルをコピーします。

    su - postgres -c 'ls -1 $PGDATA/*.conf'

    コピーされる設定ファイルは、以下のとおりです。

    • /var/lib/pgsql/data/pg_hba.conf
    • /var/lib/pgsql/data/pg_ident.conf
    • /var/lib/pgsql/data/postgresql.conf
  9. RHEL 8 システムで、新しい PostgreSQL サーバーを起動します。

    # systemctl start postgresql.service
  10. RHEL 8 システムで、ダンプされた sql ファイルからデータをインポートします。

    su - postgres -c 'psql -f ~/pgdump_file.sql postgres'
注記

Red Hat Software Collections バージョンの PostgreSQL からアップグレードする場合は、scl enable collection_name が含まれるようにコマンドを調整します。たとえば、rh-postgresql96 Software Collection からデータをダンプする場合は、以下のコマンドを使用します。

su - postgres -c 'scl enable rh-postgresql96 "pg_dumpall > ~/pgdump_file.sql"'