问题描述
在测试挖掘日志时,执行了多次DML操作,但是挖掘后发现只有1条DML语句,请问是什么原因
专家解答
如果不加附加日志,有的操作可能挖掘不出来,加了附加日志就可以全部挖出来:
SQL> alter database add supplemental log data; Database altered. SQL> r 1* select OPERATION,SQL_UNDO from v$logmnr_contents where TABLE_NAME='TEST' DDL DDL INSERT delete from "STEVEN"."TEST" where "ID" = '1' and "SERIAL#" = '2' and ROWID = 'AAAWrQAAEAAAACvAAA'; INSERT delete from "STEVEN"."TEST" where "ID" = '3' and "SERIAL#" = '4' and ROWID = 'AAAWrQAAEAAAACvAAB'; UPDATE update "STEVEN"."TEST" set "ID" = '1' where "ID" = '100' and ROWID = 'AAAWrQAAEAAAACvAAA'; DELETE insert into "STEVEN"."TEST"("ID","SERIAL#") values ('3','4');
未开启附加日志时的数据如下:
SQL> select OPERATION,SQL_REDO,SQL_UNDO from v$logmnr_contents where TABLE_NAME='TEST'; OPERATION -------------------------------- SQL_REDO ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- SQL_UNDO ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DDL create table test (id number,serial# number); INSERT insert into "STEVEN"."TEST"("ID","SERIAL#") values ('1','2'); delete from "STEVEN"."TEST" where "ID" = '1' and "SERIAL#" = '2' and ROWID = 'AAAWrLAAEAAAACvAAA'; INSERT insert into "STEVEN"."TEST"("ID","SERIAL#") values ('3','4'); delete from "STEVEN"."TEST" where "ID" = '3' and "SERIAL#" = '4' and ROWID = 'AAAWrLAAEAAAACvAAB'; UNSUPPORTED Unsupported Unsupported UNSUPPORTED Unsupported Unsupported DELETE delete from "STEVEN"."TEST" where "ID" = '3' and "SERIAL#" = '4' and ROWID = 'AAAWrLAAEAAAACvAAB'; insert into "STEVEN"."TEST"("ID","SERIAL#") values ('3','4'); 6 rows selected.
最后修改时间:2019-03-20 21:05:39
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。