2010-03-02 58 views
5

最近,我們將Oracle 9.2.0.6生產數據庫從Windows 32位RAC(2個節點)遷移到Linux 64位環境。 Linux 64位環境具有比Windows 32位環境多8倍的內存,Linux 64位具有更快的磁盤(RAID 10與RAID 5的Windows相比)。非常長的SQL連接開放時間

但是,在這次遷移之後,我們注意到sql連接時間顯着增加。有一段時間,需要16秒才能打開連接。我們使用了不同的驅動程序(JDBC,ODBC,OCI)和SQLPlus。但是,我們注意到sql連接時間沒有區別。我們調查了網絡,但注意到網絡沒有問題。

有一段時間,打開單個連接需要大約16秒的時間。這個數據庫有大約50000個用戶模式。

有人可以告訴我可以做些什麼來減少連接開放時間嗎?您的幫助將不勝感激。

+0

serverfault.com將是一個更好的地方問,並找到一個更好的地方回答 – skaffman 2010-03-03 00:01:27

+0

我有類似的問題,並找到解決方案[http://oracleprof.blogspot.com/2009/08/slow-network- connection-w-11g.html](http://oracleprof.blogspot.com/2009/08/slow-network-connection-w-11g.html)n – 2012-05-21 16:44:48

回答

2

有很多可能的原因,沒有更多的信息很難確定根本原因。

話雖如此,檢查你的sqlnet.ora文件所在的機器上你從(即<ORACLE_HOME> /network/admin/sqlnet.ora)連接,看看是否有一個線,如:

SQLNET.AUTHENTICATION_SERVICES= (NTS) 

如果是這樣,嘗試將其更改爲:

SQLNET.AUTHENTICATION_SERVICES= (NONE) 

保存並重新通過的SQLPlus的連接。

此外,請檢查您爲NAMES.DIRECTORY_PATH設置的值。確保您用來連接到您的實例的方法是列表中的第一個。例如,我們使用TNSNAMES和我們的讀取:

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT) 

希望這會有所幫助。

+2

對於使用Net * 8的TCP連接,服務器需要能夠解析主機名和IP地址。最快的名稱解析是在服務器上的/ etc/hosts文件中查找。 (名稱解析由/etc/resolv.conf中的影響) – spencer7593 2010-03-02 18:08:36

+0

sqlnet.ora中有 SQLNET.AUTHENTICATION_SERVICES =(NONE) NAMES.DIRECTORY_PATH =(TNSNAMES) 我們能夠與問題再現來自不同機器設定不同的司機。我們也能夠從SQLPLUS重現。網絡延遲不是問題。這種緩慢發生隨機。但是,我們可以將這種緩慢與CPU峯值相關聯。在連接速度較慢時,CPU高達100%。我們也注意到系統的R值超過了CPU的數量。這表明CPU瓶頸。 – user284534 2010-03-04 22:04:09

1

事情可能表明問題的領域:

從客戶端:

  • 是出現該問題的所有客戶端?
  • 是ping 服務器相當快?
  • is tnsping dbname很慢?
  • 你可以用telnet正常連接嗎?

從服務器:

  • 是平客戶相當快?
  • 是nslookup客戶端名稱和IP快?
  • is tnsping dbname很慢?
  • 是sqlplus user @ dbname快還是慢?
  • 是服務器上的一個直接連接快嗎? I.E.,出口ORACLE_SID = DB; sqlplus的用戶/密碼
+0

是的,所有類型的客戶都會出現問題。 Ping非常快。 tnsping並不慢。是的,我們通常可以使用telnet進行連接。 Ping到客戶端也非常快 緩慢發生隨機。一些如何,我們已經注意到,當大約30到40個連接同時打開時,數據庫CPU峯值達到100%,連接速度變慢。 – user284534 2010-03-04 22:09:44

2

如果突然TNSPING是變得很慢(意味着它是一個好的系統之前),但平到同一數據庫服務器快速,最可能的原因是LISTENER.LOG文件過大:

$ORACLE_HOME/network/log/listener.log

一些操作系統(SunOS的在我的經驗)將滿足寫入到一個非常大的文本文件的性能問題(超過4G?),所以尾/清理日誌文件馬上解決tnsping需要很長時間的問題。

2

這是我們的案例中的DNS。在我們的管理員註釋掉服務器端的所有DNS條目後,系統立即開始響應。

2

我也經歷了與Mac OS上的SQL Developer 4.1.5.21與Oracle 12.1.0.2.0的非常緩慢的連接建立。

要分析這個,我安裝Oracle Instant Client直接檢查連接sqlplus。當我試圖用sqlplus連接它給了我下面的錯誤:

$ sqlplus <USER>/<PASSWORD>@<HOST>:<PORT>/<SERVICE> 
SQL*Plus: Release 12.1.0.2.0 Production on Thu Mar 16 10:50:44 2017 

Copyright (c) 1982, 2016, Oracle. All rights reserved. 

ERROR: 
ORA-21561: OID generation failed 

後來我發現博客條目Oracle ORA-21561 : OID generation failed/etc/hosts加入的主機名(由hostname命令返回)到127.0.0.1系法:

127.0.0.1 localhost MacBook-Pro.local 

這修復了sqlplus中的ORA-21561錯誤以及SQL Developer中緩慢的連接建立。