ORA-27300 ORA-27301 ORA-27302 in alert log. Cannot connect to database. (文档 ID 371074.1)

APPLIES TO:

Oracle Database - Personal Edition - Version 8.1.7.4 to 10.2.0.3 [Release 8.1.7 to 10.2]
Oracle Database - Standard Edition - Version 8.1.7.4 to 10.2.0.3 [Release 8.1.7 to 10.2]
Oracle Database - Enterprise Edition - Version 8.1.7.4 to 10.2.0.3 [Release 8.1.7 to 10.2]
Microsoft Windows (32-bit)


SYMPTOMS

  • No new connections are allowed to the database.
  • Database appears to be in a hang state with following errors in the alert log:
    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

 

CHANGES

The '/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.

CAUSE

This is OS 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.

SOLUTION

To 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 the following:

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 following note for an in depth discussion regarding memory usage in a 32-bit Windows environment:

 

Document:225349.1Implementing Address Windowing Extensions (AWE) or VLM on 32-bit Windows Platforms

猜你喜欢

转载自blog.csdn.net/qq_21127313/article/details/80240155