3.10. PostgreSQL インスタンスを以前の RHEL バージョンから RHEL 10 上の PostgreSQL に移行する
すでに RHEL 9 上で PostgreSQL を運用しており、RHEL 10 を実行するホストにデータベースソフトウェアを移動する場合は、データベースを移行できます。
次の移行方法を使用できます。
- バックアップと復元によるアップグレード: この方法は時間がかかる場合もありますが、ほとんどのシナリオで機能します。
-
pg_upgradeユーティリティーを使用した高速アップグレード - この方法はより高速ですが、PostgreSQL 13 から 16 への移行で、ハードウェアアーキテクチャーが同じままである場合にのみ機能します。
PostgreSQL の移行前に、必ずソースホスト上の /var/lib/pgsql/data/ ディレクトリーをバックアップしてください。
3.10.1. バックアップとリストア方式を使用して RHEL 10 上の PostgreSQL に移行する リンクのコピーリンクがクリップボードにコピーされました!
バックアップと復元の方法を使用して、PostgreSQL の RHEL 8 または RHEL 9 バージョンから、RHEL 10 上の同等またはそれ以降のバージョンの PostgreSQL にデータを移行できます。
前提条件
- 既存のデータベースサーバーは RHEL 8 または RHEL 9 上で実行され、RHEL リポジトリーからインストールされた PostgreSQL バージョンを使用します。
-
両方のホストのロケール設定は同じです。これを確認するには、両方のホストで
echo $LANGコマンドの出力を比較します。
手順
移行する既存の PostgreSQL インスタンスがあるホストで、次の手順を実行します。
すべてのデータベースを
/var/lib/pgsql/pgdump_file.sqlファイルにエクスポートします。# su - postgres -c "pg_dumpall > /var/lib/pgsql/pgdump_file.sql"エクスポートされたファイルを確認します。
# su - postgres -c 'less "/var/lib/pgsql/pgdump_file.sql"'前の手順で作成したデータベースダンプと PostgreSQL 設定ファイルを RHEL 10 ホストにコピーします。以下に例を示します。
# scp /var/lib/pgsql/pgdump_file.sql \ /var/lib/pgsql/data/pg_hba.conf \ /var/lib/pgsql/data/pg_ident.conf \ /var/lib/pgsql/data/postgresql.conf \ <user>@<rhel_10_host>:/tmp/
RHEL 10 ホストの場合:
postgresql-serverパッケージをインストールします。# dnf install postgresql-server/var/lib/pgsql/data/ディレクトリーを初期化します。# postgresql-setup --initdbコピーした設定ファイルを
/var/lib/pgsql/data/ディレクトリーに移動します。# mv /tmp/pg_hba.conf \ /tmp/pg_ident.conf \ /tmp/postgresql.conf \ /var/lib/pgsql/data//var/lib/pgsql/data/ directory内のコンテンツの正しい所有権を確認します。# chown -R postgres:postgres /var/lib/pgsql/data//var/lib/pgsql/data/の SELinux コンテキストを復元します。# restorecon -Rv /var/lib/pgsql/data/postgresqlサービスを有効にして起動します。# systemctl enable --now postgresql.servicepostgresユーザーとしてデータをインポートします。# su - postgres -c 'psql -f /tmp/pgdump_file.sql postgres'- データベースを検証し、PostgreSQL サーバーを使用するアプリケーションが期待どおりに動作することを確認します。