Red Hat Training
A Red Hat training course is available for RHEL 8
9.4.7.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への移行を説明します。
手順
RHEL 7 システムで PostgreSQL 9.2 サーバーを起動します。
# systemctl start postgresql.service
RHEL 7 システムで、すべてのデータベースのコンテンツを
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 8 システムで、移行するストリーム (バージョン) を有効にします。
# yum module enable postgresql:stream
stream は、選択した PostgreSQL サーバーのバージョンに置き換えます。
PostgreSQL 10 を提供するデフォルトストリームを使用する場合は、この手順を省略できます。
RHEL 8 システムで、
postgresql-server
パッケージをインストールします。# yum install postgresql-server
必要に応じて、RHEL 7 で PostgreSQL サーバーモジュールを使用している場合は、RHEL 8 システムにもインストールしてください。サードパーティーの PostgreSQL サーバーモジュールをコンパイルする必要がある場合は、
postgresql-devel
パッケージに対してビルドします。RHEL 8 システムで、新しい PostgreSQL サーバーのデータディレクトリーを初期化します。
# postgresql-setup --initdb
RHEL 8 システムで、
pgdump_file.sql
を PostgreSQL ホームディレクトリーにコピーし、ファイルが正しくコピーされたことを確認します。su - postgres -c 'test -e "$HOME/pgdump_file.sql" && echo exists'
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
-
RHEL 8 システムで、新しい PostgreSQL サーバーを起動します。
# systemctl start postgresql.service
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"'