红旗下的 ORACLE 数据库 归档日志 一分钟一次 一次45M 让人受不了了 怎么解决 ?目录为ARCH

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了红旗下的 ORACLE 数据库 归档日志 一分钟一次 一次45M 让人受不了了 怎么解决 ?目录为ARCH相关的知识,希望对你有一定的参考价值。

不知道哪里出了问题 服务端应该是没问题的 不知道客户端哪里出问题

参考技术A 应该是业务量大的问题,有大量的dml,你这还算是小的,我看到过几秒钟归档200M的库,空间不够的话手动删除归档,用rman:delete archivelog until time 'sysdate-7',删除7天前的。如果你只是想让他归档不那么快,可以调大archivelog的大小,和redolog 的大小。 参考技术B 你用手动归档?alter system archive log current?

oracle logminer分析归档日志

适用场景:

数据库在某个时间段产生了大量的归档日志,用户想要分析在这段时间数据具体做了什么操作

一、查询目标时间点的归档日志是否存在

set pagesize 900;

set linesize 900;

col name for a55;

ALTER SESSION SET NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS";

select name, first_time, next_time,SEQUENCE# from v$archived_log   where first_time > to_date('2021-11-15 16:00:00', 'yyyy-mm-dd hh24:mi:ss') and first_time < to_date('2021-11-15 16:30:00', 'yyyy-mm-dd hh24:mi:ss');

二、添加归档日志文件

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253871_1013686939.dbf',dbms_logmnr.new);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253872_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253873_1013686939.dbf',dbms_logmnr.addfile);

三、启动logminer进行分析

execute dbms_logmnr.start_logmnr;

也可以指定其他条件,比如时间:

execute dbms_logmnr.start_logmnr(StartTime =>to_date('2021-11-15 16:00:00','YYYY-MM-DD HH24:MI:SS') EndTime =>to_date('2021-11-15 16:30:00','YYYY-MM-DD HH24:MI:SS '));

四、输出结果

可以将结果输出到一个文件中

spool  test.txt ;       --结果输出到当前目录的test.txt文件中

select sql_redo,info from v$logmnr_contents where UPPER(sql_redo) like '%UPDATE%'  or UPPER(sql_redo) like '%INSERT%' or UPPER(sql_redo) like '%DELETE%';   --获取DML语句

spool off;

也可以通过建表的方式将结果保存在一个表格中。(如果日志量大,不要建这个临时表)

create table temp_result1 as  select * from v$logmnr_contents;

五、结束logminer

execute dbms_logmnr.end_logmnr;

六、分析结果

分析test.txt 或temp_result1表中数据

如果输出的结果中,对象名未知,对象id已知的话,可以根据以下语句查询对应的对象名

select owner,object_name  from dba_objects where object_id='xxxxx';

七、示例

例如:

想要查询2021年11月15日16:00到 2011年11月15日16:30,数据库做了哪些dml操作。

1.检查这个目标时间点的归档日志是否存在

set pagesize 900;

set linesize 900;

col name for a55;

ALTER SESSION SET NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS";

select name, first_time, next_time,SEQUENCE# from v$archived_log   where first_time > to_date('2021-11-15 16:00:00', 'yyyy-mm-dd hh24:mi:ss') and first_time < to_date('2021-11-15 16:30:00', 'yyyy-mm-dd hh24:mi:ss');

查询结果如下:

2.日志挖掘

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253871_1013686939.dbf',dbms_logmnr.new);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253872_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253873_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253874_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253875_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253876_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253877_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253878_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253879_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253880_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253881_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253882_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253883_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253884_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253885_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253886_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253887_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253888_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253889_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253890_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253891_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253892_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253893_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253894_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253895_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253896_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253897_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253898_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253899_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253900_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253901_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253902_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253903_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253904_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253905_1013686939.dbf',dbms_logmnr.addfile);

EXECUTE DBMS_LOGMNR.ADD_LOGFILE('/home/u01/arch/1_253906_1013686939.dbf',dbms_logmnr.addfile);

3.启用logminer

PROMPT start LogMiner;

execute dbms_logmnr.start_logmnr;

4.结果输出

spool  test.txt ;       --结果输出到当前目录的test.txt文件中

select sql_redo,info from v$logmnr_contents where UPPER(sql_redo) like '%UPDATE%'  or UPPER(sql_redo) like '%INSERT%' or UPPER(sql_redo) like '%DELETE%';   --获取DML语句

spool off;

5.结束logminer

EXECUTE DBMS_LOGMNR.END_LOGMNR();

6.分析结果

分析test.txt具体在做哪些操作。

以上是关于红旗下的 ORACLE 数据库 归档日志 一分钟一次 一次45M 让人受不了了 怎么解决 ?目录为ARCH的主要内容,如果未能解决你的问题,请参考以下文章

Oracle - 备份与恢复

Oracle归档日志管理

linux oracle归档日志文件路径修改

如何清除oracle中的执行sql记录在日志里面的的记录

如何正确删除Oracle 归档日志文件

请教一个DATAGUARD备库归档日志清理的问题