MyLOG, an offline Oracle log miner to extract the redo SQLs

Links: http://www.dbatools.net/mytools/offline-oracle-logminer.html

    I spent some time in researching the Oracle log file format. Previous research was done about two years ago for Oracle 9i. Fortunately I did get something for these days research. And wrote a tool called "MyLOG" (8i/9i,10g/11g) for a demo utility. I run the following SQLs in the Oracle. The original target is to write a tool with same features as Quest Shareplex.

SQL> insert into mylog values ('My Log 10g',-1,sysdate);
SQL> insert into mylog select object_name, object_id, created
   2 from user_objects where rownum < 4;
SQL> update mylog set created = created + 1;
SQL> delete mylog;
SQL> select object_id from user_objects where object_name='MYLOG';

OBJECT_ID
----------
     10576

    Create a text file named "LOGTAB.TXT", contain the following lines (The second column is the object id of the table).

3,10576,MYLOG,

    And create a text file named "LOGCOL.TXT", contain the following lines (The second column is the column storage order number, the SETCOL# column of COL$).

3,1,OBJECT_NAME,VARCHAR2
3,2,OBJECT_ID,NUMBER
3,3,CREATED,DATE

    Now I run the MyLOG to extract the redo SQLs.

LOG> extract start 2 table mylog
Start extract redo SQL ...
RBA=0x000069.0000095d.0010,  XID=0x000a.007.0000009b, RID=AAAClQAAEAAAAKMAAA
   INSERT INTO MYLOG ( OBJECT_NAME , OBJECT_ID , CREATED ) VALUES ('My Log 10g',-1,'2007-05-30 16:16:33');

RBA=0x000069.00000960.0010,  XID=0x0006.001.00000096
   RID=AAAClQAAEAAAAKMAAB
   INSERT INTO MYLOG ( OBJECT_NAME , OBJECT_ID , CREATED ) VALUES ('TIME_DIM',9771,'2006-10-09 21:22:08');
   RID=AAAClQAAEAAAAKMAAC
   INSERT INTO MYLOG ( OBJECT_NAME , OBJECT_ID , CREATED ) VALUES ('P_DEMO',10267,'2007-03-27 21:17:05');
   RID=AAAClQAAEAAAAKMAAD
   INSERT INTO MYLOG ( OBJECT_NAME , OBJECT_ID , CREATED ) VALUES ('EXT_DATE',10159,'2007-03-01 16:11:23');

RBA=0x000069.00000962.0010,  XID=0x0009.003.00000093
   RID=AAAClQAAEAAAAKMAAA
   UPDATE MYLOG SET  CREATED = '2007-05-31 16:16:33' WHERE  CREATED = '2007-05-30 16:16:33';
   RID=AAAClQAAEAAAAKMAAB
   UPDATE MYLOG SET  CREATED = '2007-05-31 16:16:33' WHERE  CREATED = '2007-05-30 16:16:33';
   RID=AAAClQAAEAAAAKMAAC
   UPDATE MYLOG SET  CREATED = '2007-05-31 16:16:33' WHERE  CREATED = '2007-05-30 16:16:33';
   RID=AAAClQAAEAAAAKMAAD
   UPDATE MYLOG SET  CREATED = '2007-05-31 16:16:33' WHERE  CREATED = '2007-05-30 16:16:33';

RBA=0x000069.00000964.0010,  XID=0x0001.028.0000009b, RID=AAAClQAAEAAAAKMAAA
   DELETE MYLOG WHERE  OBJECT_NAME =  'My Log 10g' AND  OBJECT_ID =  -1 AND  CREATED =  '2007-05-31 16:16:33';

RBA=0x000069.00000964.0010,  XID=0x0001.028.0000009b, RID=AAAClQAAEAAAAKMAAB
   DELETE MYLOG WHERE  OBJECT_NAME =  'TIME_DIM' AND  OBJECT_ID =  9771 AND  CREATED =  '2006-10-10 21:22:08';

RBA=0x000069.00000964.0010,  XID=0x0001.028.0000009b, RID=AAAClQAAEAAAAKMAAC
   DELETE MYLOG WHERE  OBJECT_NAME =  'P_DEMO' AND  OBJECT_ID =  10267 AND  CREATED =  '2007-03-28 21:17:05';

RBA=0x000069.00000964.0010,  XID=0x0001.028.0000009b, RID=AAAClQAAEAAAAKMAAD
   DELETE MYLOG WHERE  OBJECT_NAME =  'EXT_DATE' AND  OBJECT_ID =  10159 AND  CREATED =  '2007-03-02 16:11:23';

    Row chain and row migrating is not processed yet, and there must be a lot of bugs currently.

« Previous | Main | Next »

Powered by
Movable Type 5.01