国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

TNS-12500,TNS-12540,TNS-12560,TNS-00510解決過程

2024-07-21 02:40:19
字體:
來源:轉載
供稿:網友

  一 環境: 
1 平臺: IBM AX360,4G內存 windows 2k advServer sp3 + Oracle 816 獨占模式 

2 內存分配相關參數 
..PRocesses................=.1000 
..shared_pool_size.........=.240000000 
..large_pool_size..........=.614400 
..java_pool_size...........=.32768 
..db_block_buffers.........=.90000 
..db_block_size............=.4096 
..log_buffer...............=.163840 
..log_checkpoint_interval..=.10000 
..sort_area_size...........=.65536 
..sort_area_retained_size..=.65536 
..open_cursors.............=.100 
..job_queue_processes......=.4 
..job_queue_interval.......=.10 
..max_dump_file_size.......=.10240 

3 最大并發用戶數:850個左右 

二 故障現象: 
....當用戶數達到一定的數量時(700多)客戶端連接服務器時報ora-12560錯誤,緊跟著報ora-03114錯誤,不能連接到服務器。此時已連接到服務器的用戶能正常訪問數據庫。 
....首先查看警告日志文件,未見到明顯錯誤信息。 
....查看listner.log文件,發現如下信息(很多個類似的錯誤記錄,摘兩個上來) 
......................... 
02-JUL-2003 10:30:09 * (CONNECT_DATA=(SID=ORCL)(CID=(PROGRAM=***.EXE)(HOST=*******)(USER=*****))) * (ADDRESS=(PROTOCOL=tcp)(HOST=*******)(PORT=1136)) * establish * ORCL * 12500 
TNS-12500: TNS:listener failed to start a dedicated server process 
.TNS-12540: TNS:internal limit restriction exceeded 
..TNS-12560: TNSrotocol adapter error 
...TNS-00510: Internal limit restriction exceeded 
....32-bit Windows Error: 8: Exec format error 
02-JUL-2003 10:30:10 * (CONNECT_DATA=(SID=ORCL)(CID=(PROGRAM=***.EXE)(HOST=*****)(USER=***))) * (ADDRESS=(PROTOCOL=tcp)(HOST=******)(PORT=1203)) * establish * ORCL * 12500 
TNS-12500: TNS:listener failed to start a dedicated server process 
.TNS-12540: TNS:internal limit restriction exceeded 
..TNS-12560: TNSrotocol adapter error 
...TNS-00510: Internal limit restriction exceeded 
....32-bit Windows Error: 8: Exec format error 
..................... 
此時,原來已連接上服務器的用戶還能正常使用。查看此時session達到760多個。
 
....重啟oracle服務后,能連接新的用戶數,但當并發用戶數達到750個以上時,再次報同樣的錯誤 

三 原因分析: 
....系統資源耗竭,意味著系統分配給oracle的內存用盡了。雖然我們有4G的物理內存,但正常情況下系統只能給oracle分配2G的內存,這2G的內存中,包括了SGA、PGA等oracle需要使用的全部內存。在獨占模式下,每一個session將單獨分配2M左右的內存。在本例中,SGA分配了約600M,按每一個用戶分配2M內存計算,連接數達到750個時,總分配內存已達到2G,將不能再增加新的連接數。假如要解決這個問題,在不做大的調整的前提下,要么減小SGA大小,要么減小為每一個會話分配的內存大小,以能連接更多的用戶。 

四 解決過程: 
....查閱了oracle文檔,文檔里提出來了幾個解決的辦法: 

1 重置init.ora參數文件,調小以下四個參數的值: 
....short_area_size 
....hash_area_size 
....bitmap_merge_area_size 
....create_bitmap_area_seze 
....open_cursone 

2 調小SGA的大小 

3 減小oracle Job隊列數量(job_queue_processes)和并發隊列數(parallel_max_servers) 

4 重置并減小會話/線程使用的堆棧大小 

5 將oracle改為mts模式 

6 更換操作系統為windows NT 企業版 

7 使用intel的ESMA硬件支持,即使用大內存 
..1) 在intel系統上使用 /3G 開關 
..2) 使用PSE36內存 
....結合本實例的具體情況,決定調整的主要目標為減小用戶的PGA大小。 
....構成PGA的主要內容有short_area_size, hash_area_size, open_cursone, 以及oracle 堆棧和TNS 堆棧。在本實例中,排序區為64K,hash區為128K(缺少值),打開的游標數與應用有關,不能隨便減小了,然而oracle堆棧和TNS堆棧都是1M,卻有較大的減小的余地。因此,調整的目標定為減小這兩個堆棧的大小。 
....使用orastack 命令來減小這兩個堆棧的大小: 
D:/oracle/ora81/bin>orastack oracle.exe 500000 
Couldn’t open file with CreateFile() 
GetLastError() == 32 
....停止oracle服務和TNS服務,再運行以上命令 
D:/oracle/ora81/bin>orastack oracle.exe 500000 
Dump of file oracle.exe 
Current Reserved Memory per Thread = 1048576 
Current Committed Memory per Thread = 4096 
New Reserved Memory per Thread = 500000 
D:/oracle/ora81/bin>orastack tnslsnr.exe 500000 
Dump of file tnslsnr.exe 
Current Reserved Memory per Thread = 1048576 
Current Committed Memory per Thread = 4096 
New Reserved Memory per Thread = 500000 
重新啟動oracle服務和TNS服務,打開數據庫,用戶連接到服務器,經測試,用戶數到1350以上時數據庫仍然運行正常,解決了本實例存在的問題。 

五 小結 
....事實上,正如oracle文檔所指出的那樣,要增加用戶連接數的途徑很多,除了減小用戶堆棧之外,還可以減小SGA,或者是更改成MTS方式,或者是使用第三方工具增加oracle可用內存。本人前面小結過如何讓oracle在32位的windows操作系統上使用超過2G內存的方法( http://www.itpub.net/showthread.php...15&pagenumber=1 ),在本安全應用中,宜將兩者(減小用戶堆棧與增加oracle可用內存)結合起來使用,以提高數據庫性能。
但是,這種方式下,同樣不可能無限制地增加用戶連接數。要想使用戶連接數達到更大,則應使用MTS方式。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平顶山市| 南华县| 定边县| 朝阳区| 安吉县| 城固县| 栾川县| 柳河县| 和静县| 河曲县| 怀宁县| 永新县| 赫章县| 冕宁县| 聂荣县| 革吉县| 潍坊市| 八宿县| 嵊泗县| 鄂伦春自治旗| 新疆| 诏安县| 海伦市| 迭部县| 偃师市| 昌吉市| 印江| 西丰县| 汤原县| 灵宝市| 浦北县| 凤冈县| 孟津县| 鄂托克前旗| 吕梁市| 兴文县| 义马市| 湛江市| 芷江| 科技| 井研县|