分类: Oracle
2010-11-24 12:22:41
一篇关于oracle net log file的学习笔记。学习资料为oracle10g版本的官方文档《Troubleshooting Oracle Net Services》,链接如下:
从官方资料上,我们可以了解到网络相关的log file主要有以下几种:
log file | Description |
SQLNET.LOG | Contains client or server information |
LISTENER.LOG | Contains listener information |
INTCHG.LOG | Contains Connection Manager and pump information |
NAVGATR.LOG | Contains Navigator information |
NAMES.LOG | Contains Names server information |
alert.log | .. .. |
sqlnet.log,listener.log以及alert.log等都是数据库必不可少的日志文件,其他几种很比较生僻,一般很少用到。
1. parameter of log file
通过参数定义日志文件记录的日志类型、信息量以及日志文件存放的路径。当然,每个网络服务组件都有自己的log file,参数文件及参数,如下:
Network Component | log file | Config file |
oracle connection manager process | sid_cmgw_pid.log.. | cman.ora |
listener | listener.log | listener.ora |
client | sqlnet.log | sqlnet.ora |
database server | sqlnet.log | sqlnet.ora |
注意:
一般的,nodeA访问nodeB,发送请求的nodeA认为client,接收请求的nodeB为server端。 当然,一个数据库节点即可以作为client向其他主机发出请求,也可以作为server端接收其他主机的连接请求。
1.1 sqlnet.ora里的参数
parameters | Description |
LOG_FILE_CLIENT | 定义client log的名称 |
LOG_DIRECTORY_CLIENT | 定义client log的存放路径。默认与sqlnet.ora一样 |
LOG_FILE_SERVER | 定义database server的日志文件名称。默认是sqlnet.log |
LOG_DIRECTORY_SERVER | 定义database server的日志文件存放路径。默认是$ORACLE_HOME/network/log |
1.2 listener.ora里的参数
我们平时熟悉的listener.ora文件里通常定义的是listener的服务配置,并没有相关的参数,那是因为我们通常都接受默认设置而没有自定义。可定义的参数如下:
parameters | Description |
LOG_FILE_LISTENER | 定义listener的日志文件名称。默认是listener.log |
LOG_DIRECTORY_LISTENER | 定义listener的日志文件存放路径。默认是$ORACLE_HOME/network/log目录 |
1.3 cman.ora Log Parameters
这部分因为平时接触较少不赘述,详见官方文档《16 Troubleshooting Oracle Net Services》。
2 listener.log
listener.log里主要记录以下几个方面的信息:
注:参见oracle官方文档,这部分知识点由于理解的不够透彻且英文更容易理解,不做翻译。
2.1 Listener Log Audit Trail Information
这部分日志信息的格式如下:
TIMESTAMP * CONNECT DATA [* PROTOCOL INFO] * EVENT [* SID] * RETURN CODE |
主要记录以下几个方面的事件:
START
, STOP
, STATUS
, or SERVICES命令
从这部分信息我们可以了解到所有连接的oracle sqlnet相关的信息,比如ip,sid,协议,service name等,一个成功的连接会在记录最后返回0,如果失败则返回错误信息。
2.2 Listener Service Registration Event Information
这部分信息主要统计与listener监听服务注册相关的事件,比如service_register,
service_update,
service_died等事件,日志的格式如下:
Timestamp * Event * Instance Name * Return Code |
PMON进程将会向listener提供service name,instance name等相关信息。
2.3 Listener Direct Hand-Off Information
这部分事件的格式如下:
Timestamp * Presentation * Handoff * Error Code |
关于"direct hand-off"的资料很少,平时也极少用到,oracle9i后该功能也是默认disable的,如果需要打开,在listener.ora文件里设置DIRECT_HANDOFF_TTC_
Since Oracle 10g, the built-in direct handoff technology allows the listener to pass the incoming client connection to the local dispatcher or dedicated server process without generating REDIRECT messages; this way the connection will remain on the default listener port. On the other hand, passing client connections to remote dispatchers (found on remote database servers and registered by means of remote_listener database parameter) still require REDIRECTs — see next section. |
3.sqlnet.log
sqlnet.log里存放tns相关的错误事件,每个事件包含时间点、IP、错误码等信息。
如果sqlnet.ora里没有定义参数,默认是$ORACLE_HOME/netword/admin/目录下生产sqlnet.log。
通过1.1中提到的参数可以自定义日志名称(client|server)及存放路径。一般情况下没必要指明client|server参数,按照默认值即可。
----
oracle log file这部分主要是一些知识点,提供的日志信息也没有trace详尽,各种参数通常按照默认设置即可。