已花了两周时间搞日志格式研究, 应当收尾了, 这东西长期搞下去没有出路. 没想到仅花了两周时间, 就可以给大家做个演示了. 我在Oracle中运行了以下角本:

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

    在运行MyLOG程序的目录下建一个LOGTAB.TXT文件, 包含一行记录(要将第二个值替换成你的测试表的Object ID):

3,10576,MYLOG,

    在运行MyLOG程序的目录下建一个LOGCOL.TXT文件, 包含三行记录(应换为你的测试表的表结构记录):

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

    现在在MyLog中解出所有的这些操作:

Start extract redo SQL …
RBA=0×000069.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=0×000069.00000960.0010,  XID=0×0006.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=0×000069.00000962.0010,  XID=0×0009.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=0×000069.00000964.0010,  XID=0×0001.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=0×000069.00000964.0010,  XID=0×0001.028.0000009b, RID=AAAClQAAEAAAAKMAAB
   DELETE MYLOG WHERE  OBJECT_NAME =  ’TIME_DIM’ AND  OBJECT_ID =  9771 AND  CREATED =  ’2006-10-10 21:22:08′;

RBA=0×000069.00000964.0010,  XID=0×0001.028.0000009b, RID=AAAClQAAEAAAAKMAAC
   DELETE MYLOG WHERE  OBJECT_NAME =  ’P_DEMO’ AND  OBJECT_ID =  10267 AND  CREATED =  ’2007-03-28 21:17:05′;

RBA=0×000069.00000964.0010,  XID=0×0001.028.0000009b, RID=AAAClQAAEAAAAKMAAD
   DELETE MYLOG WHERE  OBJECT_NAME =  ’EXT_DATE’ AND  OBJECT_ID =  10159 AND  CREATED =  ’2007-03-02 16:11:23′;

    有兴趣的话可以下载玩玩, 要10g的数据库的.