Contrary to common assumptions, Oracle LogMiner can operate—even without supplemental logging—under certain conditions in Oracle 11g. This behavior was verified on Oracle Database 11g Enterprise Edition 11.2.0.1.0 (64-bit), where V$DATABASE.SUPPLEMENTAL_LOG_DATA_MIN reported 'NO', yet LogMiner successfully reconstructed DML statements for newly created tables.
To confirm the logging status:
SQL> SELECT supplemental_log_data_min FROM v$database;
SUPPLEME
--------
NO
A test scenario was executed using the SCOTT schema:
- A new table
emp2was created viaCREATE TABLE AS SELECTwith an empty result set. - All rows from
EMPwere inserted intoemp2, followed by aCOMMIT. - Separately, six rows were deleted from
EMP(wheredeptno = 30) and committed.
Archievd redo logs containing these operations were added to LogMiner:
BEGIN
DBMS_LOGMNR.ADD_LOGFILE(
logfilename => '/u01/app/flash_recovery_area/ORCL/archivelog/2014_10_11/o1_mf_1_12_b3kwq3qz_.arc',
options => DBMS_LOGMNR.NEW
);
DBMS_LOGMNR.ADD_LOGFILE(
logfilename => '/u01/app/flash_recovery_area/ORCL/archivelog/2014_10_11/o1_mf_1_11_b3kv67v1_.arc',
options => DBMS_LOGMNR.ADDFILE
);
END;
/
Before querying V$LOGMNR_CONTENTS, LogMiner must be initialized:
EXEC DBMS_LOGMNR.START_LOGMNR(
options => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG +
DBMS_LOGMNR.COMMITTED_DATA_ONLY
);
Querying for operations on EMP2 returned complete, syntactically valid INSERT statements—including fully qualified object names, quoted identifiers, explicit column lists, and properly formatted date literals:
SQL> SELECT sql_redo
FROM v$logmnr_contents
WHERE seg_name = 'EMP2'
AND operation = 'INSERT';
SQL_REDO
-------------------------------------------------------------------
insert into "SCOTT"."EMP2"("EMPNO","ENAME","JOB","MGR","HIREDATE","SAL","COMM","DEPTNO")
values ('7369','SMITH','CLERK','7902',TO_DATE('17-DEC-80', 'DD-MON-RR'),'800',NULL,'20');
insert into "SCOTT"."EMP2"("EMPNO","ENAME","JOB","MGR","HIREDATE","SAL","COMM","DEPTNO")
values ('7499','ALLEN','SALESMAN','7698',TO_DATE('20-FEB-81', 'DD-MON-RR'),'1600','300','30');
...
This confirms that LogMiner can reconstruct redo-based SQL for tables whose structure is known at analysis time—even without minimal supplemental logging—provided the online data dictionary is accessible (DICT_FROM_ONLINE_CATALOG). However, this capability has notable limitations: it does not reliably support updates or deletes on existing tables without supplemental logging, nor does it capture column-level change details (e.g., which columns were modifeid in an UPDATE). The reconstruction of INSERT statements succeeds because the full row image is present in redo for direct-path and conventional inserts when no supplemental logging is enabled.