用logmnr追踪oracle操作记录

1 打开补充日志

alter database add supplemental log data;

SQL> select SUPPLEMENTAL_LOG_DATA_MIN from v$database;

SUPPLEME

--------

YES

--发现没打开附加日志,也可以追踪与恢复数据。

2 确保已配置utl_file_dir

SQL> show parameter utl_file_dir;

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

utl_file_dir                         string

如果value值为空,说明没设置该值,需要设置下,示例:

alter system set UTL_FILE_DIR='/home/oracle/logmnr' scope=spfile;

重启数据库,使修改生效:

SQL> shutdown immediate;

SQL> startup;

SQL> show parameter utl_file_dir;

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

utl_file_dir                         string      /home/oracle/logmnr

3 制造测试数据(可选)

用jiao这个用户执行一条sql:

update scott.emp set comm=8888 where empno=7900;

4 追踪操作记录

4.1 建立数据字典分析文件

SQL>exec dbms_logmnr_d.build('dict.ora','/home/oracle/logmnr',dbms_logmnr_d.store_in_flat_file);

4.2 添加日志分析(要追踪的sql所在日志)

exec dbms_logmnr.add_logfile(logfilename=>'/u01/app/oracle/fast_recovery_area/IISP/archivelog/2022_07_21/o1_mf_1_1_kfkyysrk_.arc',options=>dbms_logmnr.new);

4.3 执行分析

exec dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/logmnr/dict.ora',options=>dbms_logmnr.ddl_dict_tracking);

--这里也可以限制时间范围,如:

execute dbms_logmnr.start_logmnr(startTime => to_date('2020-04-22 11:00:18','yyyy-mm-dd hh24:mi:ss'),endTime => to_date('2020-04-22 11:10:06','yyyy-mm-dd hh24:mi:ss'),DictFileName => '/home/oracle/ogmnr\dict.ora',options=>dbms_logmnr.ddl_dict_tracking);

4.4 查看分析结果

查看关于EMP表的update操作记录:

select username,seg_owner,scn,to_char(timestamp, 'YYYY-MM-DD HH:MI:SS'),sql_redo from v$logmnr_contents where lower(sql_redo) like '%update%' and table_name='EMP';

可以看到是JIAO这个用户执行了一个update操作,sql_redo里可以看到具体的操作。注意,where条件和执行时的where条件有些出入。

4.5 结束分析

execute dbms_logmnr.end_logmnr;

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雅冰石

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值