NetWorker: Oracle backup or restore fails with error "RMAN-03009: Failed to load Media Management Library"
Summary: NetWorker Module for Databases and Applications (NMDA) Oracle RMAN database protection operations fail "RMAN-03009: Failed to load Media Management Library"
Symptoms
Cannot perform Oracle RMAN database backup or recovery on the target node of the cluster.
The operation fails with error "RMAN-03009: failure of allocate command on t1 channel at <time>, ORA-xxxxx: Failed to load Media Management Library"
Error Output:
Fail to recover / duplicate oracle database on target node of the cluster connected to target database: PROD (DBID=192934866) connected to auxiliary database: PROD (not mounted) echo set on starting full resync of recovery catalog full resync complete RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03009: failure of allocate command on t1 channel at 08/28/2014 08:50:19 ORA-19554: error allocating device, device type: SBT_TAPE, device name: ORA-27211: Failed to load Media Management Library Additional information: 3859
Cause
The error message indicates that RMAN has not been able to locate one of the required libraries, either libddobk.so, libDDBoost.so, or another library used by these libraries. In different Linux environments, the search rules used for locating shared libraries, such as the RMAN plugin libraries, are complex.
Resolution
This error usually occurs in a UNIX or Linux environment. The error message indicates that RMAN has not been able to locate one of the required libraries, either libddobk.so, libDDBoost.so, or another library used by these libraries. In different Linux environments, the search rules used for locating shared libraries, such as the RMAN plugin libraries, are complex. The search rules can depend on the settings of various environment variables, such as LD_LIBRARY_PATH, LD_LIBRARY_PATH_64, or LD_RUN_PATH.
These rules and environment variables may be set in your environment by other applications and may cause RMAN to be unable to locate the needed libraries.
If you encounter this error in a UNIX environment, the following steps can help find the source of the problem and correct it.
Procedure:
libddobk.so library was correctly specified in the RMAN configuration command. If this is not correct, the libddobk.so library cannot be found. Check that the libddobk.so exists in the specified directory and the directory and the library file have appropriate access for the user.
2. Check that the Oracle home directory was correctly specified in the RMAN configuration command. If this is not correct, the
libDDBoost.so library cannot be found. Check that the /lib subdirectory exists in the Oracle home directory and that the libDDboost.so library exists in this directory and that the directory and library file have appropriate access for the user.
3. Use the
ldd command on the libddobk.so and the libDDBoost.so libraries to see if the libraries they use can be found, as shown in the following example:
# ldd libddobk.so
libpthread.so.0 => /lib64/libpthread.so.0 (0x00002aaaaabf1000)
librt.so.1 => /lib64/librt.so.1 (0x00002aaaaad06000)
libm.so.6 => /lib64/libm.so.6 (0x00002aaaaae20000)
libdl.so.2 => /lib64/libdl.so.2 (0x00002aaaaafa7000)
libDDBoost.so => not found
libc.so.6 => /lib64/libc.so.6 (0x00002aaaab420000)
/lib64/ld-linux-x86-64.so.2 (0x0000555555554000)
libDDBoost.so is shown as not found as in this example, then that is the missing library. libDDBoost.so may be shown as not found even though there is a libDDBoost.so file in the same directory as libddobk.so.
4. Correcting the problem depends on your environment and your other applications. One possible solution is to place a link to the
libDDBoost.so library in a place where other libraries are being found. In this example, placing a link to libDDBoost.so in /lib64 can solve the problem:
cd /lib64 ln s /u01/app/oracle/product/11.2.0/db_home1/lib/libDDBoost.so
libDDBoost.so to an environment variable such as LD_LIBRARY_PATH, LD_LIBRARY_PATH_64, or LD_RUN_PATH. Use caution when using or modifying environment variables, as their use varies from system to system and changing them might impact other applications.
ldd to verify that the library is resolved.
# ldd libddobk.so
libpthread.so.0 => /lib64/libpthread.so.0 (0x00002aaaaabf1000)
librt.so.1 => /lib64/librt.so.1 (0x00002aaaaad06000)
libm.so.6 => /lib64/libm.so.6 (0x00002aaaaae20000)
libdl.so.2 => /lib64/libdl.so.2 (0x00002aaaaafa7000)
libDDBoost.so => /u01/app/oracle/product/11.2.0/db_home1/lib/libDDBoost.so (0x00002aaaab0ab000)
libc.so.6 => /lib64/libc.so.6 (0x00002aaaab420000)