好久没写blog了,最近很忙
今晚想到我要想看某人都对oracle数据库做过什么修改呢?大家肯定回答,"那还不简单,看数据库的日志啊",可oracle的日志,直接是不能看的,它是二进制的,oracle从8i就提供了一个非常好的日志管理工具logminer他对我们查看日志非常方便,闲话不说了,把我的使用的记录下来,一是方便自己以后查看,二是对那些刚刚接触的有一些帮助.
步骤:
1.安装logminer
2.创建logminer所需要的字典
3.添加要分析的日志文件
4.分析日志
5,这一步最重要了,就是要查看了(呵呵,别扔鸡蛋啊)
具体分析
1. logminer实际上是由两个pl/sql内建包(dbms_logmnr和dbms_logmnr_d)和4个v$动态性能视图组成的.
安装logminer首先要以sys管理员的身份运行这个pl/sql脚本
sql> conn /as sysdba
sql> @/rdbms/admin/dbmslm.sql
sql> @/rdbms/admin/dbmslmd.sql
2. 创建字典
首先把utl_file_dir=F:/oracle/product/10.2.0/oradata/orcl/log 放入初始化文件中init.ora,重启数据库使其生效
sql> exec sys.dbms_logmnr_d.build(dictionary_filename='skate.dat',dictionary_location=>'F:/oracle/product/10.2.0/oradata/orcl/log')
这一步需要一些时间(耐心等)
3.添加日志文件
建议每次分析的时候,只添加一个日志文件,当然添加多个也可以.
添加第一个日志文件
sql> exec dbms_logmnr.add_logfile(logfilename=>'F:/oracle/product/10.2.0 /oradata/orcl/redo01.log',options=>dbms_logmnr.new);
添加第二个日志文件
sql> exec dbms_logmnr.add_logfile
(logfilename=>'F:/oracle/product/10.2.0/oradata/orcl/redo02.log',options=>dbms_logmnr.addfile);
删除一个日志文件
sql> exec dbms_logmnr.add_logfile
( logfilename=>'F:/oracle/product/10.2.0/oradata/orcl/redo02.log',options=>dbms_logmnr.removefile);
4. 开始分析日志
无限制条件
sql>exec dbms_logmnr.start_logmnr(dictfilename=>'F:/oracle/product/10.2.0/oradata/orcl/log/skate.dat');
5. 日志分析完了,现在该看看结果吧,结果都在v$logmnr_contents中,这个视图包含所有logminer分析的信息
[注意] 只有执行了"dbms_logmnr.start_logmnr"这个的会话,才可能查看分析结果,因为logminer是存在pga中的
其他进程是看不见的,如果想让其他进程看见,可以用ctas来解决
sql> drop table logmnr_contents;
sql> create table logmnr_contents
as select * form v$logmnr_contents;
这就可以用toad,pl/sql等工具来查看
6.
SQL>execute dbms_logmnr.end_ logmnr,清除v$logmnr_logs, v$logmnr_contents, v$logmnr_parmeters中的内容,结束分析。