OracleマスターSilver 12ｃ バックアップとリカバリの設定

※用語はなるべく、Oracle® Databaseリファレンス　12c リリース1 (12.1) より抜粋しております。

【太字】：試験最重要ポイント
【青色】：試験問題を解くために必要な理解
【赤字】：最低限押さえておきたい知識
出題例：正解のみ掲載しています

###■公式チェックリストより出題範囲
バックアップとリカバリの設定
・高速リカバリ領域を設定する
・ARCHIVELOGモードを設定する

－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－

###要点
バックアップ、リカバリーに関係するアーキテクチャは頻出トピック。
何度も復習し、用語が出てきたらそれを他人に説明できるようになるよう理解しよう
特にARCHIVELOGモードに関しては必ず出題されると思うので正確に理解しよう。
NOARCHIVELOGモードとARCHIVELOGモードの違いを同時に理解しようとすると難しいので、まずは片方理解してからもう片方に取り掛かろう

－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－－

###バックアップとリカバリの設定

####制御ファイルのリカバリ可能性を高める構成
　Oracleデータベースには制御ファイルが1つ必要ですが、その制御ファイルを損失した場合、Oracleサーバーは動作できません。

●損失した場合
　→制御ファイルを再作成。<font color="SlateGray">（正常な制御ファイルがあればスクリプトを作成することができます。）</font>
　→制御ファイルのバックアップを使用したリカバリ
<font color="Red">複数の制御ファイルを準備しておき、障害が発生した場合、正常なファイルをコピーする</font>
<font color="Blue">複数の制御ファイルが用意されている場合でも、そのうちの1つが損失するとOracleサーバーは停止してしまう点に注意。</font>

■多重化の手順
現行の制御ファイルの多重化コピーを追加、または制御ファイル名を変更する手順は、次のとおりです。

    1.データベースを停止します。

    2.オペレーティング・システムのコマンドを使用して、既存の制御ファイルを新しい位置にコピーします。

    3.データベース初期化パラメータ・ファイルのCONTROL_FILESパラメータを編集して、新しい制御ファイル名を追加するか、または既存の制御ファイル名を変更します。

    4.データベースを再起動します。

■バックアップコマンド
バックアップの作成：ALTER DATABASE BACKUP CONTROLFILE TO '/oracle/backup/control.bkp';
制御ファイルの再作成に使用できるSQLを作成する。：ALTER DATABASE BACKUP CONTROLFILE TO TRACE;

___
####REDOログファイルのリカバリ可能性を高める構成
　REDOログファイルは、**循環して使用されるファイル**であるため、<FONT COLOR=red>最低2つ</FONT>のファイルが必要です。
REDOロググループには最低1つのREDOログファイル（REDOログメンバー）が含まれることになります。
　
　**●REDOログメンバーの追加**
　　　<FONT COLOR=red>REDOログの多重化</FONT>
　　　・1つのREDOロググループに2つ以上のREDOログメンバーを持つこと。
　　　※制御ファイル同様、別のディスクに各メンバーを配置することが推奨される。

　**●REDOロググループの追加**
　　　REDOログファイルが満杯になるとログスイッチが発動し、REDOロググループが切り替わります。
　　　次のREDOログメンバーを上書きするためには、チェックポイントとアーカイブREDOログファイルの作成が完了している必要があります。
　　　完了していない場合はログスイッチが待機します。この待機を防止するには3つめのREDOロググループを追加することで時間が稼げます。

　REDOログファイルを多重化している場合、REDOロググループ内で最低1つのREDOログメンバーに書き込みが出来れば、**Oracleサーバーは動作し続けることが出来ます。**

■多重化の方法
EM Expressを使用する。やり方は出題されないので詳しくは公式docへ。
___
####NOARCHIVELOGモードとARCHEVELOGモード
REDOログファイルは<FONT COLOR=red>ログスイッチによって循環して、使用されるファイルです。</FONT>
ログスイッチの発生によって循環してきたとき、チェックポイントが完了していれば、上書きされます。上書きされる前のREDOログエントリは<FONT COLOR=red>インスタンスリカバリにのみ使用される内容です。</FONT>

####『NOARCGIVELOGモード』
インスタンスリカバリだけができるように構成されたOracleサーバーモードを**NOARCGIVELOGモード**と呼びます。

【NOARCHIVELOGモード】
　・アーカイブREDOログファイルの管理は不要<font color="SlateGray">（このモードではそもそも生成しない）</font>
　・**バックアップ**
　　　<FONT COLOR=red>→データベースを停止する必要がある。</FONT>
　　　→同じタイミングで取得したデータベース全体のバックアップが必要（**一貫性バックアップ**）
　・<FONT COLOR=red>データファイルに障害が発生した場合、バックアップ全体をリストアする必要がある。</FONT>
　・アーカイブREDOログファイルを運用するリカバリがない。

####『ARCHIVELOGモード』
Oracleサーバーを**ARCHEIVELOGモードで**構成するとログスイッチ時にREDOログファイルのコピーであるアーカイブREDOログファイルがARCｎプロセスによって作成されます。
→アーカイブREDOログファイルの内容がどのREDOログファイルのものであるかはファイル名に含まれる**ログ順序番号**によって判別できる。

【ARCHIVELOGモード】
　・アーカイブREDOログファイルを失うとリカバリできなくなるため適切な管理が必要
　・**バックアップ**
　　　→**データベースがオープンしていても可能**
　　　→個々のデータファイル、表領域単位で取得したバックアップでよい（**非一貫性バックアップ**）
　・データファイルに障害が発生した場合、**障害が発生したファイルのみリストア**すればよい
　・アーカイブREDOログファイルを適用するリカバリができる。
___
####ARCHIVELOGモードの構成
　データベースをARCHIVELOGモードにするには、**初期化パラメータの変更と、コマンドを使用した制御ファイル情報の書き換え**が必要です。

１．初期化パラメータの設定

<font color="Red">LOG_ARCHIVE＿DESTｎ</font>
・LOG_アーカイブREDOログファイルの作成場所を指定する
・ローカルマシンのディスクまたはスタンバイサイトへのネットサービス名が使用できる。

LOG_ARCHIVE_FORMAT
・アーカイブREDOログファイル名の書式を指定する。

２．ARCHIVELOGモードへの変更
　制御ファイルにモード変更をコマンド入力する必要がある。そのため、**データベースがマウントされた状態**で変更する必要がある。
データベースがARCIVELOGモードであることの確認は<FONT COLOR=red>ARCHIVELOGLOG LISTコマンド</FONT>で行える。

___
###出題例

出題例：制御ファイルが損失した時のために、制御ファイルのリカバリ可能性を高める方法を選択しなさい
→制御ファイルを多重化しておく。

出題例：多重化しておいた制御ファイルの1つが損失しました。Oracleサーバーは停止しますか？
→1つでも損失した場合、停止します。正常なファイルが残っていればそれをコピーし設置しなおすことでリカバリ可能です。

出題例：REDOロググループが3つ構成されており、各グループにはそれぞれ3つのログメンバーが存在しています。REDOロググループのうち2つが停止しました。Oracleサーバーは停止しますか？
→停止しません。REDOロググループ内で最低1つのログメンバーに書き込みができればOracleサーバーは稼働し続けます。

出題例：バックアップ取得のために**データベースを停止することが出来ない**、停止中にバックアップが完了できないシステム、**障害発生時にデータの損失が許容されない**場合、NOARCHIVELOGモードとARCHIVELOGモードのどちらが適していますか？
→ARCHIVELOGモード

出題例：アーカイブログモードにおいてデータベースをマウントしてリカバリするファイルを2つ選択しなさい
→SYSTEM表領域のデータファイル
→UNDO表領域のデータファイル
SYSTEM表領域とアクティブなUNDO表領域に属するデータファイルは<font color="Blue">クリティカルなファイルと呼ばれデータベースをオープンしたままでリカバリすることはできません。</font>

出題例：アーカイブログファイルの出力先ディレクトリを指定するパラメータを選択しなさい。
→LOG_ARCHIVE_DEST_n
余談：<font color="SlateGray">高速リカバリ領域を構成し(DB_RECOVERY_FILE_DESTおよびDB_RECOVERY_FILE_DEST_SIZEパラメータを設定)、ローカル・アーカイブ先を指定しない場合、データベースによって自動的に高速リカバリ領域はローカル・アーカイブ先として選択され、LOG_ARCHIVE_DEST_1はUSE_DB_RECOVERY_FILE_DESTに設定されます。</font>（これは出ないと思うけど迷わせる選択肢としてあるかも）