闪酷跑路网

一行行枯燥的代码,却描绘出人生的点点滴滴

您现在的位置是:首页>_综合

ORA-27300: ORA-04030: 等异常,这是要命的Oracle bug

发布时间:2018-12-18浏览(2754)

    ORA-27300: ORA-04030: 等错误,这是要命的Oracle bug
    ORA-27300: OS 系统相关操作: spcdr:9261:4200 失败, 状态为: 997
    要命的Oracle bug ,耗尽内存,导致数据库挂掉
    这个问题用Oracle10.2.0.1.0版本安装在32位的Windows系统上,非常常见。随便在google就找到很多。
    通常会导致系统耗尽内存,导致Oracle数据库挂掉。
    把Oracle数据库重启可以临时解决,但过几天还会发生ORA-04030内存耗尽的情况。最好还是打上补丁。



    连接数据库时出现,
    ORA-12518: TNS: 监听程序无法分发客户机连接


    1、用sysdba连接不是数据库,数据库已经挂了

    2、alert_sid.log
    Sun Apr 19 10:05:56 2009
    Process startup failed, error stack:
    Sun Apr 19 10:05:56 2009
    Errors in file e:\oracle\product\10.2.0\admin\xboms\bdump\xboms_psp0_3124.trc:
    ORA-27300: OS 系统相关操作: spcdr:9261:4200 失败, 状态为: 997
    ORA-27301: OS 故障消息: 重叠 I/O 操作在进行中。
    ORA-27302: 错误发生在: skgpspawn



    由此导致频繁的报下面的错误:
    Sun Apr 19 10:24:08 2009
    Errors in file e:\oracle\product\10.2.0\admin\xboms\bdump\xboms_arc0_3032.trc:
    ORA-04030: 在尝试分配 82444 字节 (pga heap,control file i/o buffer) 时进程内存不足


    查看:http://**/viewthread.php?tid=129216
    and  http://www.itpub.net/thread-1146317-1-1.html


    this is a bug !
    oracle承认这是一个bug(10.2.0.2.0之前10g版本),BUG 5607984 - ORACLE DOES NOT CLOSE TCP CONNECTIONS. REMAINS IN CLOSE_WAIT STATE. [On Windows 32-bit].
    可打补丁patch number 5639232 ,该补丁有100多MB大。



    在操作系统的boot.ini文件中增加'/3G',然后降低SGA。metalink上的解释如下:
    ChangesThe '/3GB'  switch was added to the  'boot.ini'  file at the OS level but the errors are eventually encountered when the database is under heavy load. CauseOS resource issue.
    The maximum amount of addressable memory by a process ('oracle.exe' for example) running in a
    32-Bit Windows environment has been reached.

    In a 32-Bit Windows environment, the total addressable memory by a single process is a 4GB. On Windows, the OS reserves half of this memory by default for kernel memory, leaving 2GB of addressable memory for a user process. By placing the '/3GB' switch in the 'boot.ini'  file, this changes the ratio of kernel memory and user memory. When he  '/3GB'  switch is in place, processes (such as 'oracle.exe’) can address 3GB of virtual memory out of the total 4GB of addressable memory. However, once the 3GB of virtual memory is depleted, the process will fail. SolutionTo implement the solution, please execute the following steps:

    Tune the application running on the 32-bit environment so that it will not consume greater than 2.7GB of virtual memory when the  '/3GB'  switch is set in the  'boot.ini'  file. In the case of Oracle encountering the OS resource issue, the options are:

    1) Reduce the amount of SGA needed to be allocated for the database.
    2) Limit the number of dedicated connections to the database and the amount of memory each user process will consume.
    3) Change from dedicated connections to multi-threaded server (MTS) connections as MTS only uses a fraction of the amount of memory allocated to each user process when initial connection to the database is established.

    See Metalink Note 225349.1 for an in depth discussion regarding memory usage in a 32-bit Windows environment

    ===========================

    ORA-27300 ORA-27301 ORA-27302 in alert log. Cannot connect to database.
      文档 ID:  注释:371074.1 类型:  PROBLEM
      上次修订日期:  30-JAN-2008 状态:  MODERATED

    In this Document
      Symptoms
      Changes
      Cause
      Solution
      References



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


    This document is being delivered to you via Oracle Support's Rapid Visibility (RaV) process, and therefore has not been subject to an independent technical review.



    Applies to: Oracle Server - Enterprise Edition - Version: 8.1.7.4 to 10.2.0.3
    Oracle Server - Personal Edition - Version: 8.1.7.4 to 10.2.0.3
    Oracle Server - Standard Edition - Version: 8.1.7.4 to 10.2.0.3
    Microsoft Windows 2000
    Microsoft Windows XP
    Microsoft Windows Server 2003


    Microsoft Windows (32-bit)
    SymptomsNo new connections are allowed to the database.

    Database appears to be in a hang state.
    Errors:

    Mon May 22 14:00:46 2006
    Errors in file d:\ecomdb\bdump\ecomdb_psp0_1192.trc:
    ORA-27300: OS system dependent operation:spcdr:9261:4200 failed with status: 997
    ORA-27301: OS failure message: Overlapped I/O operation is in progress.
    ORA-27302: failure occurred at: skgpspawn

    written to alert log.


    .
    Verified the issue by the RDA output provided, which displays errors:

    Mon May 22 14:00:46 2006
    Errors in file d:\ecomdb\bdump\ecomdb_psp0_1192.trc:
    ORA-27300: OS system dependent operation:spcdr:9261:4200 failed with status: 997
    ORA-27301: OS failure message: Overlapped I/O operation is in progress.
    ORA-27302: failure occurred at: skgpspawn

    in the alert log included in RDA output.

    ChangesThe '/3GB'  switch was added to the  'boot.ini'  file at the OS level but the errors are eventually encountered when the database is under heavy load. CauseOS resource issue.
    The maximum amount of addressable memory by a process ('oracle.exe' for example) running in a
    32-Bit Windows environment has been reached.

    In a 32-Bit Windows environment, the total addressable memory by a single process is a 4GB. On
    Windows, the OS reserves half of this memory by default for kernel memory, leaving 2GB of
    addressable memory for a user process. By placing the '/3GB' switch in the 'boot.ini'  file, this
    changes the ratio of kernel memory and user memory. When the  '/3GB'  switch is in place, processes (such as 'oracle.exe’) can address 3GB of virtual memory out of the total 4GB of addressable memory. However, once the 3GB of virtual memory is depleted, the process will fail. SolutionTo implement the solution, please execute the following steps:

    Tune the application running on the 32-bit environment so that it will not consume greater than
    2.7GB of virtual memory when the  '/3GB'  switch is set in the  'boot.ini'  file.
    In the case of Oracle encountering the OS resource issue, the options are:

    1) Reduce the amount of SGA needed to be allocated for the database.
    2) Limit the number of dedicated connections to the database and the amount of memory each user
    process will consume.
    3) Change from dedicated connections to multi-threaded server (MTS) connections as MTS only
    uses a fraction of the amount of memory allocated to each user process when initial connection to
    the database is established.


    See Metalink Note 225349.1 for an in depth discussion regarding memory usage in a 32-bit Windows environment.

    ReferencesNote 225349.1 - Implementing Address Windowing Extensions (AWE) or VLM on Windows Platforms