I got ” ORA-27211: Failed to load Media Management Library” error in Oracle database.
ORA-27211: Failed to load Media Management Library
Details of error are as follows.
ORA-27211: Failed to load Media Management Library Cause: User-supplied SBT_LIBRARY or libobk.so could not be loaded. Call to dlopen for media library returned error. See Additional information for error code. Action: Retry the command with proper media library. Or re-install Media management module for Oracle. We are using third party backup product EMC DD BOOST. I am able to successfully backup the database ONLY if I set database parameter BACKUP_TAPE_IO_SLAVES=FALSE. The vendor wants us to set the parameter to TRUE, but when I do this the backup fails with the following message: RMAN-03009: failure of allocate command on ch01 channel at 08/12/2020 10:15:12 ORA-19554: error allocating device, device type: SBT_TAPE, device name: ORA-27211: Failed to load Media Management Library Additional information: 3978
Failed to load Media Management Library
This ORA-27211 error is related with the User-supplied SBT_LIBRARY or libobk.so could not be loaded. Call to dlopen for media library returned error. See Additional information for error code.
Retry the command with proper media library. Or re-install Media management module for Oracle.
Although the LD_LIBRARY_PATH is set using 64 bit dynamic loadable libraries on Solaris you must set LD_LIBRARY_PATH_64 for the 64 bit linker lookup.
oracle> srvctl getenv database -d <db_name>
<db_name>:
ORACLE_BASE=<oracle_base path>
LD_LIBRARY_PATH=<oracle_home>/lib
oracle> pargs -e 16043|sort
16043: ora_pmon_SHTEMP2
envp[0]: SKGP_SPAWN_DIAG_PRE_EXEC_TS=
envp[1]: SKGP_HIDDEN_ARGS=
envp[10]: ENV_FILE=<grid_home>/crs/install/s_crsconfig_<nodename>_env.txt
envp[11]: GIPCD_PASSTHROUGH=false
envp[12]: LC_COLLATE=en_US.ISO8859-15
envp[13]: LC_CTYPE=en_US.ISO8859-15
envp[14]: LC_MESSAGES=C
envp[15]: LC_MONETARY=en_US.ISO8859-15
envp[16]: LC_NUMERIC=en_US.ISO8859-15
envp[17]: LC_TIME=en_US.ISO8859-15
envp[18]: LD_LIBRARY_PATH=<oracle_home>/lib
envp[19]: LD_LIBRARY_PATH_64= <<<<<<<<<<<<< Not set so the linker will not load
Add for Solaris using 64 bit software the LD_LIBRARY_PATH_64 should be used as it’s the default for lookup
of the 64 bit dynamic libraries.
ORA-27211 Failed to Load Media Management Library in RAC env. with 11gR2 (Doc ID 1439674.1)
and
http://docs.oracle.com/cd/E19253-01/816-5138/dev-env-7/index.html
Solaris 64-bit Developer’s Guide
LD_LIBRARY_PATH Environment Variable
SPARC. The two separate dynamic linker programs for 32-bit applications and for 64-bit applications are: /usr/lib/ld.so.1 and /usr/lib/sparcv9/ld.so.1.
x86. For the AMD64 architecture, the dynamic linker programs for 32-bit applications and 64-bit applications are: /usr/lib/ld.so.1 and /usr/lib/amd64/ld.so.1.
At runtime, both dynamic linkers search the same list of colon-separated directories specified by the LD_LIBRARY_PATH environment variable. However, the 32-bit dynamic linker binds only to 32-bit libraries, while the 64-bit dynamic linker binds only to 64-bit libraries. So directories containing both 32-bit and 64-bit libraries can be specified via LD_LIBRARY_PATH, if needed.
The 64-bit dynamic linker’s search path can be completely overridden using the LD_LIBRARY_PATH_64 environment variable.
Other Case is as follows.
When attempting backup after a new install or upgrade to Oracle9i you see the error:
RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03009: failure of allocate command on ch1 channel at 11/11/2004 22:36:02 ORA-19554: error allocating device, device type: SBT_TAPE, device name: ORA-27211: Failed to load Media Management Library Additional information: 8 Recovery Manager complete.
Tivoli has provided the following solution to this issue.
This example is for an AIX platform.
To resolve this:
1) Link the TDP library file directly to the Oracle directory. The link would look like:
$ORACLE_HOME/lib/libobk.a -> /usr/tivoli/tsm/client/oracle/bin64/libobk64.a
2) Change the LIBPATH environment variable to include $ORACLE_HOME/lib before /usr/lib. If you have a LD_LIBRARY_PATH, ensure that this has the $ORACLE_HOME/lib before /usr/lib.
3) Ensure the SBT_LIBRARY parameter is not set
4) The Oracle instance may need to be restarted as it has been seen where the LIBPATH value was held in memory.
Read the following post to learn more details about Tape backup & Restore in Oracle.
How to Restore Oracle Database ( Controlfile, Datafile, Archivelog ) via RMAN from Tape Backup
Do you want to learn Oracle Database for Beginners, then read the following articles.
Oracle Tutorial | Oracle Database Tutorials for Beginners ( Junior Oracle DBA )