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

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

最新バージョンのSUSE Managerにアップグレードする場合、PostgreSQLバージョン10または12を使用する必要があります。 SUSE Managerサーバをバージョン 4.1にアップグレードした後、PostgreSQLバージョン12に移行します。

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

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

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

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

    psql --version

    PostgreSQL 10を使用している場合、PostgreSQL 12にアップグレードできます。

    すでにPostgreSQLのバージョン12を使用している場合、この移行を実行する必要はありません。

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

    rpm -q smdba

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

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

2. PostgreSQLのアップグレード

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

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

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

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

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

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

  2. アップグレードを開始します。

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

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

  • spacewalkサービスを停止する

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

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

  • 新しいデフォルトとしてPostgreSQL 10からPostgreSQL 12に切り替える

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

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

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

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

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

  2. アップグレードを開始します。

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