バージョン10または12から13へのデータベースの移行

このセクションでは、PostgreSQLデータベースをバージョン 10またはバージョン 12 からバージョン 13にアップグレードする方法について説明します。 すでにPostgreSQL 13を使用している場合、この移行を実行する必要はありません。 バージョン 9.6など古いバージョンを使用している場合、バージョン9から10へのデータベースの移行を参照してください。

最新バージョンのSUSE Managerにアップグレードする場合、基盤となるオペレーティングシステムに応じて、PostgreSQLバージョン12または13を使用する必要があります。

  • SLES 15 SP3を実行している場合、PostgreSQL 13を使用します。

  • Leap 15.2を実行している場合、PostgreSQL 12を使用します。

1. アップグレードの準備

アップグレードを開始する前に、既存のSUSE Managerサーバを準備して、データベースのバックアップを作成します。

PostgreSQLは/var/lib/pgsql/data/にデータを保存します。

プロシージャ: アップグレードの準備
  1. アクティブなPostgreSQLのバージョンを確認します。

    psql --version

    PostgreSQL 10または12を使用している場合は、PostgreSQL 13にアップグレードできます。 すでにPostgreSQLバージョン13を使用している場合、この移行を実行する必要はありません。

  2. アクティブなsmdbaのバージョンを確認します。

    rpm -q smdba

    PostgreSQL 13ではsmdbaのバージョン1.7.6以降が必要です。

  3. データベースのバックアップを実行します。 バックアップの詳細については、Backup and Restoreを参照してください。

2. PostgreSQLのアップグレード

移行を実行する前に、必ずデータベースのバックアップを作成してください。

PostgreSQLのアップグレードは、通常のアップグレードと高速アップグレードの2つの方法で実行できます。

通常のアップグレードでは、データベースの完全なコピーが作成されるため、既存のデータベースサイズの2倍の使用可能容量が必要になります。 通常のアップグレードは、データベースのサイズおよびストレージシステムの速度に応じて、長時間を要する場合があります。

高速アップグレードには数分しかかからず、追加のディスク容量はほぼ不要です。 しかし、高速アップグレードが失敗すると、データベースをバックアップから復元する必要があります。 高速アップグレードでは、ディスク容量を使い果たすリスクが軽減されますが、バックアップが存在しないまたは復元できないときにデータを失うリスクが高まります。 通常のアップグレードでは、ファイル間のハードリンクを作成する代わりに、データベースファイルをコピーします。

PostgreSQLは/var/lib/pgsql/data/にデータを保存します。

プロシージャ: 通常のアップグレードの実行
  1. データベースのバックアップを実行します。 バックアップの詳細については、Backup and Restoreを参照してください。

  2. アップグレードを開始します。バージョン 12 を使用している場合は、次を実行します。

    /usr/lib/susemanager/bin/pg-migrate-12-to-13.sh
    バージョン10を使用している場合は、次を実行します。
    /usr/lib/susemanager/bin/pg-migrate-10-to-13.sh
  3. アップグレードが正常に完了すると、古いデータベースのディレクトリを安全に削除して、使用されていたディスク容量を再利用できます。 古いディレクトリの名前は、開始したバージョンに応じて、/var/lib/pgsql/data-pg12または/var/lib/pgsql/data-pg10に変更されます。

pg-migrate-10-to-12.shまたはpg-migrate-10-to-123.shスクリプトは次の操作を実行します。

  • spacewalkサービスを停止する

  • 実行中のデータベースをシャットダウンする

  • PostgreSQL 13がインストールされているかどうかを確認し、必要に応じてインストールする

  • 新しいデフォルトとして以前のバージョンのPostgreSQL  からPostgreSQL 13に切り替える

  • データベースの移行を開始する

  • SUSE Managerによる使用に合わせて調整されたPostgreSQL設定ファイルを作成する

  • データベースおよびspacewalkのサービスを開始する

アップグレードが失敗すると、移行スクリプトは、データベースを元の状態に復元しようとします。

プロシージャ: PostgreSQLの高速アップグレードの実行
  1. データベースのバックアップを実行します。 確認済みのデータベースのバックアップがない場合、高速アップグレードを開始しないでください。 バックアップの詳細については、Backup and Restoreを参照してください。

  2. アップグレードを開始します。 バージョン 12 から移行する場合:

    /usr/lib/susemanager/bin/pg-migrate-12-to-13.sh fast

    + バージョン10から移行する場合:

    /usr/lib/susemanager/bin/pg-migrate-10-to-13.sh fast
  3. アップグレードが正常に完了すると、古いデータベースのディレクトリを安全に削除して、使用されていたディスク容量を再利用できます。 古いディレクトリの名前は、開始したバージョンに応じて、/var/lib/pgsql/data-pg12または/var/lib/pgsql/data-pg10に変更されます。