ablog

不器用で落着きのない技術者のメモ

オンラインREDOログ・グループの STATUS が ACTIVE ってどういう意味?

ACTIVE このオンラインREDOログはアクティブです。インスタンスリカバリに必要です。ただし、現在書込みが行われているログではありません。ブロック・リカバリに使用されている可能性があります。また、アーカイブされる場合とされない場合があります

高度なユーザー管理のリカバリの例

現在書込みが行われているREDOログ・グループは CURRENT で、それ以外に ACTIVE なREDOログ・グループが存在する。
つまり、インスタンスリカバリの際に CURRENT と ACTIVE なREDOログ・グループを使用するということになる。

ログスイッチの際に、チェックポイントが発生してインスタンスリカバリの際には CURRENT のREDOログ・グループのみ使用すると思ってたけど、違った。

ログスイッチ後に最初のチェックポイントが発生するまでは、最後のチェックポイントは CURRENT じゃないREDOログに含まれ、インスタンスリカバリの時に使われる。ということは、alter system checkpoint; を実行すれば CURRENT 以外の REDOログ・グループのステータスは INACTIVE になるはず。


以下はちょっと試してみた結果。

データファイルヘッダの SCN を確認する。

SQL> select checkpoint_change# from v$datafile_header;

CHECKPOINT_CHANGE#
------------------
            219082
            219082
            219082
            219082

最後のチェックポイントの SCN は 「219082」。

REDOログの状態を確認する。

SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ----------
         1          1         33  104857600          2 YES ACTIVE                  219076 07-JAN-10
         2          1         32  104858112          2 YES INACTIVE                216933 07-JAN-10
         3          1         34  104857600          2 NO  CURRENT                 219634 07-JAN-10

グループ3が CURRENT で最初の SCN は「219634」。グループ1が ACTIVE で最初の SCN は「219076」。
従って、最後のチェックポイント「219082」はグループ1にある。

強制的にチェックポイントを発生させる。

SQL> alter system checkpoint;

データファイルヘッダの SCN を確認する。

SQL> select checkpoint_change# from v$datafile_header;

CHECKPOINT_CHANGE#
------------------
            219675
            219675
            219675
            219675

最後のチェックポイントの SCN は 「219675」。
REDOログの状態を確認する。

SQL> select * from v$log;

    GROUP#    THREAD#  SEQUENCE#      BYTES    MEMBERS ARC STATUS           FIRST_CHANGE# FIRST_TIME
---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- ----------
         1          1         33  104857600          2 YES INACTIVE                219076 07-JAN-10
         2          1         32  104858112          2 YES INACTIVE                216933 07-JAN-10
         3          1         34  104857600          2 NO  CURRENT                 219634 07-JAN-10

CURRENT 以外が INACTIVE になっている。想定通り。