MOS_886312_1_Database Startup Can Fail With ORA-00064 Errors With Huge Sga_target of Over 40Gig

Preview:

DESCRIPTION

Database Startup failing with huge pages

Citation preview

Database startup can fail with ORA-00064 Errors with huge sga_target of over 40Gig (Doc ID 886312.1)

Modified: Mar 7, 2012 Type: PROBLEM

In this Document Symptoms Changes Cause Solution References

APPLIES TO:

Oracle Server - Enterprise Edition - Version: 10.2.0.4 to 11.2.0.3 - Release: 10.2 to 11.2This problem can occur on any platform.

SYMPTOMS

Attempting to start the database with SGA_TARGET of 100GB (with a total of about 500GB of physical memory available) can fail with:

ORA-00064: object is too large to allocate on this O/S (1,15429280)

CHANGES

The SGA_TARGET instance parameter has been dynamically increased to a value higher than 40GB, like in:

SQL> alter system set sga_target=100G;

SQL> shutdown

SQL> startup

ORA-00064: object is too large to allocate on this O/S (1,15429280)

CAUSE

The cause of this problem has been identified in Bug:5051962, which has been closed as not-a-bug. It is caused by the granule sizeneeded for the new SGA size to be different than the one currently in use by the instance at the time the ALTER SYSTEM SETSGA_TARGET command is run.

SOLUTION

This is expected behaviour: the granule size is set based on the size of the SGA. If you set a SGA parameter (such as SGA_TARGET) toa value which exceeds the value of the granule size that was calulcated at instance startup, then you must set the _ksmg_granule_sizeinstance parameter as well to choose a larger granule size. As this parameter is not dynamically changeable, an instance restart isrequired.

The following table, shows granule sizes for specific SGA sizes and releases of Oracle:

SGA size 10g granule size 11g granule size 11ggranulesizewith fix8813366installed

<= 1GB 4MB 4MB 4MB

1GB - 4GB 16MB 16MB 16MB

4GB - 8GB 16MB 64MB 16MB

8GB - 16GB 16MB 64MB 32MB

16GB - 32GB 16MB 256MB 64MB

Document 886312.1 https://support.oracle.com/epmos/faces/DocContentDisplay?_adf.ctrl-stat...

1 of 2 6/17/2014 8:32 AM

32GB - 64GB 16MB 256MB 128MB

64GB - 128GB 16MB 512MB 256MB

128GB - 256GB 16MB 512MB 512MB

> 256GB 16MB 512MB 512MB

See also document:947152.1 for details on the granule size and its impact.

The following SQL statement can be used to check the actual granule size in use by the instance:

SQL> select bytes from v$sgainfo where name like 'Granule Size';

So in order to implement the solution for the issue at hand, either:

set SGA_TARGET to a value less than or equal to the previous one, or:1.set _ksmg_granule_size to a higher value (in this case the value was set to 32MB). When using a text parameter file, add thefollowing parameter:

_ksmg_granule_size=33554432

When using a server parameter file, issue:

alter system set "_ksmg_granule_size"=33554432 scope=spfile;

In either case, restart the instance for the changes to take effect.

2.

REFERENCES

BUG:5051962 - ORA-64 OBJECT IS TOO LARGE TO ALLOCATE ON THIS O/S (1,4740456)

Document 886312.1 https://support.oracle.com/epmos/faces/DocContentDisplay?_adf.ctrl-stat...

2 of 2 6/17/2014 8:32 AM

Recommended