生成环境误操作,需要使用logmnr挖掘归档日志,确定具体什么操作,和谁操作的?
由于库之前没有设置UTL_FILE_DIR参数,而这是个静态参数,需要重启库,下面给出不设置改参数的操作方法:
首先了解到误操作的大概时间,确定那个时间段的归档日志,然后通过下面的方法把归档日志加到日志组中:
[code]exec dbms_logmnr.add_logfile(logfilename=>'/ggdb_arch2/restore/2_1615_796831531.dbf',options=>dbms_logmnr.new);
exec dbms_logmnr.add_logfile(logfilename=>'/ggdb_arch2/restore/2_1616_796831531.dbf',options=>dbms_logmnr.addfile);
exec dbms_logmnr.add_logfile(logfilename=>'/ggdb_arch2/restore/2_1617_796831531.dbf',options=>dbms_logmnr.addfile);[/code]
在同一个会话中执行下面语句,开始logmnr:
[code]execute dbms_logmnr.start_logmnr(options => dbms_logmnr.dict_from_online_catalog);[/code]
之前确认误操作类型为UPDATE,由于这个表非常大,可以过滤一下,可以通过加索引等方式快速定位,也可以借助PL/SQL DEV这类工具查询,方便查看SQL语句。
[code]create table logmnr.log_0313_1617_update tablespace gg_data as select * from v$logmnr_contents where OPERATION='UPDATE';[/code]
操作完后执行下面语句,结束logmnr,释放资源:
[code]exec sys.dbms_logmnr.end_logmnr();[/code]
由于库之前没有设置UTL_FILE_DIR参数,而这是个静态参数,需要重启库,下面给出不设置改参数的操作方法:
首先了解到误操作的大概时间,确定那个时间段的归档日志,然后通过下面的方法把归档日志加到日志组中:
[code]exec dbms_logmnr.add_logfile(logfilename=>'/ggdb_arch2/restore/2_1615_796831531.dbf',options=>dbms_logmnr.new);
exec dbms_logmnr.add_logfile(logfilename=>'/ggdb_arch2/restore/2_1616_796831531.dbf',options=>dbms_logmnr.addfile);
exec dbms_logmnr.add_logfile(logfilename=>'/ggdb_arch2/restore/2_1617_796831531.dbf',options=>dbms_logmnr.addfile);[/code]
在同一个会话中执行下面语句,开始logmnr:
[code]execute dbms_logmnr.start_logmnr(options => dbms_logmnr.dict_from_online_catalog);[/code]
之前确认误操作类型为UPDATE,由于这个表非常大,可以过滤一下,可以通过加索引等方式快速定位,也可以借助PL/SQL DEV这类工具查询,方便查看SQL语句。
[code]create table logmnr.log_0313_1617_update tablespace gg_data as select * from v$logmnr_contents where OPERATION='UPDATE';[/code]
操作完后执行下面语句,结束logmnr,释放资源:
[code]exec sys.dbms_logmnr.end_logmnr();[/code]
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




