最新バージョンへのデータベースの移行
このセクションでは、PostgreSQLデータベースを最新バージョンにアップグレードする方法について説明します。 すでにPostgreSQL 14を使用している場合、この移行を実行する必要はありません。
最新バージョンのSUSE Managerにアップグレードする場合、基盤となるオペレーティングシステムに応じて、PostgreSQLバージョン13または14を使用する必要があります。
-
SUSE Linux Enterprise Server 15 SP3を実行している場合、PostgreSQL 13を使用します。
-
SUSE Linux Enterprise Server 15 SP4を実行している場合、PostgreSQL 14を使用します。
1. アップグレードの準備
アップグレードを開始する前に、既存のSUSE Managerサーバを準備して、データベースのバックアップを作成します。
PostgreSQLは/var/lib/pgsql/data/
にデータを保存します。
-
アクティブなPostgreSQLのバージョンを確認します。
psql --version
-
アクティブなsmdbaのバージョンを確認します。
rpm -q smdba
PostgreSQL 14では
smdba
のバージョン1.7.6以降が必要です。 -
データベースのバックアップを実行します。 バックアップの詳細については、バックアップと復元を参照してください。
2. PostgreSQLのアップグレード
移行を実行する前に、必ずデータベースのバックアップを作成してください。 |
PostgreSQLのアップグレードは、通常のアップグレードと高速アップグレードの2つの方法で実行できます。
通常のアップグレードでは、データベースの完全なコピーが作成されるため、既存のデータベースサイズの2倍の使用可能容量が必要になります。 通常のアップグレードは、データベースのサイズおよびストレージシステムの速度に応じて、長時間を要する場合があります。
高速アップグレードには数分しかかからず、追加のディスク容量はほぼ不要です。 しかし、高速アップグレードが失敗すると、データベースをバックアップから復元する必要があります。 高速アップグレードでは、ディスク容量を使い果たすリスクが軽減されますが、バックアップが存在しないまたは復元できないときにデータを失うリスクが高まります。 通常のアップグレードでは、ファイル間のハードリンクを作成する代わりに、データベースファイルをコピーします。
PostgreSQLは/var/lib/pgsql/data/
にデータを保存します。
DBアップグレードを実行する前に、PostgreSQLユーザがシステムに存在することを確認してください。 postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash |
-
データベースのバックアップを実行します。 バックアップの詳細については、バックアップと復元を参照してください。
-
アップグレードを開始します。 次のスクリプトを実行します。
/usr/lib/susemanager/bin/pg-migrate-x-to-y.sh
-
アップグレードが正常に完了すると、古いデータベースのディレクトリを安全に削除して、使用されていたディスク容量を再利用できます。 古いディレクトリの名前は、開始したバージョンに応じて、
/var/lib/pgsql/data-pg12
または/var/lib/pgsql/data-pg10
に変更されます。
pg-migrate-x-to-y.sh
スクリプトは次の操作を実行します。
-
spacewalkサービスを停止する
-
実行中のデータベースをシャットダウンする
-
最新のPostgreSQLがインストールされているかどうかを確認し、必要に応じてインストールする
-
新しいデフォルトとして以前のバージョンのPostgreSQL から最新バージョンに切り替える
-
データベースの移行を開始する
-
SUSE Managerによる使用に合わせて調整されたPostgreSQL設定ファイルを作成する
-
データベースおよびspacewalkのサービスを開始する
アップグレードが失敗すると、移行スクリプトは、データベースを元の状態に復元しようとします。 |
-
データベースのバックアップを実行します。 確認済みのデータベースのバックアップがない場合、高速アップグレードを開始しないでください。 バックアップの詳細については、バックアップと復元を参照してください。
-
アップグレードを開始します。 スクリプトを実行します。
/usr/lib/susemanager/bin/pg-migrate-x-to-y.sh -f
-
アップグレードが正常に完了すると、古いデータベースのディレクトリを安全に削除して、使用されていたディスク容量を再利用できます。 古いディレクトリの名前は、開始したバージョンに応じて、
/var/lib/pgsql/data-pg12
または/var/lib/pgsql/data-pg10
に変更されます。