OCP Blog
Super DBA
Logminer Gives Error - In Memory Undo is unsupported, What is In memory undo?
by Vazha Mantua Tuesday, July 12, 2011 1:44 PM



Hello All,

Oracle uses undo segments for these proposes

Undo records are used to:

1. Roll back transactions when a ROLLBACK statement is issued

2. Recover the database

3. Provide read consistency

4. Analyze data as of an earlier point in time by using Oracle Flashback Query

5. Recover from logical corruptions using Oracle Flashback features


In Memory undo!


In 10G,Oracle begin use new feature called In memory undo know as IMU, instead of undo

segments, they use memory structure which store undo information. Oracle still creates undo because it must still provide commit, rollback, and read consistency capabilities.

This has many implications. Anytime an Oracle buffer is changed the associated change (called a redo vector) is written into the redo log buffer. Unfortunately,

even if an undo segment is changed its change must also be recorded in the redo log buffer. But since IMUs are not undo segments, their changes

do not generate redo! So IMU will reduce the amount of redo an instance generates.

When we use traditional undo segments for each change , in redo log buffer write information about change of buffer cache block and undo block!

Another amazing feature of IMU is when it comes time to transform the in-memory undo into undo segment format(commit complete),

multiple IMUs can be consolidated into a single undo segment write.

When we use IMU for each change, in redo log buffer write information only for buffer cache block and after when IMU flushed in redo log buffer wrote combine undo info.

As we know Oracle use IMU for small transaction, for large transaction it works with traditional undo segment, but we don’t know it exactly. if we find any article about it we will tell us!




Logminer Gives Error - In Memory Undo is unsupported!


Why logiminer Gives error?

We see that structure of redo entries is different, for IMU logminer can’t recover full picture of transaction in same time.


Now see on metalink, note ID 428167.1 which give us solution for avoid error “In Memory Undo is unsupported” in future!

1.Logminer cannot always populate all the fields of the v$logmnr_contents this is
because the redo may/may not have all the information that we need for every
column. Adding Supplemental Logging will help in more info being logged in the
redo being generated, helping populate more values. This can be done by the
following commands:
Additionally, it is not unusual for 10g to generate more redo than previously
seen in earlier versions.


2: Logminer cannot always populate all the fields of the v$logmnr_contents this is because the redo
may/may not have all the information that we need for every column, you need to enable supplemental
logging on the database following Note 186150.1
Supplemental logging is required to receive reliable and consistent information from logminer.
Without supplemental logging enabled, the redo may not contain enough information
for LogMiner to construct the correct sql_redo (or any sql_redo in the case of in-memory undo, IMU).
LogMiner does not work with IMU and turning supplemental logging on disables IMU.
Please enable supplemental logging as per Note 186150.1 to eliminate these messages and update
whether you still encounter the UNSUPPORTED messages.

3: Logminer may not be able to find sql_redo for transactions that were created before supplemental
logging is enabled.
It will only work for redo's which contains information to extract the correct sql_redo

Tags: ,

Filter by APML


<<  November 2017  >>

View posts in large calendar