Note the following interactions that occur when various settings of dictionary tracking and supplemental logging are combined:
If DDL_DICT_TRACKING
is enabled, but supplemental logging is not enabled and:
A DDL transaction is encountered in the redo log file, then a query of V$LOGMNR_CONTENTS
will terminate with the ORA-01347 error.
A DML transaction is encountered in the redo log file, then LogMiner will not assume that the current version of the table (underlying the DML) in its dictionary is correct, and columns in V$LOGMNR_CONTENTS
will be set as follows:
The SQL_REDO
column will contain binary data.
The STATUS
column will contain a value of 2
(which indicates that the SQL is not valid).
The INFO
column will contain the string 'Dictionary Mismatch'.
If DDL_DICT_TRACKING
is not enabled and supplemental logging is not enabled, and the columns referenced in a DML operation match the columns in the LogMiner dictionary, then LogMiner assumes that the latest version in its dictionary is correct, and columns in V$LOGMNR_CONTENTS
will be set as follows:
LogMiner will use the definition of the object in its dictionary to generate values for the SQL_REDO
and SQL_UNDO
columns.
The status column will contain a value of 3
(which indicates that the SQL is not guaranteed to be accurate).
The INFO
column will contain the string 'no supplemental log data found'.
If DDL_DICT_TRACKING
is not enabled and supplemental logging is not enabled and there are more modified columns in the redo log file for a table than the LogMiner dictionary definition for the table defines, then:
The SQL_REDO
and SQL_UNDO
columns will contain the string 'Dictionary Version Mismatch'.
The STATUS
column will contain a value of 2
(which indicates that the SQL is not valid).
The INFO
column will contain the string 'Dictionary Mismatch'.
Also be aware that it is possible to get unpredictable behavior if the dictionary definition of a column indicates one type but the column is really another type.