Skip to main content
Delphix

Provision or Refresh fails with: ORA-27300: OS system dependent operation:semget failed with status: 28

Applicable Delphix Versions

  • 5.1
  • 5.0
  • 4.3
  • 4.2
  • 4.1
  • 4.0
  • 3.2

Issue

Provisioning or refreshing an Oracle virtual database (VDB) fails with the following errors:

ORA-27300: OS system dependent operation:semget failed with status: 28 
ORA-27301: OS failure message: No space left on device 
ORA-27302: failure occurred at: sskgpcreates 

Another variation of the ORA-27300 error for Linux:

ORA-27102: out of memory Linux-x86_64 Error: 28: No space left on device

The error "ORA-27300: OS system dependent operation:semget failed with status: 28" is an issue that has to do with the configuration of the Oracle database and the target host environment. The second message "ORA-27301: OS failure message: No space left on device" is confusing and misleading as it leads the DBA to believe there are disk space issues when there are none.

Troubleshooting

The SEMMNI kernel parameter controls the number of semaphores per array. If set too low the additional semaphores needed cannot be created and a error will occur.

There is also a direct correlation to the DB init.ora parameter PROCESSES. With a higher PROCESSES number there needs to be a higher SEMMNI value at the OS level to compensate.

Here are some additional Oracle documents that explain the error:

https://support.oracle.com/epmos/faces/DocContentDisplay?id=949468.1
https://support.oracle.com/epmos/faces/DocContentDisplay?id=1595770.1
https://support.oracle.com/epmos/faces/DocContentDisplay?id=567506.1

Resolution

  1. Use the "ipcs" and "sysctl" commands as instructed in the Oracle knowledgebase articles to determine if the SEMMNI kernel parameter is configured appropriately on the host the VDB is being provisioned to.
  2. When provisioning a VDB, confirm that the "PROCESSES" parameter was set to an appropriate value for the target host. When you create a VDB, the Delphix Engine copies configuration settings from the source database and uses them to create the VDB. These values may not be appropriate if the VDB is being provisioned to a smaller target environment. Oracle configuration settings can be altered when provisioning a VDB. Templates can be created to save configuration parameters for future use.