Sunday 29 May 2011

ORA-27126: unable to lock shared memory segment in core

This articale covers the resolution for this error on AIX 5L platform.

This error happens when you set you LOCK_SGA parameter to TRUE for any Oracle database that is running on 10.2.0.4 patchset or higher release and you start the instance. You will not see this error as soon as the you set your LOCK_SGA to false and start the instance.

You will also find similar ORA-600 error in your alert log file when you face this issue:

ORA-00600: internal error code, arguments: [kmgsb_resize_sga_target_1]

This error basically means that the oracle user does not have the necessary privilege at the OS level to pin certain size of memory. To check whether oracle user has the required privilege, run the following:

lsuser -a capabilities oracle


The fix for this is as follows but you will need to have root privilege to do this on the server.

1. Add the CAP_BYPASS_RAC_VMM and CAP_PROPAGATE capabilities to "oracle" user
# chuser capabilities=CAP_BYPASS_RAC_VMM,CAP_PROPAGATE oracle

2. Configure the AIX large page pool by calculating the number of large pages required for the SGA:
num_of_large_pages = INT((total_SGA_size-1)/16MB)+1

3. Configure the number and size of large pages:
# vmo -p -o lgpg_regions=num_of_large_pages -o lgpg_size=16777216


Please ensure that the value you set for lgpg_regions parameter should be sufficient enough for your SGA to pin the memory. Also ensure that your SGA is not bigger than your physical RAM.

You may refer to MOSS note 603489.1

No comments:

Post a Comment