您的当前位置:首页正文

OracleListener日志位置及压缩转移

2020-12-24 来源:好走旅游网
OracleListener⽇志位置及压缩转移

近⽇由于Oracle Listener异常断开导致应⽤⽆法上传数据,需要从listener⽇志开始分析问题原因。此⽂介绍如何获取⽇志位置。由于⽇志⽂件⼤⼩问题,同时将⽇志⽂件进⾏压缩存放。

alert⽇志

[grid@test-rac1 ~]$ lsnrctl show log_file

LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 30-JUN-2016 11:02:35Copyright (c) 1991, 2014, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))

LISTENER parameter \"log_file\" set to /u1/app/grid/diag/tnslsnr/test-rac1/listener/alert/log.xmlThe command completed successfully

alert⽇志是xml⽂件格式,同时它会按照固定⼤⼩⾃⾏分割。

-rw-r-----. 1 grid oinstall 10486185 Jun 28 03:57 log_75.xml-rw-r-----. 1 grid oinstall 10485849 Jun 29 00:08 log_76.xml-rw-r-----. 1 grid oinstall 10485993 Jun 30 02:33 log_77.xml-rw-r-----. 1 grid oinstall 3416684 Jun 30 11:03 log.xml

trace⽇志

获得⽇志位置,trace⽇志为log⽂件,⼀条记录⼀⾏,⽐较便于阅读。

[grid@test-rac1 ~]$ lsnrctl show trc_directory

LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 30-JUN-2016 11:45:33Copyright (c) 1991, 2014, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER)))

LISTENER parameter \"trc_directory\" set to /u1/app/grid/diag/tnslsnr/test-rac1/listener/traceThe command completed successfully

[grid@test-rac1 ~]$ ll /u1/app/grid/diag/tnslsnr/test-rac1/listener/tracetotal 416804

-rw-r-----. 1 grid oinstall 419234429 Jun 30 11:47 listener.log

⽇志分割

因为当前的listener.log⽇志⽂件已经超过400M,需要先将此⽂件分割。然后使⽤crontab定期执⾏⽇志分割操作。

⾸先使⽤数据库脚本⽣成切割脚本

create table tmp_t1 (a1 date, a2 varchar2(20));declare

v_a1 date;begin

v_a1 := date '2015-10-22';

while v_a1 < date '2016-07-01' loop

insert into tmp_t1 (a1) select v_a1 from dual; v_a1 := v_a1+1; end loop commit;end;

select to_char(a1,'dd-MON-yyyy','NLS_DATE_LANGUAGE = American') from tmp_t1;update tmp_t1 set a2=to_char(a1,'dd-MON-yyyy','NLS_DATE_LANGUAGE = American');select 'sed -n ''/'||a2||'/p'' listener.log > ./rac1/listener_'||to_char(a1,'yyyymmdd')||'.log' from tmp_t1;

从⽽得到如下的shell命令sed -n '/22-OCT-2015/p' listener.log > ./rac1/listener_20151022.log。可以将所有命令拷到⼀个shell脚本中执⾏。

定期切割节本

⽇志开启情况下直接改动⽇志⽂件可能引起监听异常,因此操作⽇志⽂件前需要关闭监听⽇志。同时监测当前的⽇志⽂件中有没有监听停⽌信息。

str=`date '+%Y%m%d'`lsnrctl set log_status off

mv /u1/app/grid/diag/tnslsnr/test-rac1/listener/trace/listener.log /db/listenerlog/rac1/trace/listener_$str.loglsnrctl set log_status oncd /db/listenerlog/rac1/trace

grep service_died listener_$str.log >> ../service_died.logtar -czf listener_$str.log.tar.gz listener_$str.logif [ $? -eq 0 ] ;then

rm /db/listenerlog/rac1/trace/listener_$str.logfi

因篇幅问题不能全部显示,请点此查看更多更全内容