Using LogMiner to capture and replay parallel transactions

From: <Laimutis.Nedzinskas_at_seb.lt>
Date: Mon, 9 Jun 2014 12:54:45 +0300
Message-ID: <OF5F13FE22.D2F1DB3A-ONC2257CF2.003478CA-C2257CF2.003673C0_at_seb.lt>


Hi

I have a task to capture a work done by many users in parallel and prepare SQL script such that executing the script yields the same database state as the work done by users.

I plan to use LogMiner for that task. However I am not sure how to filter and order the contents of V$LOGMNR_CONTENTS so that replay yields the same results as the original transactions.

In the Oracle documentation I've found the following statements:

1.
http://docs.oracle.com/cd/E11882_01/server.112/e22490/logminer.htm#SUTIL1566

LogMiner returns all the rows in SCN order unless you have used the COMMITTED_DATA_ONLY option to specify that only committed transactions should be retrieved. SCN order is the order normally applied in media recovery.

This looks promising but how to deal with rollbacked transactions ? It looks a bit complicated.

2.
http://docs.oracle.com/cd/E11882_01/server.112/e22490/logminer.htm#SUTIL1574 When you specify the COMMITTED_DATA_ONLY option, LogMiner groups together all DML operations that belong to the same transaction. Transactions are returned in the order in which they were committed.

I think this is the order of SQL statments that I need. May be someone can confirm that my assumption is correct:

        replay of COMMITTED_DATA_ONLY ordered by <commit_scn, scn> yields the same database state as the original transactions ?

Thank you in advance,
Laimis N

--
http://www.freelists.org/webpage/oracle-l
Received on Mon Jun 09 2014 - 11:54:45 CEST

Original text of this message