oracle错误TNS-12518解决

+++

系统环境:

ORACLE V10.2.0.1.0 - Production vsnsta=0

vsnsql=14 vsnxtr=3

Windows NT Version V5.2 Service Pack 2

CPU                 : 16 - type 586, 2 Physical Cores

Process Affinity    : 0x00000000

Memory (Avail/Total): Ph:7678M/8181M, Ph+PgF:9751M/10032M, VA:1938M/2047M

+++

症状:

系统设置processes=350 (sessions=390),但当会话数到250左右,新连接就会出现错误:TNS-12518: 监听程序无法分发客户机连接(CS客户端程序提示:未连接到oracle)……

相关讨论:

http://www.itpub.net/thread-1286246-1-1.html

http://www.itpub.net/thread-1285545-1-1.html

+++

联系oracle support,提供解决方案如下:

=== ODM Proposed Solution ===

1. Enable 4GB RAM Tuning (4GT)

OR

2. On Windows 2003 we can address more than 4gb of memory, via PAE and USE_INDIRECT_DATA_BUFFERS

OR

3. Decrease the size of the database SGA

OR

4. Reduce oracle per thread/connection stack size from default.

OR

5. Change the connection model from dedicated to shared server.

=== ODM Proposed Solution Justif ===

According to Note 371983.1 solution,

32-bit Windows Server 2003 (Enterprise and Data center editions) include a feature called 4GB RAM Tuning (4GT).

USE_INDIRECT_DATA_BUFFERS controls how the system global area (SGA) uses memory.

(Decrease parameters like shared_pool_size, sort areas parameters, large_pool_size, etc.) giving memory back to the O/S, allowing more connections to be established.

Oracle supplies the ORASTACK utility to allow customers to modify the default stack size of a thread / session when created in the Oracle executable.

Switching to Shared server should allow for more scalability.

+++

最终决定使用4. Reduce oracle per thread/connection stack size from default.

To implement the solution, please execute the following steps:

1. orastack  executable_name  new_stack_size_in_bytes

(Below are examples of setting the stack to 500K for the main executables :

orastack oracle.exe  500000

orastack tnslsnr.exe 500000

orastack svrmgrl.exe 500000

orastack sqlplus.exe 500000)

2. Retest the issue.

3. Migrate the solution as appropriate to other environments.

+++

修改前测试:

昨天修改processes=350,测试连接可以达到349,之前未报错,

怀疑单纯测试占用内存较低,无法重现错误

今天修改processes=450,测试连接

SE_QPR_Q

356362

报错:ORA-12518: TNS: 监听程序无法分发客户机连接

修改线程

关闭数据库及服务

修改系统线程

E:\oracle\product\10.2.0\db_1\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

E:\oracle\product\10.2.0\db_1\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

测试连接

SQL> select * from

2  (select count(*) as se_q from v$session) a,

3  (select count(*) as pr_q from v$process) b;

SE_Q       PR_Q

---------- ----------

447        449

可以达到449,再连接则提示:ORA-12516: TNS: 监听程序无法找到匹配协议栈的可用句柄

(当前oracle.exe进程占用内存为1108928K)

增加线程,再测试连接

关闭数据库及服务

修改线程:

E:\oracle\product\10.2.0\db_1\BIN>orastack oracle.exe 2000000

Dump of file oracle.exe

Current Reserved Memory per Thread  = 500000

Current Committed Memory per Thread = 4096

New Reserved Memory per Thread = 2000000

E:\oracle\product\10.2.0\db_1\BIN>orastack tnslsnr.exe 2000000

Dump of file tnslsnr.exe

Current Reserved Memory per Thread  = 500000

Current Committed Memory per Thread = 4096

New Reserved Memory per Thread = 2000000

启动数据库及服务

测试连接

SQL> select * from

2  (select count(*) as se_q from v$session) a,

3  (select count(*) as pr_q from v$process) b;

SE_Q       PR_Q

---------- ----------

237        239

可以达到239,再连接则提示:ORA-12518: TNS: 监听程序无法分发客户机连接

(当前oracle.exe进程占用内存为916620K)

+++

总结:

查看和修改oracle线程

1,查看oracle各线程方法:

主要线程如下:

oracle.exe

tnslsnr.exe

svrmgrl.ex

sqlplus.exe

修改方法:orastack  executable_name

如:orastack oracle.exe

2,修改线程大小

各线程默认大小为1M,修改线程,不能小于300k.

orastack  executable_name  new_stack_size_in_bytes

如:

orastack oracle.exe 500000

orastack tnslsnr.exe 500000

orastack svrmgrl.exe 500000

orastack sqlplus.exe 500000

3,修改线程时必须要在%oracle_home%\bin目录下执行。

4,修改时,必须关闭相关服务

5,以下进程未修改成功,不论是关闭服务,还是打开服务时,原因不明。

E:\oracle\product\10.2.0\db_1\BIN>orastack svrmgrl.exe 500000

Couldn't open file with CreateFile()

GetLastError() == 2

E:\oracle\product\10.2.0\db_1\BIN>orastack sqlplus.exe 500000

Couldn't open file with CreateFile()

GetLastError() == 32

以上

转帖请注明:

oracle 经常出现12518,oracle错误TNS-12518解决相关推荐

  1. windows中Oracle服务连接不上错误排查及解决方法-实用

    windows下Oracle连接不上问题排查思路 外部连接工具plsql,Navicat无法访问oracle数据库服务的排查思路 查看所访问oracle服务的所在服务器能否ping通,oracle服务 ...

  2. impala写入oracle,dataframe 写入 impala 语法错误,怎么解决?

    dataframe写入impala出现语法错误,错误: Exception in thread "main" java.sql.SQLException: [Simba]Impal ...

  3. oracle数据库的基本错误,Oracle新手最常碰到错误及解决方案

    1.ORA-12541:TNS:没有监听器 原因:没有启动监听器或者监听器损坏. 若是前者,使用命令启动监听:net start OracleOraDb10g_home1TNSListener(名字可 ...

  4. oracle中12523,【Oracle】静态监听导致的ORA-12523错误

    今天配置完共享服务器模式之后发现登录过程中报错ORA-12523,排查错误之后发现是静态监听惹的祸.本机之上有两个监听,一个静态监 今天配置完共享服务器模式之后发现登录过程中报错ORA-12523,排 ...

  5. oracle客户端ora 12541,Oracle 11g 64bit下程序报ORA-12541: TNS: 无监听程序解决办法

    开发环境: OS:windows 2008 R2 64bit Oracle: 11g R2 64bit Oracle Client: ODTwithODAC112021 (32 bit ) IDE : ...

  6. Oracle 错误总结及解决方法

    ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常. ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 OR ...

  7. oracle12541无法连接,“Oracle 连接报错:ORA-12541: TNS: 无监听程序”解决方案

    环境描述: Oracle数据库部署在远程机器虚拟机上,本地配置Oracle网络配置,通过PL/SQL连接数据库: 本地已经配置了Oracle Net Manager文件,但是测试后,连接不上Oracl ...

  8. oracle 12519,Oracle出现TNS-12520 TNS-12519连接错误处理

    Oracle出现TNS-12520 TNS-12519 连接错误处理 TNS-12520 连接错误处理 今天巡检客户数据库时,发现有个taf自动offline,手工启动后,再过一段时间又自动offli ...

  9. oracle连接 无监听程序,“Oracle 连接报错:ORA-12541: TNS: 无监听程序”解决方案 | 学步园...

    环境描述: Oracle数据库部署在远程机器虚拟机上,本地配置Oracle网络配置,通过PL/SQL连接数据库: 本地已经配置了Oracle Net Manager文件,但是测试后,连接不上Oracl ...

  10. 以sysdba身份登录oracle报ORA-1031权限不足错误之完美分析

    在linux 操作系统的数据库服务器上,使用"sqlplus / as sysdba" 登录Oracle 10.2 数据库实例时,登录失败,显示ORA-01031:  权限不足. ...

最新文章

  1. Ubuntu 系统 查看代码的方法在那些地方使用
  2. 这是一份不完整的数据竞赛年鉴
  3. 面向对象(内部类,static,包,访问修饰符,final)
  4. AFN post的数据编码格式问题
  5. springboot中DataSource数据源实例产生时机及所需环境
  6. JavaScript 数组 API 全解析
  7. 如何使用repo sync
  8. 老程序员如何避免沦落出局?
  9. 谈谈金融行业的开源风险管理
  10. UNIX 环境高级编程(四)—— dirent.h
  11. 计算机配件详情图解,电脑装机教程,详细教您怎么组装电脑
  12. ansys18安装教程_ANSYS|ansys18.0完整安装过程及常见问题解决方案「图文」
  13. 如何下载IEEE ACCESS模板
  14. confluence在CentOS Linux release 8.2.2004 (Core)上搭建过程
  15. (PC+WAP)绿色小学学校网站源码 pbootcms中小学教育培训机构网站模板
  16. UBUNTU学习笔记
  17. 如何构建创新文化——技术视角
  18. 狗头人与地下世界冒险模式通关记录 [20171224]
  19. html语言怎么在虚线中加字,html – 用CSS添加虚线spacer / infill
  20. EEPROM 24C02 24C64误换Debug

热门文章

  1. Github推荐:超好用的全开源协同OA项目
  2. 图片加载的框架——glid
  3. 2016级算法第二次上机-A.画个圈圈诅咒你
  4. 手机万能遥控器制作教程
  5. 敏感性分析和发表偏倚
  6. IE9 浏览器绑定大数据会造成Table列错位问题解决方案
  7. Adobe Acrobat Pro制作带有表单的pdf
  8. 理财U24 认股权证、可转债、可赎债 习题解读
  9. quartz 每月一次_quartz cron表达式:启动时先执行一次 以后每个月执行一次,怎么做?...
  10. JavaScript 判断 Chrome 内核的 360 浏览器