Oracle12c バックアップとリカバリ

この記事はオラクルデータベースの障害種類、障害発生した場合のデータ修復方法、およびデータ修復に必要なバックアップ情報を説明します。
詳細情報は以下の資料をご利用ください。

参考資料：

ORACLE MASTER Gold Oracle Database 12c資格(試験 1Z0-063)の[試験内容 チェックリスト](https://education.oracle.com/ja/oracle-database-12c-advanced-administration/pexam_1Z0-063)

[バックアップおよびリカバリ・ユーザーズ・ガイド](https://docs.oracle.com/cd/E82638_01/bradv/index.html)

[Oracle Databaseの概要](https://docs.oracle.com/cd/E82638_01/cncpt/introduction-to-oracle-database.html#GUID-A42A6EF0-20F8-4F4B-AFF7-09C100AE581E)

## DBAの介入が必要な障害種類 ##

* メディア障害
  
  データベースの実行に必要なディスク・ファイルの読取りまたは書込みの障害を発生させる、ディスクでの物理的な問題のことです。

* ユーザー・エラー

  誤りによって、データベース内のデータが誤って変更または削除によって、データがなくなることです。

* アプリケーション・エラー

  ソフトウェアの障害によってデータ・ブロックが破損のことです。

## 物理記憶域構造 ##

* データベースファイル(CREATE DATABASEの時に作成されたファイル)
  * データファイル
  * 制御ファイル
  * オンラインREDOログ・ファイル
* 非データベースファイル
  * SPFILE
  * ネットワーキング・ファイル
  * バックアップ・ファイル
  * アーカイブREDOログ・ファイル

## 論理記憶域構造 ##

* 表領域
  * 永続表領域
    * SYSTEM表領域
    * SYSAUX表領域
    * UNDO表領域
    * ユーザ表領域
  * 一時表領域
    * 共有一時表領域
    * ローカル一時表領域 (12.2新機能)
* セグメント
  * 表
  * 索引
* エクステント
* データ・ブロック

## 障害の詳細 ##

前述物理記憶域構造と論理記憶域構造のどこかで障害が発生した場合、リカバリが必要な可能性があります。
以下は網羅的に障害およびバックアップのパターンをまとめます。

ここのバックアップはDBのバックアップ、ダンプファイルファイル、二重化データベース等を含む広義のバックアップです。ここのリカバリはバックアップと限らず、各手段で元に戻すの復元と意味します。以後は用語を混乱しないように、特別説明がない限り、オラクルのガイドブックと基準します。

1. すべてのデータベースファイル
1. すべてのデータファイル
1. SYSTEM表領域のデータファイル
1. SYSAUX表領域のデータファイル
1. UNDO表領域のデータファイル
1. ユーザ表領域のデータファイル
1. 共有一時表領域のデータファイル
1. ローカル一時表領域のデータファイル
1. すべての制御ファイル
1. 一部の制御ファイル
1. すべてのオンラインREDOログ・ファイル
1. すべてのACTIVEグループのオンラインREDOログ・ファイル
1. 一部のACTIVEグループのオンラインREDOログ・ファイル
1. すべてのCURRENTグループのオンラインREDOログ・ファイル
1. 一部のCURRENTグループのオンラインREDOログ・ファイル
1. すべてのINACTIVEグループのオンラインREDOログ・ファイル
1. 一部のINACTIVEグループのオンラインREDOログ・ファイル
1. SPFILE
1. ネットワーキング・ファイル
1. バックアップ・ファイル
1. アーカイブREDOログ・ファイル
1. テーブル
1. 索引
1. データブロック

## データ修復 ##

* Oracle Flashbackテクノロジ

  バックアップをリストアせずに、過去のデータの状態を表示したり、特定の時間に応じてデータを前後に巻き戻すことができます。

* データ・リカバリ・アドバイザ

  データ・リカバリ・アドバイザを使用して、データ障害の診断、ご使用の環境に最善の修復オプションの表示および修理の実行と検証を行います。

* ブロック・メディア・リカバリ

  ブロック・メディア・リカバリは、データファイルをオンラインの状態に保ったまま、破損データ・ブロックをリストアしてリカバリするテクニックです。

* データファイル・リカバリ

  データファイル・リカバリは、消失または破損した現行のデータファイルまたは制御ファイルを修復します。また、表領域がOFFLINE NORMALオプションを設定せずにオフラインになったときに消失した変更をリカバリします。

## バックアップの分類と制限 ##

* データベース全体のバックアップと部分バックアップ

    部分バックアップは対象外のほかの部分との一貫性を保つにはREDOが必要です。

* 一貫性バックアップと非一貫性バックアップ

   一貫性バックアップは一貫性が保たれた状態で停止した後にのみ実行できます。

* バックアップ・セットおよびイメージ・コピー

これらの制限によって、部分バックアップと一貫性バックアップは本番にほぼ採用されません。

## 各障害及び修復の例 ##

前述の障害が発生した場合、各データ修復方法はデータベースの運用とバックアップの種類によって違います。
以下は各障害を修復する方法を網羅します。なお、「1. すべてのデータベースファイル」と「2. すべてのデータファイル」以外は全てARCHIVELOGモードとします。バックアップ種別について、特別な説明がない限り、全体バックアップ・非一貫性バックアップ・バックアップ・セットとなります。

### データベースファイル ###

1. すべてのデータベースファイル

   1. [NOARCHIVELOGモード、全体バックアップ](https://qiita.com/linxuesong/items/e2a213c29dba09865185)
   1. [NOARCHIVELOGモード、増分バックアップ](https://qiita.com/linxuesong/items/b29e9a1d880caabc7921)
   1. NOARCHIVELOGモード、増分更新バックアップ
   1. ARCHIVELOGモード、全体バックアップ
   1. ARCHIVELOGモード、増分バックアップ
   1. ARCHIVELOGモード、増分更新バックアップ
   1. データベース2台運用(ロードバランシング)で1台正常(データベース・コピー作成)

1. すべてのデータファイル

   1. NOARCHIVELOGモード、全体バックアップ
   1. NOARCHIVELOGモード、増分バックアップ
   1. NOARCHIVELOGモード、増分更新バックアップ
   1. ARCHIVELOGモード、全体バックアップ
   1. ARCHIVELOGモード、増分バックアップ
   1. ARCHIVELOGモード、増分更新バックアップ
   1. データベース2台運用(ロードバランシング)で1台正常(インポート可能な表領域コピーの作成)

1. SYSTEM表領域のデータファイル
   1. ARCHIVELOGモード、全体バックアップ
1. SYSAUX表領域のデータファイル
   1. ARCHIVELOGモード、全体バックアップ
1. UNDO表領域のデータファイル
   1. ARCHIVELOGモード、全体バックアップ
1. ユーザ表領域のデータファイル
   1. ARCHIVELOGモード、全体バックアップ
1. 共有一時表領域のデータファイル
   1. 一時表領域手動作成
   1. データベース再起動
1. ローカル一時表領域のデータファイル
   1. 一時表領域手動作成
   1. データベース再起動
1. すべての制御ファイル
1. 一部の制御ファイル
   1. 多重制御ファイルをコピー
1. すべてのオンラインREDOログ・ファイル
1. すべてのACTIVEグループのオンラインREDOログ・ファイル
1. 一部のACTIVEグループのオンラインREDOログ・ファイル
1. すべてのCURRENTグループのオンラインREDOログ・ファイル
1. 一部のCURRENTグループのオンラインREDOログ・ファイル
1. すべてのINACTIVEグループのオンラインREDOログ・ファイル
1. 一部のINACTIVEグループのオンラインREDOログ・ファイル

### 非データベースファイル ###

1. SPFILE
   1. バックアップよりリスドア
   1. PFILEより作成
1. アーカイブREDOログ・ファイル
1. ネットワーキング・ファイル
   1. 再作成
1. バックアップ・ファイル
   1. バックアップを実行

### データロス ###

1. テーブル
   1. Oracle Flashbackテクノロジ
   1. Point-in-Timeリカバリ
1. 索引
   1. データファイル・リカバリ
   1. 索引再作成
1. データブロック
   1. データファイル・リカバリ
   1. ブロック・メディア・リカバリ