您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

oracle 日志挖掘

2025/8/16 1:41:34发布32次查看
1、$oracle_home/rdbms/admin/dbmslm.sql 2、$oracle_home/rdbms/admin/dbmslmd.sql 这两个脚本必须均以dba用户身份运行。其中第一个脚本用来创建dbms_logmnr包,该包用来分析日志文件。第二个脚本用来创建dbms_logmnr_d包,该包用来创建数据字典文件。 2.创
1、$oracle_home/rdbms/admin/dbmslm.sql
2、$oracle_home/rdbms/admin/dbmslmd.sql
这两个脚本必须均以dba用户身份运行。其中第一个脚本用来创建dbms_logmnr包,该包用来分析日志文件。第二个脚本用来创建dbms_logmnr_d包,该包用来创建数据字典文件。
2.创建字典文件
create directory utlfile as'd:\app\zhoukai\oradata\logmnr';alter system set utl_file_dir='d:\app\zhoukai\oradata\logmnr' scope=spfile;
执行以上语句后,重启数据库,查看是否设置成功




sql> show parameter utlname type value------------------------------------ ----------- ------------------------------create_stored_outlines stringutl_file_dir string d:\app\zhoukai\oradata\logmnr
execute dbms_logmnr_d.build(dictionary_filename =>'dictionary.ora', dictionary_location=>'d:\app\zhoukai\oradata\logmnr');








3.添加分析文件








方法如下:








exec dbms_logmnr.add_logfile(logfilename=>'d:\app\zhoukai\oradata\orcl\redo01.log',options=>dbms_logmnr.new);




也可以添加多个文件,我们新增一个文件,方法如下:看出不同了吗,看看最后红色部分
dbms_logmnr.add_logfile(logfilename=>'d:\oracle\oradata\practice\archive\arc00002_0817639922.001',options=>dbms_logmnr.addfile)




4.启动日志分析




在分析日志之前我们要重建数据字典,因为我们刚才对表做了改动,所以在启动之前我们先要更新数据字典。








启动日志可以制定一个范围,也可以不指定分析整个文件,具体的一些参数请查看oracle官方文档,在这边我们使用scn的范围限制。方法如下:








execute dbms_logmnr.start_logmnr( dictfilename =>'d:\app\zhoukai\oradata\logmnr\dictionary.ora',startscn =>7240047,endscn =>7240098);
如果你不想创建字典可以使用以下方法
execute dbms_logmnr.start_logmnr( options =>dbms_logmnr.dict_from_online_catalog,startscn =>7240047,endscn =>7240098);
具体options有很多参数,可以参照oracle官方文档。








5.查看分析结果
到现在为止,我们已经分析得到了重作日志文件中的内容。动态性能视图v$logmnr_contents包含logminer分析得到的所有的信息。
select sql_redo from v$logmnr_contents; 
如果我们仅仅想知道某个用户对于某张表的操作,可以通过下面的sql查询得到,该查询可以得到用户logminer对表emp所作的一切工作。
select sql_redo from v$logmnr_contents where username='logminer' and tablename='emp'; 
序号
名称
含义
1
scn
特定数据变化的系统更改号
2
timestam
数据改变发生的时间
3
commit_timestamp
数据改变提交的时间
4
seg_owner
数据发生改变的段名称
5
seg_name
段的所有者名称
6
seg_type
数据发生改变的段类型
7
seg_type_name
数据发生改变的段类型名称
8
table_space
变化段的表空间
9
row_id
特定数据变化行的id
10
session_info
数据发生变化时用户进程信息
11
operation
重做记录中记录的操作(如insert)
12
sql_redo
可以为重做记录重做指定行变化的sql语句(正向操作)
13
sql_undo
可以为重做记录回退或恢复指定行变化的sql语句(反向操作)
需要强调一点的是,视图v$logmnr_contents中的分析结果仅在我们运行过程'dbms_logmrn.start_logmnr'这个会话的生命期中存在。这是因为所有的logminer存储都在pga内存中,所有其他的进程是看不到它的,同时随着进程的结束,分析结果也随之消失。
最后,使用过程dbms_logmnr.end_logmnr终止日志分析事务,此时pga内存区域被清除,分析结果也随之不再存在。
那么我们来产看我们挖掘的数据。
sql> select operation,sql_redo,sql_undo from v$logmnr_contents where  table_name
='t';
operation       sql_redo                       sql_undo
--------------- ------------------------------ ------------------------------
delete          delete from scott.t where  insert into scott.t(owner
                owner = 'sys' and object_na ,object_name,subobject_nam
                me = 'icol$' and subobject_n e,object_id,data_object_id
                ame is null and object_id = ,object_type,created,las
                 '20' and data_object_id = ' t_ddl_time,timestamp,statu
                2' and object_type = 'table' s,temporary,generated,se
                 and created = to_date('30-3 condary,namespace,edition_
                月 -10', 'dd-mon-rr') and las name) values ('sys','icol$',n
                t_ddl_time = to_date('30-3月  ull,'20','2','table',to_date('
                -10', 'dd-mon-rr') and timest 30-3月 -10', 'dd-mon-rr'),to_d
                amp = '2010-03-30:10:07:48' a ate('30-3月 -10', 'dd-mon-rr')
operation       sql_redo                       sql_undo
--------------- ------------------------------ ------------------------------
                nd status = 'valid' and tem ,'2010-03-30:10:07:48','valid'
                porary = 'n' and generated  ,'n','n','n','1',null);
                = 'n' and secondary = 'n' an
                d namespace = '1' and editi
                on_name is null and rowid = '
                aaauswaaeaabbujaaa';
我们可以使用undo恢复误删除的数据,其它作用前面已经描述了。
6.结束logminer
sql> exec dbms_logmnr.end_logmnr;
pl/sql 过程已成功完成。
关于logminer学习如上
参照文档:oracle官方文档
http://www.cnblogs.com/shishanyuan/p/3140440.html
















该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product