You are currently viewing Solving ORA-27104: system-defined limits for shared memory was misconfigured

Solving ORA-27104: system-defined limits for shared memory was misconfigured

Troubleshooting ORA-27104: Misconfigured Shared Memory Limits in Oracle

The ORA-27104 error, “system-defined limits for shared memory was misconfigured,” often occurs during Oracle Database startup. If you encounter this issue, this guide will help you understand and resolve it step by step.

Why Does ORA-27104 Happen?

This error happens when the operating system’s shared memory limits are too low for Oracle’s needs. For example, I recently moved an Oracle 19c virtual machine to a new host with less RAM (from 16GB to 8GB), causing this error because the memory settings no longer suited the hardware.

Later, I discovered that on the VM, Oracle failed to start automatically. When I attempted to start it manually, I encountered the following ORA-27104 error:

Pinpointing the Problem

When this error occurs, Oracle logs details in the alert log. For an Oracle 19c instance named ORCLCDB, you might find the log at:

/opt/oracle/diag/rdbms/orclcdb/ORCLCDB/alert/log.xml

Opening it, you could see something like:

It shows that SGA is big than VM’s memory. So this is the reason why Oracle can not start.

Step-by-Step Fix

So login as oracle, create pfile.

sqlplus / as sysdba
create pfile='/opt/oracle/product/19c/dbhome_1/dbs/init20240903.ora' from spfile;

then modify /opt/oracle/product/19c/dbhome_1/dbs/init20240903.ora , make sure all memory is not higher than VM memory 7656MB.

and start oracle using modified pfile.

startup pfile='/opt/oracle/product/19c/dbhome_1/dbs/init20240903.ora';

and from pfile create spfile again.

create spfile from pfile='/opt/oracle/product/19c/dbhome_1/dbs/init20240903.ora';
shutdown immediate;

Then use spfile , oracle can be normally started.

sqlplus / as sysdba
startup;

Key Takeaways

ORA-27104 is related to alignment: your system’s shared memory must support Oracle’s SGA. An incorrect SGA configuration can prevent Oracle from starting. When Oracle fails to start, you need to follow the steps I mentioned earlier to modify the Oracle configuration file and enable Oracle to start normally.

Leave a Reply