`

ora-12542 address in used(转载)

 
阅读更多
转载的,原作者网址:http://space.itpub.net/118838/viewspace-621803
讲解的很不错,转载过来,留着学习。


这主要是由于  操作系统的  临时端口  不够用而引起的。  一般系统的  临时端口为  1024-5000,这在多用户的环境下,3000多个oracle链接就用光了。由于每个链接断开以后,还要有一个等待时间,例如在  windows  系统中,这个时间是  120秒。 
        这就导致了一个现象:  一会可以联通,一会又出现  ora-12542  address  in  used  。如果有临时端口可以使用,可以联通oracle;如果暂时端口没有了,就连不通了。
        一下是在  windows  系统下的解决办法。
      1  进入注册表编辑器(regedit),在  HKEY_LOCAL_MACHINE\system\CurrentControlSet\Services\Tcpip\Parameters  里,编译-> 添加-> MaxUserPort  (类型  REG_DWORD  ),  值中填写  65534,(可以的范围是5000-65534).
      2  退出  注册表编辑器,重新启动机器. 

    这样设置,  临时端口的范围从  1024-5000,增大到  1024-65534,  足够一般用户的使用,不会再出现ora-12542. 

      其他系统也可以做类似的设置.

转:http://blog.sina.com.cn/s/blog_53bedb6e0100feu3.html

阿宋谈关于ORACLE的端口(TNS-12542)(2009-11-06 17:04:16)
杂谈  分类:数据库

    做了这么久的数据库开发,这里留点我对ORACLE端口的掌握,ORACLE各版本默认端口均是1521,可以修改,但是ORACLE9I的 WINDOWS版,使用了动态端口技术,装上后默认的是动态端口模式,如果需要改成静态端口,则只需要在 HKEY_LOCAL_MACHINE->SOFTWARE->ORACLE->HOME0下增加一个名为 use_shared_socket的字符串键,键值为true,保存后重新启动ORACLE服务即可。

    动态端口和静态端口有什么区别呢,静态端口,就是说,不管你来多少请求连接,我都是不断的开无数个1521端口上的连接给你,动态就是只有前一个是1521,后面就从1024-5000开临时端口给你。

    那么,不管是哪种模式,只要消耗完了系统的临时端口,就会让ORACLE的远程连接出现暂时的当机,甚至造成操作系统的崩溃。


    这主要是由于操作系统的临时端口不够用而引起的。一般windows系统的临时端口为 1024-5000,由于每个链接断开以后,还要有一个等待时间,例如在windows系统中,这个时间默认是240秒。这就导致了一个现象:一会可以联通,一会TNSPING的时候又出现 TNS-12542: TNS: 地址已被占用(ora-12542 address in used。)
   如果有临时端口可以使用,可以联通oracle;如果暂时端口没有了,就连不通了



TNS-12542: TNS: 地址已被占用


问题描述:

执行 tnsping 命令提示:TNS-12542: TNS: 地址已被占用

应用中报错:

java.sql.SQLException: Io 异常: The Network Adapter could not establish the conn
ection


在WINDOWS下可以缓解的办法:


1.  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters 注册表子键并创建名为 TcpTimedWaitDelay 的新 REG_DWORD 值。 将此值设置为十进制 30,其为十六进制 0x0000001e。该值将等待时间设置为 30 秒。(超过30秒自动销毁已经断开的连接)
缺省值:0xF0,它将等待时间设置为 240 秒(4 分钟)。建议值:最小值为 0x1E,它将等待时间设置为 30 秒。
2.  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\TCPIP\Parameters 注册表子键并创建名为 MaxUserPort 的新 REG_DWORD 值。缺省值:无 建议值:至少十进制 32768,最大65534,这个对动态端口有用,用来表示最大可以分配到的端口号


修改保存后重启机器
分享到:
评论

相关推荐

    Oracle导dmp出现文件ORA-12154 TNS 无法解析指定的连接标识符解决方案

    ### Oracle导dmp出现文件ORA-12154 TNS 无法解析指定的连接标识符解决方案 #### 问题背景 在进行Oracle数据库的操作时,经常会遇到“ORA-12154 TNS 无法解析指定的连接标识符”这样的错误提示。此问题通常发生在...

    获取top前10个Oracle的进程(支持多实例)

    1、功能 A、获取top前10个Oracle的进程,并打印出(根据实际进程情况列出 R/S 状态) B、对这些进行进行PS检查资源占有情况,并确定是那个数据库实例的进程 ...SELECT RAWTOHEX(TB.SQL_ADDRESS) SQL_ADDRESS,TB...

    oracle运行情况命令总结

    ALTER DATABASE DATAFILE 'D:\ORACLE\ORA_DATA\DATACORE_0003.ORA' AUTOEXTEND ON NEXT 100M MAXSIZE 6G; ``` - **调整文件大小**: ```sql ALTER DATABASE DATAFILE 'D:\ORACLE\ORA_DATA\AMLM_0002.ORA' ...

    bbed_used_to_change_sys_password

    2. **RDBA (Relative Data Block Address)**:这是一个4字节值,存储了Oracle数据库文件的相对文件编号和相对于文件开头的Oracle块编号偏移量。 3. **OFFSET**:这是相对于块已设置的位置的偏移量。 为了获取这些...

    oracle运行情况总结.docx

    ROUND(((a.bytes - b.bytes) / a.maxbytes) * 100, 2) "percent_used" FROM (SELECT tablespace_name, SUM(bytes) bytes, SUM(maxbytes) maxbytes FROM dba_data_files WHERE maxbytes != 0 GROUP BY ...

    最全的oracle常用命令大全.txt

    读取init.ora文件,启动instance,即启动SGA和后台进程,这种启动只需要init.ora文件。 2、startup mount dbname 安装启动,这种方式启动下可执行: 数据库日志归档、 数据库介质恢复、 使数据文件联机或脱机, ...

    oracle学习小结1.1

    WHERE ss.statistic# IN (SELECT statistic# FROM v$statname WHERE name = 'CPU used by this session') AND se.sid = ss.sid AND ss.sid > 6 ORDER BY ss.sid; ``` - 查询每个会话等待事件的详情: ```sql ...

    tnsnames:一个很小的 ​​tnsnames.ora 解析器

    2. **正则表达式**:`tnsnames.ora`文件的格式是有结构的,每条记录都有固定的格式,比如`SERVICE_NAME = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = host_name)(PORT = port_number))(CONNECT_DATA = ...

    oracle DBA 例行维护内容

    SELECT sid, serial#, username, osuser, program, machine, sql_id, sql_address, sql_hash_value, sql_opname, sql_fulltext, event, wait_time, seconds_in_wait, status, blocking_session FROM v$session ...

    64位系统连接Oracle数据库配置安装手册

    (ADDRESS = (PROTOCOL = TCP)(HOST = your_db_host)(PORT = your_db_port)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = your_service_name) ) ) ``` 完成以上步骤后,你就可以使用Oracle客户端...

Global site tag (gtag.js) - Google Analytics