`
yinchunjian
  • 浏览: 283132 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

一次解决ORA-12560的经历

阅读更多

接到通知一台windows 2003 server上的Oracle数据库出错,无法登录。我从远程桌面登录上去看看,有以下提示:

C:\>sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 7月 24 18:59:04 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

ERROR:
ORA-12560: TNS: 协议适配器错误


请输入用户名:
ERROR:
ORA-12560: TNS: 协议适配器错误


请输入用户名:
ERROR:
ORA-12560: TNS: 协议适配器错误


SP2-0157: 在 3 次尝试之后无法连接到 ORACLE, 退出 SQL*Plus

C:\>

从提示上看似乎是listener的问题,在sqlnet.log中有如下提示:
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12564
    TNS-12564: TNS: 拒绝连接
    ns secondary err code: 0
    nt main err code: 0
    nt secondary err code: 0
    nt OS err code: 0

打开listener的trace,却找不到任何问题,在alert_log中也没有出错信息,从metalink上搜索的结果看似乎是oracle有关的环境变量设置的问题,但在注册表和环境变量中查找怎么也找不到什么问题。
怀疑是某个processes的参数设小了,在v$resource_limit中查没有异常,但还是把processes从150改到了1024。
从v$session中看每次session到50时就不能再增加了,对新的连接报“ORA-12560: TNS: 协议适配器错误”。
初步结论:listener没有问题,是oracle后台进程接收到监听后不能产生新的线程来处理连接。

到处找哪个参数跟50的限制有关,也没有找到。
用toad的health check也没有看出什么问题。
又查了一下内存参数,发现SGA偏大,打算改小点,结果奇妙的事情发生了:

SQL> show parameter pga

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target                 big integer 194M
SQL> show parameter sga

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
lock_sga                             boolean     FALSE
pre_page_sga                         boolean     FALSE
sga_max_size                         big integer 1736M
sga_target                           big integer 1736M
SQL> alter system set sga_target=1024m;
alter system set sga_target=1024m
*
第 1 行出现错误:
ORA-02097: 无法修改参数, 因为指定的值无效
ORA-00827: 无法将 sga_target 压缩到指定值


SQL> alter system set sga_target=1024m scope=spfile;

系统已更改。

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup;
ORA-00821: Specified value of sga_target 1024M is too small, needs to be at least 1736M
SQL> startup nomount;
ORA-00093: _shared_pool_reserved_min_alloc must be between 4000 and 0
32位的Oracle的SGA最大只能到1.7G。
看看pfile,问题找到了,谁把这个shared_pool_size的参数设置得奇大?!

*.job_queue_processes=10
*.large_pool_size=0
*.log_archive_dest_1='LOCATION=d:\oraguidang'
*.log_archive_format='ARC%S_%R.%T'
*.nls_language='SIMPLIFIED CHINESE'
*.nls_territory='CHINA'
*.open_cursors=300
*.pga_aggregate_target=203423744
*.processes=1024
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=1073741824
*.sga_max_size=1073741824
*.shared_pool_size=1363148800
*.shared_servers=1
*.undo_management='AUTO'



从pfile中把shared_pool_size去掉后系统恢复正常!
总结:原来SGA参数设置的问题会也反应到listener上呀!呵呵~~~~~~~

分享到:
评论

相关推荐

    ORA-12560 TNS 协议适配器错误

    在Oracle数据库管理过程中,经常会遇到各种各样的错误提示,其中“ORA-12560 TNS: 协议适配器错误”是较为常见的一种。这种错误通常发生在客户端尝试连接到Oracle服务器时,表明网络通信出现了问题。本文将详细介绍...

    ORA-12560解決方法

    ### ORA-12560 错误解决方法 #### 概述 ORA-12560 是一个常见的 Oracle 数据库错误代码,通常在尝试连接到 Oracle 实例时出现。该错误提示可能出现在使用 Oracle 的不同版本(如 Oracle Enterprise Edition 8.1.7...

    ora-12560 ora-12560

    ora-12560

    ORA-12560TNS协议适配器错误

    实验得来的,不是随便copy的, ORA-12560TNS协议适配器错误,这个问题可定可以解决

    解决ORA-12560 TNS 协议适配器错误

    解决ORA-12560 TNS 协议适配器错误

    ORA-12560_TNS协议适配器错误_的问题.doc

    ORA-12560_TNS协议适配器错误_的问题

    Oracle数据库ORA-12560错误问题的解决办法

    官网中关于ORA-12560的解释: ORA-12560: TNS:protocol adapter error Cause: A generic protocol adapter error occurred. Action: Check addresses used for proper protocol specification. Before reporting ...

    ora-00604错误解决方法

    ora-00604 错误 解决 方法 ora-00604 错误 解决 方法 ora-00604 错误 解决 方法 ora-00604 错误 解决 方法 ora-00604 错误 解决 方法ora-00604 错误 解决 方法

    解决ora-04031共享内存问题

    解决ora-04031共享内存问题解决ora-04031共享内存问题解决ora-04031共享内存问题解决ora-04031共享内存问题

    Oracle 11gr2连Oracle 19c 报ORA-28040 ORA-01017解决方法.pdf

    这篇文章主要讲述了在Oracle 11g R2客户端尝试连接Oracle 19c服务端时,遇到了两个特定的错误:ORA-28040和ORA-01017,以及如何解决这些问题。 ORA-28040错误是因为客户端和数据库服务器在版本兼容性上存在不匹配。...

    ORACLE8I数据库应用EXP工具时ORA-06553报错的解决方法.pdf

    ORACLE8I数据库应用EXP工具时ORA-06553报错的解决方法 摘要:本文主要解决ORACLE 8I数据库应用EXP工具时ORA-06553报错的问题,分析出现问题的原因,并提供了正确的解决方法和措施。 知识点1:Oracle 8I数据库EXP...

    ORACLE ORA-00132 ORA-00214

    ### Oracle 错误 ORA-00132 和 ORA-00214 解析及处理 #### 一、错误概述 在Oracle数据库管理过程中,遇到ORA-00132和ORA-00214这类错误时,往往意味着数据库配置或启动过程中出现了问题。下面将对这两个错误进行...

    使用工具IMPDP导入数据时ORA-39002、ORA-39070错误排查

    通过以上步骤,可以有效地排查并解决使用IMPDP工具导入数据时遇到的ORA-39002和ORA-39070错误。这些错误主要与目录设置、权限管理以及路径配置有关。确保所有相关的目录和文件都具有正确的权限,并且路径设置正确...

    ORA-12541 TNSno listener 的解决方案

    ORA-12541 TNSno listener 的解决方案 ORA-12541 TNSno listener 的解决方案

    oracle重启报错ORA-00702解决办法

    然而,在日常运维过程中,我们可能会遇到各种错误,比如“ORA-00702”就是其中之一。这个错误通常在尝试重启Oracle数据库服务时出现,意味着数据库实例在启动过程中遇到了问题。本文将详细介绍如何在Windows和Linux...

    Oracle数据库发生ORA-04031错误原因浅析及处理.pdf

    Oracle数据库发生ORA-04031错误原因浅析及处理 Oracle数据库是甲骨文公司提供的...本文通过对ORA-04031错误的分析和解决方法的介绍,旨在帮助读者更好地理解Oracle数据库中的ORA-04031错误,并提供了实用的解决方法。

    离线误删空间文件导致的ORA-01033及ORA-01145问题的解决办法

    ### 离线误删空间文件导致的ORA-01033及ORA-01145问题的解决办法 #### 概述 在Oracle数据库管理过程中,偶尔会遇到因误操作导致的数据文件出现问题的情况,例如误删除数据文件或者数据文件损坏等。这些问题可能会...

    Oracle 10g启动后报ORA-16038错误的解决方法

    ### Oracle 10g启动后报ORA-16038错误的解决方法 #### 错误概述 在启动Oracle 10g数据库时遇到ORA-16038错误,该错误通常与归档日志操作有关。具体错误信息为: ``` ORA-16038: log 1 sequence #230 cannot be ...

    oracle网络配置(listener_ora-sqlnet_ora-tnsnames_ora).mht

    oracle网络配置(listener_ora-sqlnet_ora-tnsnames_ora).mht

Global site tag (gtag.js) - Google Analytics