Logminer获取UNKNOWN的USERNAME

客户反馈尝试通过LOGMINER获取USERNAME和PROGRAM信息,但是即使打开了SUPPLEMENTAL LOG,仍然到得UNKNOWN的结果。
查询了MOS文档,果然找到了一个对应的BUG:Some Column Values Change To UNKNOWN Or NULL When Querying V$LOGMNR_CONTENTS [ID 1307497.1]。
当在START_LOGMINER的时候指定了START_SCN并在OPTIONS中指定了DDL_DICT_TRACKING时,查询V$LOGMNR_CONTENTS视图,第一次访问可以得到正确的USERNAME、MACHINE_NAME、OS_USERNAME、SESSION_INFO等信息,但是再次查询上述列会变成NULL或者UNKNOWN。
这个BUG影响版本从10.2.0.4到11.2.0.2,在11.2.0.3中被FIXED,Oracle还提供了单独了PATCH 10129774来解决这个问题。不过其实最简单避免这个错误的方法就是在START_LOGMINER后,通过CREAT TABLE的方式将V$LOGMNR_CONTENTS视图的内容保留下来,这其实也可以避免多次扫描V$LOGMNR_CONTENTS视图造成后台进行多次的日志挖掘。

This entry was posted in BUG and tagged , , , , , , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *