トップ > DBA上級 バックアップリカバリ > 1章
1章 バックアップリカバリの基本
本章はバックアップリカバリの基本について再度復習していきます。
基本的な内容ですが、こちらは重要なポイントなのでしっかり抑えていきましょう。

データベースリカバリ


データベースに障害が発生した場合、データベースを正常な状態に復旧する必要があります。
障害といっても様々ですが、今回はデータベースのメディア障害について確認していきます。

メディア障害はデータファイルなどの物理ファイルが破損したりする障害です。

メディア障害を復旧する為にはバックアップが必要です。そのため、メディア障害に備え必ず
バックアップは取得しましょう。


完全リカバリ


障害発生直前まで戻すリカバリで完全リカバリといいます。

完全リカバリ

メディア障害が発生した場合、データベースのバックアップを使用してリカバリを行います。

まとめるとデータベースの完全リカバリは以下のとおりです。

@バックアップから対象データファイルをリストア
Aアーカイブログ、REDOログの適用(ロールフォワード)
Bロールバック

例えば、毎日6:00にバックアップを取得している環境で4/2 10:00にデータファイルが破損した
とします。データベースを普及する為、まずはバックアップからデータファイルをリストアします。

今回であれば、4/1,4/2のバックアップがありますが最も最近の4/2を使用します。
リストア後、データファイルは4/2 6:00の時点のデータファイルである為、直前まで戻す為に、
4/2 6:00以降に生成されたアーカイブログと、最新のREDOログを適用します。

ログ適用をロールフォワードといいます。
すべてのログを適用すると未COMMITの変更も含まれる為、最後にロールバックが実行されます。

このリカバリは障害発生直前まで戻すリカバリで完全リカバリといいます。


不完全リカバリ


データベースを直前ではなく、1日前のデータベースの状態に戻したいということもまれにあります。
基本的にはデータがなくなってしまうことは許容できないことは普通ですが、まれに直前まで復旧するのではなく過去の状態に戻すこともあります。 これを不完全リカバリといいます。

完全リカバリ

まとめるとデータベースの不完全リカバリは以下のとおりです。

@バックアップからすべてのデータファイルのリストア
A4/1 6:00-10:00までのアーカイブログの適用(ロールフォワード)
Bロールバック

現在4/2 10:00時点から1日前に戻すとします。その場合、4/1 6:00のバックアップをリストア
します。その後、すべてのアーカイブログを適用するのではなく、戻したい位置までのアーカイブログ
を適用します。その結果4/1 10:00の時点に戻すことができます。

上記のようにデータベースを過去の状態に復旧するリカバリを不完全リカバリといいます。

上記は次章からも重要な内容となるのでしっかりと抑えておきましょう。

SCN(システム変更番号)


OracleはSCN(システム変更番号)を使用し、データベース内の時間を管理しています。
SCNはトランザクション単位で一意に割当てられ、トランザクションが実行される度に増加します。
このSCNを使用しOracleは各トランザクションを一意に管理しています。

またリカバリ時にもSCNを指定し、不完全リカバリを実施することができます。
最新SCNは以下、SQLで確認することができます。

  SQL> select current_scn, scn_to_timestamp(current_scn) from v$database;

  CURRENT_SCN SCN_TO_TIMESTAMP(CURRENT_SCN)
  ----------- ---------------------------------------------------------------
    491983685 12-APR-17 09.41.02.000000000 AM
    

またSCNはREDOログ、制御ファイル、データファイルでそれぞれ保持されており、
最新SCNと各ファイルのSCNが同じであるかを判断しています。DB起動時はSCNをチェックし、
整合性を確認しています。SCNが現在と一致していない場合、そのファイルは最新の更新が
反映されていない為、リカバリが必要です。
またすべてのファイルは最新SCNと同じ値でないと起動できません。

例えばリカバリ時にUSERS表領域のデータファイルのみリストアし、過去の状態に戻す(不完全リカバリ)ということは出来ません。 USERS表領域のSCNだけが古い状態になるからです。そのため不完全リカバリの場合、すべてのデータファイルをリストアする必要があります。

完全リカバリの場合、USERS表領域のデータファイルのみリストアし、リカバリすることは可能です。
なぜなら最新のREDOログまで適用しているので、USERS表領域のSCNは最新となり、他のデータファイルと同じSCNとなるからです。

以上がリカバリの基礎の内容となります。

次章からは実際に例を使用してバックアップリカバリを確認していきましょう。