LogMiner Functionality Without Supplemental Logging in Oracle 11g

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 emp2 was created via CREATE TABLE AS SELECT with an empty result set.
  • All rows from EMP were inserted into emp2, followed by a COMMIT.
  • Separately, six rows were deleted from EMP (where deptno = 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.

Tags: Oracle logminer redo-log supplemental-logging oracle-11g

Posted on Fri, 15 May 2026 03:19:10 +0000 by sgs-techie