Oracleのアーカイブログとは

Oracleには通常のログ以外にアーカイブログがあります。「アーカイブログ」とは何でしょうか?



REDOログファイル

「アーカイブログ」の説明の前に「REDOログ」ファイルをみていきましょう。なぜなら「アーカイブログ」と「REDOログ」は密接な関係があるからです。

「REDOログファイル」とはOracleの更新情報が入っているファイルです。

例えば、データベースの従業員テーブルの「電話番号」を更新します。その後、先ほどの電話番号が間違いだとわかり、もう一度「電話番号」を更新したとします。

電話番号を2回更新しました。この場合、最後の結果がデータベースの本体、いわゆるデータファイルに書き込まれます。

Oracleは最後の結果だけではなく、この2回の更新情報も記録しています。その履歴が「REDOログファイル」に残っています。

つまり、Oracleの「REDOログファイル」は「更新履歴のファイル」です。

  • 最後の結果 →データファイルに記録されます
  • 更新履歴 →REDOログファイルに記録されます

REDOログファイルの問題点

では、ここで障害について考えてみます。もし何らかの障害で先ほどの電話番号が消えてしまったら?DB管理者として大問題ですよ。

ここでいう「消える」というのはデータファイルから消えるという意味です。データファイルから消えてしまっても、この「REDOログファイル」の中に更新情報は残っているので復旧はできるわけです。

が、この「REDOログファイル」、ひとつ問題があります。REDOログファイルは容量に上限があり、上限一杯になると上書きしてしまうのです

先ほど電話番号を更新しましたが、他の人がその後大量のデータ更新をしたら「REDOログファイル」からその情報が消えてしまいます。

困りますよね?こうなってしまったら障害発生時に復旧できませんよね?そこで登場するのが「アーカイブログファイル」です。

アーカイブログファイル

「REDOログファイル」が一杯になったら上書きされてしまい、更新履歴が消えてしまいます。そうなる前に、さくっと別のログファイルに退避しておくんです。もちろん上書きされません。

これが「アーカイブログ」です。「アーカイブログファイル」は上書きされないので、「REDOログファイル」が一杯になる都度どんどん作成されていきます。これなら絶対に消えることはありません。安心です。

でも、逆に管理者が定期的に消さないとサーバーの容量が一杯になってしまうので注意が必要です。通常は自動的に消えるように設定しておきます。

アーカイブログ運用にするには

また、アーカイブログ運用にするには設定する必要があります。詳細はこちらから。

Oracleアーカイブログモードにする手順

アーカイブログのまとめ

  • Oracleの更新情報は「REDOログファイル」にどんどん上書きされます。
  • 更新情報が消えないよう「REDOログファイル」のバックアップとして「アーカイブログファイル」に残しておきます。
  • アーカイブログファイルは自動では消えない

以上、Oracleの「アーカイブログ」の解説でした。