Linux环境。在Oracle用户下执行lsnrctl status,发现需要等待十秒左右。
于是执行命令
strace -f -t -o ~/listener.trc lsnrctl start
然后找到该日志文件,读取的时候发现
5872 04:46:13 close(5) = 0
5872 04:46:13 socket(AF_INET, SOCK_STREAM, IPPROTO_IP) = 5
5872 04:46:13 fcntl(5, F_SETFL, O_RDONLY|O_NONBLOCK) = 0
5872 04:46:13 connect(5, {sa_family=AF_INET, sin_port=htons(1521), sin_addr=inet_addr("47.75.39.85")}, 16) = -1 EINPROGRESS (Operation now in progress)
5872 04:46:13 times(NULL) = 466526051
5872 04:46:13 mmap(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f5f5a9df000
5872 04:46:13 poll([{fd=5, events=POLLOUT}], 1, 60000) = 0 (Timeout)
5872 04:47:13 close(5) = 0
5872 04:47:13 getsockopt(5, SOL_SOCKET, SO_SNDBUF, 0x7fff58ed4ce8, 0x7fff58ed4dd8) = -1 EBADF (Bad file descriptor)
5872 04:47:13 getsockopt(5, SOL_SOCKET, SO_RCVBUF, 0x7fff58ed4ce8, 0x7fff58ed4dd8) = -1 EBADF (Bad file descriptor)
5872 04:47:13 access("/var/tmp/.oracle", F_OK) = 0
5872 04:47:13 chmod("/var/tmp/.oracle", 01777) = -1 EPERM (Operation not permitted)
5872 04:47:13 socket(AF_LOCAL, SOCK_STREAM, 0) = 5
5872 04:47:13 access("/var/tmp/.oracle/sEXTPROC1521", F_OK) = 0
可以发现poll([{fd=5, events=POLLOUT}], 1, 60000) = 0 (Timeout)
这一步出现了超时,整整一分钟时间。不知道为什么监听启动过程会去找47.75.39.85这个IP,于是找到了/etc/resolv.conf 文件,发现里面的内容,
于是将第一行注销,启动速度恢复。
之所以加这一行是因为其他的程序需要用到该参数,后话不提。
只此记录。