LogMinerは、LogMinerディクショナリの一貫性を維持するためにDDL文が必要なため、DDL_DICT_TRACKING
オプションが有効な場合、要求した開始時刻またはSCN(DBMS_LOGMNR.START_LOGMNR
で指定)より前に、REDOログ・ファイルの読取りを開始する場合があります。LogMinerがREDOログ・ファイルの読取りを開始する実際の時刻またはSCNは、必須開始時刻または必須開始SCNと呼ばれます。
欠落REDOログ・ファイル(順序番号に基づく)は、必須開始時刻または必須開始SCNから読取りを開始できません。
LogMinerでは、REDOログ・データの読取りを開始する位置を次のとおり決定します。
ディクショナリのロード後、DBMS_LOGMNR.START_LOGMNR
を初めてコールする場合、LogMinerは、次のいずれかの値の早い方を基準に読取りを開始します。
ユーザーが要求した開始時刻またはSCN値
ディレクトリ・ダンプのコミットSCN
DBMS_LOGMNR.START_LOGMNR
に対するこれ以降のコールでは、LogMinerは、次のいずれかの値の最も早いものを基準に読取りを開始します。
ユーザーが要求した開始時刻またはSCN値
COMMIT
文がLogMinerによって読み込まれていない最も早いDDLトランザクションの開始時
LogMinerによって読み込まれた最高のSCN
次に、前述の内容の使用例を示します。
5つのREDOログ・ファイルを含むREDOログ・ファイル・リストを作成するとします。ディクショナリは、最初のREDOファイルに含まれ、確認対象として指定した変更(DBMS_LOGMNR.START_LOGMNR
を使用)は、3番目のREDOログ・ファイルに記録されているとします。ここで、次の手順を実行します。
DBMS_LOGMNR.START_LOGMNR
をコールします。LogMinerによって、次のログ・ファイルが読み込まれます。
ディクショナリをロードするための最初のログ・ファイル
その中に含まれている可能性があるDDLをすべて取得するための2番目のREDOログ・ファイル
必要なデータを取得するための3番目のログ・ファイル
同じ要求範囲で、再度DBMS_LOGMNR.START_LOGMNR
をコールします。
LogMinerは、REDOログ・ファイル3から読取りを開始します。REDOログ・ファイル2に含まれているDDL文はすでに処理されているため、REDOログ・ファイル2を読み込む必要はありません。
DBMS_LOGMNR.START_LOGMNR
を再度コールします。今回は、REDOログ・ファイル5からデータを読み込む必要があるパラメータを指定します。
LogMinerは、REDOログ・ファイル4から読取りを開始し、その中に含まれているすべてのDDL文を取得します。
LogMinerが実際に読取りを開始する位置を確認するには、V$LOGMNR_PARAMETERS
ビューのREQUIRED_START_DATE
列またはREQUIRED_START_SCN
列を問い合せます。LogMinerが読取りを開始する位置に関係なく、要求した範囲内の行のみがV$LOGMNR_CONTENTS
ビューから返されます。