输入show parameter db_recovery_file_dest_size
此查询课已查询到归档日志总大小
SQL>show parameter db_recovery_file_dest_size
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest_size big integer 10240000
2.输入select * from v$recovery_file_dest
次查询可以查看当前归档日志使用大小,单位B
SQL>select * from v$recovery_file_dest
NAME SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
----------- ---------- ----------------- ---- --------------- -------------------
/oracle/flash_recovery_area 2147483648 1804771840 0 51
logminer作为相关的日志分析工具集成与oracle中,我们可通过该工具清楚的分析重做相关日志和归档日志中的所有事物变化,并且可以准确的确定各种DML和DDL *** 作的具体时间和SCN值。通过logminer我们可以实现:
1,确定数据的逻辑损坏的时间
2,跟踪用户执行的事务变化 *** 作
3,跟踪表的DML *** 作
如果我们要分析归档日志,我们首先修改oracle归档日志的模式,我们要把默认的归档路径改成我们自己的路径:
start mount
alter database archivelog
alter database open
alter system set log_archive_dest_1='location=d:\oracle' scope=spfile
alter system set log_archive_format='arch_%t_%s_%r.trc' scope=spfile
查看我们修改过的归档路径:
archive log list
查看归档日志:
select name,dest_id from v$archived_log
如果查询的没有更改,我们需要重启一下数据库
安装logminer,安装logminer需要我们安装下面的几个包:
$ORACLE_HOME/rdbms/admin/dbmslm.sql
$ORACLE_HOME/rdbms/admin/dbmslmd.sql
$ORACLE_HOME/rdbms/admin/dbmslms.sql
这几个脚本必须是sys用户运行
@$ORACLE_HOME/rdbms/admin/dbmslm.sql
@$ORACLE_HOME/rdbms/admin/dbmslmd.sql
@$ORACLE_HOME/rdbms/admin/dbmslms.sql
添加数据字典,需要添加参数utl_file_dir,
alter system set utl_file_dir='/home/oracle/dir' scope=spfile
添加supplement logging
首先查看
select name,supplemental_log_data_min from v$database是否是yes
YES为打开状态,会记录session_info,username等信息
NO为关闭状态,不会记录sesion_info,username等信息
添加
alter database add supplemental log data
关闭
alter database drop supplemental log data
重启数据库,这样我们刚才的两个参数就会生效;
查看数据字典:
show parameter utl
添加数据字典:
SQL>begin
2 dbms_logmnr_d.build(
3 dictionary_filename=>'logminer_dict.dat',
4 dictionary_location=>'/home/oracle/logminer')
5 end
6 /
PL/SQL procedure successfully completed.
或是:
execute dbms_logmnr_d.build(dictionary_filename=>'logminer_dict.dat',dictionary_location=>'/home/oracle/logminer')
创建登录触发器:
SQL>create or replace trigger on_logon_tigger
2 after logon on database
3 begin
4 dbms_application_info.set_client_info(sys_context('userenv','ip_address'))
5 end
6 /
Trigger created.
我们就可以在V$SESSION视图的CLIENT_INFO列中看到新登录的客户端IP地址了。那么现在就可以在
添加要分析的归档日志文件
SQL>begin
2 dbms_logmnr.add_logfile(
3 logfilename=>'/home/oracle/arch/arch_6_758944049_1.trc',options=>dbms_logmnr.new)
4 end
5 /
PL/SQL procedure successfully completed.
SQL>begin
2 dbms_logmnr.add_logfile(
3 logfilename=>'/home/oracle/arch/arch_7_758944049_1.trc',
4 options=>dbms_logmnr.addfile)
5 end
6 /
PL/SQL procedure successfully completed.
切换归档日志:
alter system switch logfile
开启分析:
execute dmbs_logmnr.start_logmnr(dictfilename='/home/oracle/logminer/logminer_dict.dat')
或是:
execute dbms_logmnr.start_logmnr
查询归档日志:
SQL>select name from v$archived_log
NAME
--------------------------------------------------------------------------------
/home/oracle/arch/arch_6_758944049_1.trc
/home/oracle/arch/arch_7_758944049_1.trc
/home/oracle/arch/arch_8_758944049_1.trc
为了节约pga的空间,当我们分析完日志后,移除不需要的日志:
SQL>begin
2 dbms_logmnr.add_logfile(
3 logfilename=>'/home/oracle/arch/arch_7_758944049_1.trc',
4 options=>dbms_logmnr.removefile)
5 end
6 /
PL/SQL procedure successfully completed.
查询结果在v$logmnr_contents
查询数据库上面的 *** 作
select scn,sql_redo,timestamp from v$logmnr.contents
关闭分析
execute dbms_logmnr.stop_logmnr
查询的时候最好使用plsql查询。
oracle 11g的监听日志和警告日志都是在/u01/oracle/diag/tnslsnr/oracle/listener目录和/u01/oracle/diag/rdbms/db1/db1目录下,listener目录和db1目录。这两目录下都有如下目录:alert cdump hm incident incpkg ir lck metadata stage sweep t...欢迎分享,转载请注明来源:内存溢出
评论列表(0条)