oracle11gr2怎么查看归档日志的大小

oracle11gr2怎么查看归档日志的大小,第1张

1.使用sys登陆数据库

输入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...


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10655397.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-10
下一篇 2023-05-10

发表评论

登录后才能评论

评论列表(0条)

保存