現象:Windows 操作系統的Oracle 數據庫,使用sqlplus 連接(不指定實例名)連接很快,程序連接或使用連接工具或在Net Manager 中測試連接都需要花費約三四十秒的時間(程序連接可能失敗)。
通過tsping localhost 測試,亦花費三四十秒。
查看監聽警告日志(所在位置在文章后面介紹),有信息如下:

<msg time='2017-05-16T16:57:51.811+08:00' org_id='oracle' comp_id='tnslsnr' type='UNKNOWN' level='16' host_id='WIN-79C9VV1DM36' host_addr='fe80::716b:a2ff:1445:5753%11'> <txt>TNS-12560: TNS:protocol adapter error TNS-00530: Protocol adapter error 64-bit Windows Error: 53: Unknown error TNS-12518: TNS:listener could not hand off client connection TNS-12571: TNS:packet writer failure TNS-12560: TNS:protocol adapter error TNS-00530: Protocol adapter error 64-bit Windows Error: 54: Unknown error </txt> </msg>
可能原因是監聽日志過大(超過4G)。
停止監聽,刪除監聽日志(需要刪除4個目錄的日志),開啟監聽,連接很慢問題解決。
Oracle 11g 監聽日志目錄位置如下:
alert 日志目錄:%ORACLE_HOME%\diag\rdbms\%sid%\%sid%\alert,%ORACLE_HOME%\diag\tnslsnr\%機器名%\listenrt\alert
trace 日志目錄:%ORACLE_HOME%\diag\rdbms\%sid%\%sid%\trace,%ORACLE_HOME%\diag\tnslsnr\%機器名%\listenrt\trace