ORA-27106: system pages not available to allocate memory

For an Oracle database running on a Linux system, the best practice is to use hugepage. You might see this error when starting up an Oracle database on a Linux system with hugepage configured. That is usually because the database isn’t shutdown cleanly and memory isn’t released.

When you see this error, the simplest way to solve it is to reboot the machine. However, there might be times you don’t want to restart or you don’t have the root previledge to do so. Fortunately there is another way to get hugepages released.

First, check if there are still Oracle processes running and if so, kill them.

ps -ef|grep ora

before/after you kill it, check number of free hugepages with the following command:

grep -i huge /proc/meminfo

Second, use linux commands “ipcs” and “ipcrm” to check IPC resource information and remove Oracle semaphore if there are any.

List shared memory segments, message queues, semaphore arrays

ipcs

Remove shared memory segmentd using shmid:

ipcrm -m <shmid>

Then check number of freepages again. If you see number of Free is close to number of Total, you are good to start Oracle again.

[oracle@JOETESTDB /opt/oracle/admin]$grep -i hugepage /proc/meminfo
AnonHugePages:    876544 kB
HugePages_Total:   46592
HugePages_Free:      46592
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s