近日由于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:35

Copyright (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.xml
The 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:33

Copyright (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/trace
The command completed successfully
[grid@test-rac1 ~]$ ll /u1/app/grid/diag/tnslsnr/test-rac1/listener/trace
total 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.log
lsnrctl set log_status on
cd /db/listenerlog/rac1/trace
grep service_died listener_$str.log >> ../service_died.log
tar -czf listener_$str.log.tar.gz listener_$str.log
if [ $? -eq 0 ] ;then
rm /db/listenerlog/rac1/trace/listener_$str.log
fi

Oracle Listener日志位置及压缩转移的更多相关文章

  1. oracle alert 日志位置

    Oracle 11g Alert log 文件位置的问题 https://blog.csdn.net/yujin2010good/article/details/7690191 https://blo ...

  2. OID OAM WLS等Oracle 中间件日志位置汇总

    WLS的log:/tip/IMP/bea/user_projects/domains/IDMDomain/servers/AdminServer/logsOID的log:/tip/IMP/bea/us ...

  3. 查看oracle数据库日志存放位置

    1,默认情况下,oracle的日志文件记录在$ORACLE/rdbms/log目录下 [oracle@oracle log]$ pwd /home/oracle/oracle/product/11.2 ...

  4. Oracle Listener

    一.监听器功能 1)监听客户端请求:监听器作为独立进程运行在数据库服务器上,监听特定网络端口(默认1521)服务请求. 2)为客户端请求分配oracle Server Process:监听器不直接处理 ...

  5. Oracle GI 日志收集工具 - TFA

    1.TFA的目的: TFA是个11.2版本上推出的用来收集Grid Infrastructure/RAC环境下的诊断日志的工具,它可以用非常简单的命令协助用户收集RAC里的日志,以便进一步进行诊断:T ...

  6. Oracle 监听器日志解析

    Oracle监听器是驻留在Oracle实例所在服务器上的独立进程.作为客户端进程连接实例的重要沟通组件,Oracle监听器扮演着重要的地位.本篇将从监听器日志入手,分析阅读监听器日志和日常监听器常见行 ...

  7. ORACLE告警日志文件

    告警日志介绍 告警日志文件是一类特殊的跟踪文件(trace file).告警日志文件命名一般为alert_<SID>.log,其中SID为ORACLE数据库实例名称.数据库告警日志是按时间 ...

  8. oracle 归档日志

    归档日志(Archive Log)是非活动的重做日志备份.通过使用归档日志,可以保留所有重做历史记录,当数据库处于ARCHIVELOG模式并进行日志切换式,后台进程ARCH会将重做日志的内容保存到归档 ...

  9. Oracle 监听器日志文件过大导致监听异常

    Oracle 监听器日志文件过大导致监听异常 db版本:11.2.0.1 os版本:windows2008 现象: 应用异常,无法连接数据库.登陆数据库服务器,查看监听已经断掉.尝试重启监听,重启失败 ...

随机推荐

  1. SecureCRT配色

    SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单的说是Windows下登录UNIX或Linux服务器主机的软件.SecureCRT支持SSH,同时支持Telnet和rlog ...

  2. Scrum Meeting 4-20151204

    任务安排 姓名 今日任务 明日任务 困难 董元财 学习上拉加入新的listview 无 胡亚坤 设计优化聊天页面 无 刘猛 请假(参加编译测试,提前准备) 无 马汉虎 请假(参加编译测试,提前准备) ...

  3. Android复习指南

    基础无外乎几部分:语言(C/C++或java),操作系统,TCP/IP,数据结构与算法,再加上你所熟悉的领域.这里面其实有很多东西,各大面试宝典都有列举. 在这只列举了Android客户端所需要的和我 ...

  4. STM32学习笔记(九) 外部中断,待机模式和事件唤醒

    学会知识只需要不段的积累和提高,但是如何将知识系统的讲解出来就需要深入的认知和系统的了解.外部中断和事件学习难度并不高,不过涉及到STM32的电源控制部分,还是值得认真了解的,在本文中我将以实际代码为 ...

  5. Head First 设计模式 --9 迭代器模式 组合模式

    迭代器模式:提供一种方法书序访问一个聚合对象中的各个元素,而又不暴露其内部的表示. 用到的设计原则:1.封装变化2.多用组合,少用继承|3.针对接口编程,不针对实现编程4.松耦合5.对扩展开放,对修改 ...

  6. linux笔记:shell基础-概述和脚本执行方式

    什么是shell: linux使用的默认shell是Bash: shell脚本的后缀名为.sh,shell脚本的第一行#!/bin/bash 不是注释,而是标识这是一个shell脚本,因为linux并 ...

  7. Linux 远程登录

    Linux一般作为服务器使用,而服务器一般放在机房,你不可能在机房操作你的Linux服务器. 这事我们就需要远程登录到Linux服务器来管理维护系统. Linux系统中是通过ssh服务实现的远程登录功 ...

  8. C语言输出时的各种%

    d  以十进制形式输出带符号整数(正数不输出符号) o  以八进制形式输出无符号整数(不输出前缀O) x  以十六进制形式输出无符号整数(不输出前缀OX) u  以十进制形式输出无符号整数 f  以小 ...

  9. display:inline 和display:inline-block和display:block的区别

    之前讲过块级元素使用display:block 行内元素使用display:inline 那么今天我们就来区分一下display:inline,display:inline-block和display ...

  10. 安装mongodb

    安装mongodb的时候遇到一些麻烦 首先将安装包下下来 安装的是windows版本的 将bin文件夹加入环境变量后通过mongod和mongo指令就可以进行操作,很方便 用指令mongod --db ...