近期使用10G時遇到的兩個問題:Memory Notification和ORA-3136

space6212發表於2019-01-19

近期使用10G時遇到的兩個問題:Memory Notification和ORA-3136

資料庫版本是linux as4+10201。


一、Memory Notification
在alert檔案經常看到:
Memory Notification: Library Cache Object loaded into SGA
Heap size 3837K exceeds notification threshold (2048K)

這個資訊表示oracle為了在SGA中分配3837K的記憶體。
這個資訊產生的原因是:為了分配記憶體,oracle程式花費了很多時間去尋找空閒記憶體區。這一般表示記憶體中的碎片比較多了。
這不是一個bug,你可以不用管這些告警資訊。如果你覺得看著不舒服,你可以透過設定10gR2的新隱含引數_kgl_large_heap_warning_threshold來避免。
_kgl_large_heap_warning_threshold引數是以位元組為單位的,你可以把它設定大一點減少它告警的可能性,也可以把它設成0來禁止它告警。

如:
alter system set "_kgl_large_heap_warning_threshold"=8388608 scope=spfile ;

10201這個引數預設是2M,10202這個引數的預設值已經改為50M了。

注意:修改這個引數需要重啟資料庫。


二、ORA-3136
WARNING: inbound connection timed out (ORA-3136)
Thu Mar 29 10:12:05 2007
WARNING: inbound connection timed out (ORA-3136)
Thu Mar 29 10:19:38 2007
WARNING: inbound connection timed out (ORA-3136)
Thu Mar 29 10:21:14 2007
WARNING: inbound connection timed out (ORA-3136)

引發這個錯誤WARNING可能是因為網路緩慢或者資料庫負載太重,導致連結超時。

可以按如下方法解決問題:
1)在listener.ora中新增如下語句:
INBOUND_CONNECT_TIMEOUT_LISTENER =0

2)在sqlnet.ora新增如下語句
SQLNET.INBOUND_CONNECT_TIMEOUT = 0

重啟監聽

設定的這兩個引數的含義是:
SQLNET.INBOUND_CONNECT_TIMEOUT is set to a value in seconds and determines how long a client has to provide the necessary authentication information to a database.

INBOUND_CONNECT_TIMEOUT_listenername is set to a value in seconds and determines how long a client has to complete its connect request to the listener after the network connection has been established.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/231499/viewspace-63817/,如需轉載,請註明出處,否則將追究法律責任。

相關文章