1.开启补充日志
select name ,supplemental_log_data_min from v$database;
alter database add supplemental log data; 不用重启
2.指定logminer字典(三选一)
logminer数据字典是logminer使用字典将内部对象标识符(ID)和数据类型转换为可读数据。如果没有字典,logminer分析的结果会显示为二进制数据
使用在线目录,必须在源数据库执行
EXECUTE DBMS_LOGMNR.START_LOGMNR(OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG);
抽取字典到redo日志文件中
EXECUTE DBMS_LOGMNR_D.BUILD( OPTIONS=> DBMS_LOGMNR_D.STORE_IN_REDO_LOGS);
抽取字典到(操作系统)平面文件中(需要设置utl_file_dir参数,重启数据库,不推荐)
EXECUTE DBMS_LOGMNR_D.BUILD('dictionary.ora', '/oracle/database/', DBMS_LOGMNR_D.STORE_IN_FLAT_FILE);
复制
3.使用源数据库数据字典online catalog分析dml操作
1)先进行dml和ddl操作,以便下面分析
select * from scott.dept;
insert into scott.dept values ('80','Dave','AnQing');
commit;
delete from scott.dept where deptno=40;
commit;
alter table scott.dept add(phone varchar2(32));
insert into scott.dept values(50,'David','Dai','13888888888');
commit;
alter table scott.dept add(address varchar2(300));
复制
2)把在线日志变为归档日志,就可以分析归档日志了
alter system switch logfile;
3)添加要分析的日志文件
execute dbms_logmnr.add_logfile(logfilename=>'/u01/app/oracle/arch/1_6_1170430581.dbf',options=>dbms_logmnr.new);
select filename from V$LOGMNR_LOGS;查看添加的日志列表
复制
4)启动logminer
execute dbms_logmnr.start_logmnr(options=>dbms_logmnr.dict_from_online_catalog);
5)查看分析结果
set linesize 900
set pagesize 900
col username format a8
col sql_redo format a50
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
select username,scn,timestamp,sql_redo from v$logmnr_contents where seg_name='DEPT';
复制
6)结束logminer
execute dbms_logmnr.end_logmnr;
4.用摘取logminer字典到字典文件分析ddl操作
1)进行ddl操作,以便分析
create table emp as select * from scott.dept;
create table dept as select * from scott.dept;
drop table emp;
drop table dept;
alter system switch logfile;
复制
2)使用字典文件,查看是否配置utl_file_dir,这个参数是字典文件的目录,需要重启
show parameter utl_file_dir;
mkdir /u01/app/oracle/logminer
alter system set utl_file_dir='/u01/app/oracle/logminer' scope=spfile;
shutdown immediate;
startup
复制
3)建立字典文件
execute dbms_logmnr_d.build ('dict.ora','/u01/app/oracle/logminer',dbms_logmnr_d.store_in_flat_file);
4)建立日志分析列表
execute dbms_logmnr.add_logfile(logfilename=>'/u01/app/oracle/arch/1_7_1170430581.dbf',options=>dbms_logmnr.new);
--追加日志后面加参数 options=>dbms_logmnr.addfile
select * from v$logmnr_logs;
复制
5)启动logminer执行分析
execute dbms_logmnr.start_logmnr(dictfilename=>'/u01/app/oracle/logminer/dict.ora',options=>dbms_logmnr.ddl_dict_tracking);
提取特定时间的日志
execute dbms_logmnr.start_logmnr(dictfilename=>'/u01/app/oracle/logminer/dict.ora',starttime=>to_date('2009-06-24 09:30:00','YYYY-MM-DD HH24:MI:SS'),endtime=>to_date('2009-06-24 12:00:59','YYYY-MM-DD HH24:MI:SS'),options=>dbms_logmnr.ddl_dict_tracking);
复制
6)查询分析结果
select username,scn,timestamp,sql_redo from v$logmnr_contents where lower(sql_redo) like '%table%';
select username,scn,timestamp,sql_redo from v$logmnr_contents where username='SYS';
复制
7)结束分析
execute dbms_logmnr.end_logmnr;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【专家有话说第五期】在不同年龄段,DBA应该怎样规划自己的职业发展?
墨天轮编辑部
1224次阅读
2025-03-13 11:40:53
Oracle RAC ASM 磁盘组满了,无法扩容怎么在线处理?
Lucifer三思而后行
740次阅读
2025-03-17 11:33:53
Oracle+Deepseek+Dify 实现数据库数据实时分析
bicewow
653次阅读
2025-03-06 09:41:49
【ORACLE】ORACLE19C在19.13版本前的一个严重BUG-24761824
DarkAthena
545次阅读
2025-03-04 14:33:31
Oracle避坑指南|同名表导出难题:如何精准排除指定用户下的表?
szrsu
503次阅读
2025-03-05 00:42:34
2月“墨力原创作者计划”获奖名单公布
墨天轮编辑部
441次阅读
2025-03-13 14:38:19
Ogg23ai高手必看-MySQL Innodb Cluster跟oracle的亲密接触
曹海峰
438次阅读
2025-03-04 21:56:13
【ORACLE】char类型和sql优化器发生的“错误”反应
DarkAthena
400次阅读
2025-03-04 23:05:01
什么,oracle 主机用户被删了?原来是虚惊一场!
Lucifer三思而后行
394次阅读
2025-03-03 21:12:09
Oracle 如何修改 db_unique_name?强迫症福音!
Lucifer三思而后行
326次阅读
2025-03-12 21:27:56