4.10.2. ダンプおよび復元のアップグレード
ダンプおよび復元のアップグレードを使用する場合は、すべてのデータベースのコンテンツを SQL ファイルのダンプファイルにダンプする必要があります。ダンプおよび復元のアップグレードは高速なアップグレード方法よりも低速であり、生成された SQL ファイルで手動修正が必要になる場合があります。
この方法を使えば、RHEL 8 の PostgreSQL から RHEL 9 の同等またはそれ以降のバージョンの PostgreSQL へデータを移行できます。
RHEL 8 および RHEL 9 システムでは、PostgreSQL データはデフォルトで /var/lib/pgsql/data/ ディレクトリーに保存されます。
ダンプおよび復元のアップグレードを実行するには、ユーザーを root に変更します。
以下の手順では、RHEL 8 のデフォルトバージョンである PostgreSQL 10 から RHEL 9 の PostgreSQL 13 への移行について説明します。
手順
RHEL 8 システム上で、PostgreSQL 10 サーバーを起動します。
# systemctl start postgresql.serviceRHEL 8 システムで、すべてのデータベースのコンテンツを
pgdump_file.sqlファイルにダンプします。su - postgres -c "pg_dumpall > ~/pgdump_file.sql"データベースが正しくダンプされたことを確認します。
su - postgres -c 'less "$HOME/pgdump_file.sql"'これにより、ダンプされた sql ファイルのパスが
/var/lib/pgsql/pgdump_file.sqlに表示されます。RHEL 9 システムで、
postgresql-serverパッケージをインストールします。# dnf install postgresql-serverオプションとして、RHEL 8 で PostgreSQL サーバーモジュールを使用していた場合は、RHEL 9 システムにもそれらをインストールしてください。サードパーティー製の PostgreSQL サーバーモジュールをコンパイルする必要がある場合は、
postgresql-develパッケージに対してビルドしてください。RHEL 9 システム上で、新しい PostgreSQL サーバーのデータディレクトリーを初期化します。
# postgresql-setup --initdbRHEL 9 システムでは、
pgdump_file.sqlを PostgreSQL のホームディレクトリーにコピーし、ファイルが正しくコピーされたことを確認してください。su - postgres -c 'test -e "$HOME/pgdump_file.sql" && echo exists'RHEL 8 システムから設定ファイルをコピーします。
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
-
RHEL 9 システム上で、新しい PostgreSQL サーバーを起動します。
# systemctl start postgresql.serviceRHEL 9 システムで、ダンプされた sql ファイルからデータをインポートします。
su - postgres -c 'psql -f ~/pgdump_file.sql postgres'