netstat 显示网络流量 -ptc选项
[root@develop ~]# netstat -ptc
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 develop.china-fuhai.c:47144 develop.china-fuhai.c:22025 ESTABLISHED 4722/httpd
tcp 0 0 develop.china-fuhai.c:42594 develop.china-fuhai.c:21526 ESTABLISHED 7680/httpd
tcp 0 0 develop.china-fuhai.c:28421 temp.china-fuhai.com:8050 TIME_WAIT -
tcp 0 0 develop.china-fuhai.c:20859 develop.china-fuhai:pdap-np ESTABLISHED 8666/FNDLIBR
tcp 0 0 develop.china-fuhai.c:20907 develop.china-fuhai:pdap-np TIME_WAIT -
tcp 0 0 localhost:primaserver localhost:37303 ESTABLISHED 4606/opmn
tcp 0 0 localhost:primaserver localhost:37309 ESTABLISHED 4606/opmn
tcp 0 0 develop.china-fuhai.co:9939 develop.china-fuhai.c:21525 TIME_WAIT -
tcp 0 0 develop.china-fuhai.c:60684 develop.china-fuhai.c:22025 ESTABLISHED 4718/httpd
将操作系统PID映射到一个ORACLE 进程或SQL语句
遇到性能问题 通常不是网络的原因
差的性能可能与 结构较差的SQL语句 不适当的磁盘I/O CPU 或者内存资源不足相关
网络检修和监控的技能 netstat工具是监控服务器网络连接一个很好的起点。
检修数据库网络连接性
1.使用操作系统的ping工具确定远程服务器是否可以访问
SQL> SELECT INSTANCE_NAME FROM V$INSTANCE;
INSTANCE_NAME
develop
ping
[oradev@develop ~]$ ping develop
PING develop.china-fuhai.com (192.168.61.15) 56(84) bytes of data.
64 bytes from develop.china-fuhai.com (192.168.61.15): icmp_seq=1 ttl=64 time=0.043 ms
64 bytes from develop.china-fuhai.com (192.168.61.15): icmp_seq=2 ttl=64 time=0.034 ms
— develop.china-fuhai.com ping statistics —
2 packets transmitted, 2 received, 0% packet loss, time 1707ms
rtt min/avg/max/mdev = 0.034/0.038/0.043/0.007 ms
2.使用telnet来看是否可以连接到远程服务器和相应的端口
[oradev@develop ~]$ telnet develop 1521
-bash: telnet: command not found
3.使用tnsping 来确认oracle net 是否正常工作,这个工具将会验证oracle net可以通过网络来连接到一个数据库
[oradev@develop ~]$ tnsping develop
TNS Ping Utility for Linux: Version 11.2.0.4.0 - Production on 25-MAY-2021 17:02:43
Copyright © 1997, 2013, Oracle. All rights reserved.
Used parameter files:
/u01/erpdevelop/db/tech_st/11.2.0/network/admin/develop_develop/sqlnet_ifile.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=develop.china-fuhai.com)(PORT=1526)) (CONNECT_DATA= (SERVICE_NAME=develop) (INSTANCE_NAME=develop)))
OK (40 msec)
如果tnsping不能连接远程服务器,验证一下远程监听器和数据库是否都是开启的并且正常运行的
lsnrctl status 来验证监听器是否启动
以非sys用户建立一个本地连接来验证远程数据库是否可用
(当其他模式不能正常工作时,SYS账户通常能够连接到出现问题的数据库)
4.验证TNS信息是否正确
如果远程监听器和数据库都能正常运行,则要确保决定TNS信息 tnsnames.ora文件的机制包含了正确的信息
TNS_ADMIN 和tnsnames.ora文件 验证某个tnsnames.ora是否被使用的一个方法就是对其进行重命名,并查看尝试远程连接数据库时,是否会得到一个不同的错误
5.如果还有问题,查看客户端的sqlnet.log文件 和远程服务器的listener.log
这些日志将会显示能够精确定位问题的附加信息。