ITPub博客

首页 > 应用开发 > IT综合 > 解决TNS-125000

解决TNS-125000

原创 IT综合 作者:rainbowbridg 时间:2007-05-15 11:48:48 0 删除 编辑

metalink上解决此问题的几个方法:

1 重置init.ora参数文件,调小以下四个参数的值:
short_area_size
hash_area_size
bitmap_merge_area_size
create_bitmap_area_seze
open_cursor
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内存....



修改堆栈大小的办法:
....停止oracle服务和TNS服务,再运行以上命令
D:oracleora81bin>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:oracleora81bin>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 supplies the ORASTACK utility to allow customers to modify the default stack size of a thread / session when created in the Oracle executable. When ORASTACK is run against specific executables it alters the part of the binary header that defines the default stack size used by the create thread API. It is not necessary to change the default number of pages committed by the thread because these will be allocated as required from the stack. By reducing the stack of every session created in the Oracle executable, it is possible to achieve a larger user population. In a system with a 1000 users reducing the stack from 1Mb to 500K would release 500Mb of the address space for other allocations or more users.Customers should thoroughly test their applications against databases that have the stack trimmed to less than 1Mb before using the new stack size in their production systems. If the Oracle stack has been trimmed below the size required by the Oracle server side code a stack overrun will occur and the users session will fail, there will be no trace files or entries in the CORE.LOG file. Oracle Support Services does not recommend that customers trim the stack below 500K, although a number of systems run without error ona 300K stack.

ORASTACK must be run against all processes that can create a thread in theOracle executable, use the following syntax :

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

In addition, if there are programs on the server machine which connect to the database locally [without SQL*NET], run orastack on those as well.

如果是在Nt上,我们还可以这样来解决:

  1. 确保lisenter启动的用户的local system
  2. Increasing the amount of swap space will also
    temporarily help relieve the symptoms.
  3. Disable OTRACE. OTRACE is a tracing feature that can
    cause many problems. OTRACE is enabled by default.
    To disable OTRACE:

    a. Stop the Oracle database.
    b. Go to the orant/otrace/admin directory.
    c. Delete all files with a ‘.dat’ extension.
    d. Restart the Oracle database.

    oracle_trace is a component of the database engine that collects events, apparently at relatively low cost. 在oracle的参数中,我们可以查看 oracle_trace*的参数
[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7916042/viewspace-915072/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 清楚Temp空间
请登录后发表评论 登录
全部评论
  • 博文量
    237
  • 访问量
    1622819