ORA-27515 Error During Managed Application Backup Policy Run
Challenge
Running a managed backup policy with Veeam Plugin for Oracle RMAN results in job failure:
Failed to execute plug-in manager command: RMAN-03002: failure of backup command at 07/13/2023
Plugin logs (/tmp/veeam_plugin_logs) and database trace files reference ORA-27515 error:
$ grep ORA-27515 *.log RMANPluginManager.log:[13.07.2023 20:01:32.234] <139829803869952> plugin_co| ORA-27515: inadequate memlock limit or driver settings
$ oerr ora 27515 27515, 00000, "inadequate memlock limit or driver settings" // *Cause: Inter Process Communication(IPC) queue creation failed due to // inadequate memlock limit or driver settings. // *Action: Set a higher memlock limit and review the network driver // settings to ensure that this limit is accepted.
Note: Manual backup through the RMAN shell completes successfully.
Cause
In Oracle Database environments, custom maximum locked memory (memlock) values may be required for proper database and utilities operations, such as RMAN. Usually, these are configured in user limit settings (ulimit or /etc/security/limits.conf). For more information, refer to Oracle Database Administrator's Reference.
However, in the case of a managed plug-in policy, the RMAN process is spawned by the veeamtransport service. Systemd services do not follow limits configured in limits.conf, and default to 64k memlock limit. For more details, refer to the Root Cause section of https://access.redhat.com/solutions/1257953.
Thus, all processes started in the managed plug-in policy (including RMAN) inherit a default memlock value of 64k, which may not be enough and may result in ORA-27515. Meanwhile, the RMAN process started manually will be spawned by the user shell, which inherits the limits configured in limits.conf, and thus do not face this issue.
According to ORA-27515: inadequate memlock limit or driver settings in EXADATA:
- 3rd party softwares connect to database with a hard code memlock setting should have the sufficient value.
Solution
Manually adjust memlock value for veeamtransport service in systemd configuration files.
- Calculate the required memlock value in bytes. According to Oracle Database Administrator's Reference:
- If HugePages are enabled, the memlock value must be at least 90% of the total RAM.
For example, if there is 64GB of RAM, 90% will be 61847529062 bytes. - If HugePages are not enabled, the memlock value must be at least 3GB or 3221225472 bytes.
- If HugePages are enabled, the memlock value must be at least 90% of the total RAM.
- Create a directory for veeamtransport service drop-in files, create memlock.conf file in that folder, and then populate the conf file with a new memlock limit value.
Below is an example of these steps for the 64GB RAM example from step 1.
Remember to modify the LimitMEMLOCK value for the environment.
- Make sure that no backups or restores are running on the Oracle server, then reload the systemd daemon configuration and restart veeamtransport service:
- Verify that the drop-in file memlock.conf is recognized:
# systemctl status veeamtransport.service ● veeamtransport.service - VeeamTransport Loaded: loaded (/etc/systemd/system/veeamtransport.service; enabled; vendor preset: disabled) Drop-In: /etc/systemd/system/veeamtransport.service.d └─memlock.conf <...>
- Start the managed RMAN backup policy and check if the issue persists.
If the issue persists, contact Veeam Technical Support.
To report a typo on this page, highlight the typo with your mouse and press CTRL + Enter.