Oracle のバックアップ
Oracle データベースで実行できるバックアップには、次のタイプがあります。
-
ホット バックアップ
データベース インスタンスを動作している間に行う Oracle データベースのバックアップが、ホット バックアップです。ホット バックアップを計画している場合は、ARCHIVELOG モードでデータベースを運用する必要があります。
各表領域をバックアップする前に、ALTER TABLESPACE > BEGIN BACKUP コマンドを入力して、ホット バックアップを実行することを Oracle に認識させます。このコマンドを実行しないと、ホット バックアップがうまくいったように見えても、データベースをうまくリカバリできないことがあります。ホット バックアップを終了するには、表領域ごとに ALTER TABLESPACE > END BACKUP コマンドを入力します。
データへの変更は、それらを必要とする未処理のトランザクションがなくなるまで、ロールバック セグメントに記録および保持されます。ホット バックアップを実行すると、ALTER TABLESPACE > END BACKUPコマンドが入力されるまで、ロールバック セグメントのデータは解放されなくなります。このため、ロールバック セグメントは、ホット バックアップ中に行われる編集量に十分に対応できるサイズに設定する必要があります。ロールバック セグメントが領域を使い果たした場合、トランザクションは ORA-1555 エラーで失敗します。
ORA-1555: snapshot too old (rollback segment too small)
ホット バックアップはこのエラーが発生してもうまくいきますが、データベースへの変更の再入力が必要になることがあります。このエラーを回避するには、データベースの負荷が低い時間帯にホット バックアップを実行するか、ロールバック セグメントをホット バックアップ中に行われる編集量に十分に対応できるサイズに設定します。
ホット バックアップの前に ArcSDE サーバ プロセス(giomgr)を終了する必要はありません。
ホット バックアップの詳細については、お使いの Oracle リリースの『Oracle バックアップおよびリカバリ基礎』をご参照ください。
-
コールド バックアップ
データベース インスタンスを終了している間に行う Oracle データベースのバックアップが、コールド バックアップです。コールド バックアップの管理は、ホット バックアップよりも単純で、エラーも少ない傾向にあります。データベースを NOARCHIVELOG モードで実行している場合は、コールド バックアップが唯一の選択肢となります。データベースを ARCHIVELOG モードで実行している場合は、コールド バックアップを使用して、データベースを最後にトランザクションがコミットされた状態に戻すことができます。
-
データベースのエクスポート
完全バックアップの補足として、Oracle のエクスポート ユーティリティを使用することができます。最後の完全バックアップ以降に既知のデータ オブジェクトが変更された場合は、それらのオブジェクトをエクスポートすることができます。ただし、エクスポート ユーティリティは、エクスポート中に変更されないデータ オブジェクトと、密に関連しているすべてのデータ オブジェクトにのみ使用します。たとえば、ビジネス テーブルのバックアップにエクスポートを使用する場合は、関連する空間インデックス、フィーチャ、デルタ テーブルもバックアップに含める必要があります。
メモ:バックアップ手法としてエクスポート ユーティリティのみを使用することは推奨しません。
また、Oracle のエクスポート ユーティリティを使用して Oracle データベース全体をバックアップした後、累積バックアップと増分バックアップを実行することもできます。エクスポート ユーティリティの詳細については、お使いの Oracle リリースの『Oracle Database ユーティリティ』をご参照ください。
Oracle データベースの完全バックアップは定期的に実行する必要があります。完全バックアップでは、Oracle データベース、制御ファイル、データ ファイル、REDO ログ ファイルをバックアップします。ArcSDE サービスを起動している場合は、giomgr.defs、dbinit.sde、services.sde ファイルもバックアップします。
取得したバックアップが正しくリストアされ、期待どおりに動作することをテストして確認することが重要です。
Oracle データベースを ARCHIVELOG モードで実行している場合は、定期的な完全バックアップの他に、いくつかの手法をバックアップ計画に取り入れることができます。データベースを NOARCHIVELOG モードで実行している場合は、完全バックアップの他に、Oracle エクスポート ファイルの追加に制限があります。
データベースの一貫性を保証することは重要なので、バックアップごとに制御ファイルのコピーを少なくとも 3 つ作成してください。制御ファイルは比較的小さいので、コストが問題になることはまずありません。
データ ファイルを古い状態から新しい状態に移行させるには、REDO ログ ファイルが不可欠です。データベースのリカバリを成功させるには、REDO ログにある期間の履歴がすべて記録されている必要があります。
データベースのリカバリが必要と思われる時点までのすべての REDO ログのアーカイブを、少なくとも 2 つ保管しておくことが推奨されます。2 つのコピーは、物理的に分かれているメディア(2 つのディスク ドライブなど)か、ディスク ドライブとテープ ドライブに保存します。
アーカイブされた REDO ログ ファイルをディスク上から削除する予定である場合は、その前に、アーカイブされた REDO ログ ファイルのバックアップ コピーをもう 1 つ作成してください。
アーカイブされた REDO ログ ファイルのバックアップが複数あると、思いのほか頻発する複数のメディアの破損に対する備えも万全です。たとえば、テープ ドライブからビット エラーが検出された場合、ファイルをリカバリしようとしても手遅れでしょう。
バックアップごとに各データ ファイルを 1 つコピーしておくだけで済むのは、万一のために、アーカイブされた REDO ログのコピーを複数保管している場合だけです。
オンライン REDO ログ ファイルのバックアップは必要ありません。現在のオンライン REDO ログ ファイルで障害が発生した場合、コミットされた情報はまだメモリ上にあり、チェックポイントが発行されたときに Oracle によってデータ ファイルに書き込まれます。Oracle は、データベース インスタンスが NORMAL、IMMEDIATE、または TRANSACTIONAL オプションで終了すると、チェックポイントを自動的に発行します。データベースを ABORT オプションで終了する場合は、可能な限り、ALTER SYSTEM > CHECKPOINT コマンドでチェックポイントを強制的に発行してください。
Oracle で使用できるバックアップおよびリカバリ マニュアルを読むことはとても重要です。マニュアルは次のとおりです。
『バックアップおよびリカバリ基礎』
ユーザ スキーマ ジオデータベースを使用している場合、ユーザ スキーマ ジオデータベースと同様にマスタ ジオデータベースをバックアップしてください。ユーザ スキーマ ジオデータベースで使用されている いくつかのテーブルはSDE ユーザのスキーマに存在します。