解出Oracle日志文件中的Redo SQL语句之三

    初步解决了事务的划分问题. 这得感谢biti_rainy的帮助, 从另一个角度来看, 如果我们的DBA可以一起研究, 估计速度要快得多.

    已经可以用XID这一条线来划分Redo SQL的事务关系了, 来看一下MyLOG的输出例子吧!

LOG> extract start 2 end 6
Start extract redo SQL ...
RBA=0x005e30.00000002.0010,  SCN=0x031f.05c00824,  XID=0x0012.049.000dc2bb,  UBA=0x62c263c4.498b.08
   INSERT INTO OBJ_1044190 (COL1,COL2,COL3,COL4,COL5) VALUES (?,?,?,?,?);

RBA=0x005e30.00000002.0188,  SCN=0x031f.05c00824,  XID=0x000e.018.000daa6f,  UBA=0x3b41c2dd.3bce.2d
   UPDATE OBJ_28267 SET COL84 = ?,COL95 = ?,COL96 = ? WHERE COL84 = ? AND COL95 = ? AND COL96 = ?;

RBA=0x005e30.00000004.0128,  SCN=0x031f.05c00824,  XID=0x0016.04d.0005a421,  UBA=0xb4000fe3.1a0a.0e
   UPDATE OBJ_28267 SET COL3 = ?,COL20 = ?,COL23 = ?,COL34 = ?,COL35 = ?,COL36 = ?,COL39 = ?,COL40 = ?,COL41 = ?,COL45 = ?,COL51 = ?,COL82 = ?,COL83 = ?,COL84 = ?,COL95 = ?,COL96 = ? WHERE COL3 = ? AND COL20 = ? AND COL23 = ? AND COL34 = ? AND COL35 = ? AND COL36 = ? AND COL39 = ? AND COL40 = ? AND COL41 = ? AND COL45 = ? AND COL51 = ? AND COL82 = ? AND COL83 = ? AND COL84 = ? AND COL95 = ? AND COL96 = ?;

RBA=0x005e30.00000006.0028,  XID=0x000e.018.000daa6f,  UBA=0x3b41c2dd.3bce.2d,  Commit Transaction

    上面只是第2个块到第6个块的Redo SQL, 看更多的请下载这个文件. 接下来初步估计有两个任务, 第一个是增加对Oracle 10g的日志文件的支持; 第二个是增加一个数据字典, 解出更直接的Redo SQL语句. 最后肯定留下一堆堆的Bug慢慢研究.

    好象对开发一个类SharePlex逻辑复制软件的信心越来越足了.

留言 (2)

等你下一个(增加了数据字典 和 真实table name)Beta版 出来以后, 我帮你试用,
要知道 先驱用户 应该是免费的吆.
我还可以说服我们公司购买你的1.0正式发行版.

当我昨天申请买3个 US$2000 的 Toad licenses 时,
领导眼睛都没眨一下,就同意了.
还想问问,你这个产品的目标用户是谁,如何区分于同类产品...?
因为Logical Standby,FlashBack TX(View: FLASHBACK_TRANSACTION_QUERY) & Log Miner 已经有同类功能了.

爸妈上周末刚从 西安 来到 维多利亚, 我还没有来得及找出时间研究你的OCI*Unloader.

Log Miner 依赖的是某一时刻提取出来的数据字典吧,因此动态性很难保证

发表留言: