Oracle 版本: 19.21
OS 版本: AIX 7.2
問題描述:
使用 sqlplus / as sysdba 連線時,等很久才連線進去 :
問題分析:
使用 truss 指令對 sqlplus 進行 trace :
從 truss.trc 發現連線過程中,讀取 message file 花了很久的時間 :
這個現象有可能為 Bug 32550751 - MGA Related Operations on AIX Might Cause Performance Issues ,不過此 Bug 在 19.12 之後就已經修復,目前 DB 版本為 19.21 ,應該是不符合 Bug 定義。
另一種可能為 netsvc.conf 的 hosts 設定有誤,檢查 netsvc.conf 檔案權限以及 hosts 內容 :
發現 hosts 的設定為 local, bind , 在 AIX 平台上 bind 的設定會依據下列順序來解析 :
1. 於 /etc/hosts 尋找 IPv6 位址
2. 於 DNS 尋找 IPv6 位址
3. 於 /etc/hosts 尋找 IPv4 位址
4. 於 DNS 尋找 IPv4 位址
在沒有設定 IPv6 的情況下,到了第三順位才會解析到 IPv4 ,也因此造成了 sqlplus / as sysdba 連線緩慢的情況,如果將 bind 修改為 bind4 ,那麼它就只會尋找 IPv4 位址。
解決方法:
將 netsvc.conf 裡面 hosts 中的 bind 改為 bind4 :
改完後重新測試 sqlplus / as sysdba ,連線速度恢復正常。