用過oracle的應該都熟悉如何檢視和設定oracle資料庫的最大連線數。這裡就再囉嗦一遍。
檢視當前的連線數,可以用select count(*) from v$process;都知道,當資料庫最大連線數不夠時會出現客戶端連線間歇性失敗,報錯ora-12519。設定大點一般就可以了。但是做大型專案的時候還是會遇到一設定的最大連線數(預設值為150)select value from v$parameter where name = 『processes』;
修改最大連線數alter system set processes = 300 scope = spfile;
些不正常的問題,比如:設定最大連線數800,但是正常連線200多個就會報錯,這也是我在一次面試中得知的。回來因為自己的垃圾機器上沒有裝
oracle,就查了些資料,發現還真的有這個問題,不過不是什麼難題,貌似很多人遇到過,看來我們真的做專案太少了吧,頂多同時測試的也就十多個人。
網上蒐集到有此類問題的描述,如下。
伺服器ibm xserver,記憶體:4g
oracle 資料庫配置的主要引數如下:
processes integer 500看樣子挺不粗的配置,但是就這樣預設情況還是會出現連線數不夠的現象。資料庫配置的連線數是500個,但是現在當oracle的連線數達到120個sessions integer 585
pga_aggregate_target big integer 350m
sga_max_size big integer 1256m
sga_target big integer 1152m
shared_pool_size big integer 400m
large_pool_size big integer 16m
時候,其他的客戶端就無法再連線上oracle伺服器了,報個錯:ora-12518: tns:
監聽程式無法分發客戶機;但是已經連線上資料庫的應用還可以正常應用,就是其他沒連上的就再也連不上了,除非已有的連線有退出的,其他的才能再聯上,就是
可連線的總數是120個;
有網友說是在可以在listener.ora中加入一行: direct_handoff_ttc_ =off,經測試此方法依舊不行;
這期間我嘗試著把pga_aggregate_target 改成200或者500等,結果是一樣的。也嘗試著把sga_target改成800m後,結果資料庫就起不來了,提示說要不能小於1024m。
後來查到有可能是oracle 10g for
win32的乙個bug,上網下了補丁,打完補丁後的版本是:10.2.0.3;也曾懷疑是不是windows
2003的tcp連線數不夠,上網查說好像是有這毛病,下了個2003的補丁,把tcp連線數擴到了1000,結果能夠達到可以有250個併發連線,但是
再多就又連不上了。
現在就是不太清楚究竟是什麼引數配置的不合適(不管是oracle10g的,還是windows 2003的),才會造成實際上沒有達到oracle設定的最大連線數時就不能連線了。
最後,懷疑是不是windows 2003(32位)的問題,於是就裝了個64位的windows 2003,同樣版本的oracle
10g,裝好後就把連線數process引數配置成800,然後做連線測試,一直可以有800個session連線上來,到現在為止,可以大致總結出癥結
所在了,就是windows 2003 server(32位)的作業系統,在安裝oracle
10g(10.2.0.1-10.2.0.3)時有問題,連線數不能達到系統配置的那麼大,可以採用64位的替代。找到問題根源了,就可以想到究竟為什麼
windows 2003 server(32位)的作業系統和oracle 10g資料庫連線數會有限制,修改一下2003的配置或者oracle
10g的配置, 就可解決掉這個問題。
解決方案:
a.修改oracle引數
1、原有引數b.修改windows配置#pga_aggregate_target=67108864
#processes=500
#sessions=555
# pga_aggregate_target此引數是擴大併發連線數占用記憶體大小。
# 可調整此引數,放大或縮小,同時影響併發數量。
# 公式: 約=可按照併發數量*4m
pga_aggregate_target=720m
# processes、sessions是擴大併發連線數,是同時使用。
# 公式: sessions = processes *1.1 +5
processes=600
sessions=665
2、在監聽引數檔案listener.ora 檔案中增加引數
direct_handoff_ttc_listener = off
3、重新啟動資料庫服務。
1、修改windows系統中boot.ini檔案/3gb /pae
說明:修改作業系統中boot.ini檔案,可以使oracle使用更多的記憶體空間。
2、修改使用者組策略中鎖定記憶體頁大小許可權。
引數修改完畢問題解決。
3、重啟計算機。
Oracle超出最大連線數問題及解決
用過oracle的應該都熟悉如何檢視和設定oracle資料庫的最大連線數。這裡就再囉嗦一遍。檢視當前的連線數,可以用select count from v process 設定的最大連線數 預設值為150 select value from v parameter where name proces...
Oracle超出最大連線數問題及解決 2
用過oracle的應該都熟悉如何檢視和設定oracle資料庫的最大連線數。這裡就再囉嗦一遍。檢視當前的連線數,可以用select count from v process 設定的最大連線數 預設值為150 select value from v parameter where name proces...
遠端桌面超出最大連線數問題
一台遠端伺服器,使用遠端連線顯示 超過了最大允許連線數 搜尋了一下,摘抄一些有用的東西。使用遠端桌面的朋友可能經常會遇到 超出最大允許連線數 的問題,這是因為remote desktop for administrator預設設定是2個連線,而且如果遠端登入後不登出而直接關閉遠端桌面,實際上sess...