3.2. 組み込みデータベースのバックアップ

Red Hat Satellite は、組み込みデータベースの管理タスクを支援する特殊なコマンドラインユーティリティを提供します。db-control コマンドは、バックアップの作成、検証、復元をはじめデータベースの状態に関する情報の取得、必要な時の再起動に至るまでの様々な機能を提供します。利用可能な機能の完全な一覧については db-control man ページ (man db-control) を参照してください。
以下のセクションでは、Red Hat Satellite の組み込みデータベースおよび管理データベースの作成、検証、および復元の方法について説明します。

3.2.1. データベースのオンラインバックアップの実行

Red Hat Satellite Server 5 には、Satellite Server を停止せずにデータベースのオンラインバックアップを可能にする機能が含まれています。既存の db-control コマンドにオプションを追加すると、この機能が可能になります。
以下の 3 つの新規のオプションが db-control コマンドに追加されました。
  • online-backup FILENAME: Satellite データベースのオンラインバックアップを実行します (組み込み PostgreSQL のみ)。
  • reset-password: ユーザーパスワードをリセットし、アカウントのロックを解除します。
  • restore DIRECTORY | FILENAME: 以下のいずれかのバックアップによりデータベースを復元します。
    • db-control backup によって取得され、DIRECTORY ディレクトリーに保存されるオフラインのバックアップ。backuprestore 操作がどちらも正常に実行されるため、データベースは停止している必要があります。
    • db-control online-backup によって取得され、FILENAME として保存されるオンラインのバックアップ。online-backuprestore 操作がどちらも正常に実行されるため、データベース自体は実行中である必要がありますが、それ以外のすべての Satellite サービスは停止している必要があります。

3.2.1.1. オンラインバックアップの実行

組み込み Red Hat Satellite 5 サーバーデータベースのオンラインバックアップを作成するには、root ユーザーとして以下のコマンドを実行します。FILENAME オプションを、作成するバックアップファイルの完全パスに置き換えます。この場所は、PostgreSQL ユーザーが書き込める必要があります。
# db-control online-backup FILENAME

注記

オンラインバックアップを実行するには、データベースまたは Satellite サービスのいずれも停止する必要はありません。

3.2.1.2. オンラインバックアップからのデータベースの復元

db-control online-backup コマンドを使用して作成されたバックアップから組み込みデータベースを復元するには、db-control restore FILENAME コマンドを使用します。データベースを復元する前に、データベース自体を除く、すべての Satellite サービスをシャットダウンする必要があります。

手順3.1 オンラインバックアップからのデータベースの復元

  1. root ユーザーに切り替え、データベース以外のすべての Satellite サービスを停止するために以下のコマンドを実行します。
    # rhn-satellite stop --exclude=rh-postgresql95-postgresql
  2. 以下のコマンドを実行してデータベースを復元します。FILENAME オプションを、db-control online-backup コマンドで作成したバックアップファイルの完全パスで置き換えます。
    # db-control restore FILENAME
  3. 復元が完了したら、以下のコマンドを実行して、データベースとすべての関連サービスを再起動します。
    # rhn-satellite start

3.2.2. データベースのオフラインバックアップの実行

Red Hat Satellite Server 5 は、オンラインバックアップと復元操作を実行する機能を提供します。Red Hat は、月ごとまたは 4 半期ごとの保守時にオフラインバックアップを継続して行うことを推奨します。

3.2.2.1. オフラインバックアップの実行

以下での手順では、組み込み Red Hat Satellite サーバーデータベースのバックアップ方法について説明します。

手順3.2 オフラインバックアップの作成

  1. root ユーザーに切り替え、以下のコマンドを実行して Satellite サーバーを停止します。
    # rhn-satellite stop
  2. 以下のコマンドを実行してバックアップを作成します。
    # db-control backup DIRECTORY
    DIRECTORY の部分はデータベースのバックアップの保管先となる場所の絶対パスを入力してください。このプロセスには数分かかります。
  3. バックアップが完了したら、以下のコマンドを実行して Satellite サーバーを再起動します。
    # rhn-satellite start
  4. 次にバックアップを rsync または別のファイル転送ユーティリティを使って別のシステムにコピーします。Red Hat は cron ジョブを使って自動バックアップのプロセスをスケジュールすることを強く推奨します。 例えば、午前 3 時にシステムをバックアップしてからそのバックアップを午前 6 時に別のリポジトリー (パーティション、ディスク、またはシステム) にコピーします。

3.2.2.2. バックアップの検証

結果として作成されるバックアップの整合性を確保できなければ、組み込みデータベースのバックアップを行なっても役に立ちません。この整合性の検査を行う方法として 2 つのアプローチがあります。まずは、バックアップを検査 (examine) して、バックアップのタイムスタンプを確認し、ファイルが紛失していないかどうかを確認します。または、バックアップを検証 (verify) します。これには、バックアップの徹底的な検証や、バックアップ内の各ファイルの md5sum の妥当性検証を行うことも関係します。最初の方法はより速く実行できますが、2 番目の方法ではより徹底的な検証を行うことができます。
バックアップを検査するには、root として以下のコマンドを実行します。
# db-control examine BACKUP_FILE
バックアップを検証するには、root として以下のコマンドを実行します。
# db-control verify BACKUP_FILE
検証に成功すると、BACKUP_FILE ディレクトリーからデータベースを安全に復元できます。

注記

外部データベースの場合も定期的なバックアップを行う必要があります。対応しているバックアップ手順についてはその外部データベースの管理者にご相談ください。

3.2.2.3. データベースの復元

db-control restore コマンドを使用してバックアップから組み込みデータベースを復元します。データベースの復元を試行する前に、データベースと関連するすべてのサービスをシャットダウンする必要があります。

手順3.3 バックアップからの組み込みデータベースの復元

  1. すべての Red Hat Satellite サービスを停止するために以下のコマンドを実行します。
    # rhn-satellite stop
  2. 復元を開始するには、バックアップが格納されているディレクトリーを含む、以下のコマンドを実行します。directory の部分は、バックアップが格納されている場所の絶対パスで置き換えます。まずバックアップの内容の検証が行われてから、実際のデータベースの復元が行われます。このプロセスには数分かかります。
    # db-control restore directory
    このコマンドは組み込みデータベースを復元するだけではありません。復元の前にチェックサムを使ったバックアップディレクトリーの内容の検証も行います。
  3. 復元が完了したら、データベースと関連サービスを再起動します。
    # rhn-satellite start
  4. バックアップしているデータベースが外部のデータベースか組み込みデータベースであるかに関わらず、バックアップからデータベースを復元する際には rhn-search サービスの次回の起動時に検索インデックスの復元が行われるようスケジュールします。
    # service rhn-search cleanindex