...
BugZero found this defect 323 days ago.
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.
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.
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. 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.
Oracle Database Administrator's Reference How to set limits for services in RHEL and systemd ORA-27515: inadequate memlock limit or driver settings in EXADATA