症狀描述:
在linux下使用sqlplus sys/oracle@prod as sysdba登錄非常慢,大概需要十幾秒才能登錄成功,使用sqlplus / as sysdba 登錄數據庫速度很快,秒登。
使用sqlplus sys/oracle@prod as sysdba登錄會卡在下面這個位置十幾秒:
[oracle@jp admin]$ sqlplus sys/oracle@prod
SQL*Plus: Release 10.2.0.1.0 - Production on Wed Mar 26 23:32:29 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
初步覺得可能是監聽這邊有問題,然後tnsping試了一下:
[oracle@jp admin]$ tnsping prod
TNS Ping Utility for Linux: Version 10.2.0.1.0 - Production on 27-MAR-2014 09:11:30
Copyright (c) 1997, 2005, Oracle. All rights reserved.
卡住十幾秒
Used parameter files:
/u01/app/oracle/product/10.2.0/db_1/network/admin/sqlnet.ora
Used TNSNAMES adapter to resolve the alias
Attempting to contact (description = (address=(protocol=tcp)(host=jp)(port=1521)) (connect_data= (server = dedicated) (service_name = PROD)))
OK (0 msec)
在tnsping的過程當中發現卡住位置是在
Used TNSNAMES adapter to resolve the alias
之前,那麼問題應該是出在使用tnsnames解析之前,
之後經過不斷查看,發現問題出在/etc/resolv.conf文件上:
/etc/resolv.conf文件內容如下:
nameserver 192.168.50.2
search localdomain
~
發現這裡配置了nameserver,如果配置了nameserver,那麼oracle就要先驗證nameserver,失敗超時之後才會用別的辦法連接。超時時間就是十幾秒到30秒左右。
果斷注釋掉nameserver,然後再嘗試,sqlplus sys/oracle@prod as sysdba登錄速度恢復正常。