Problem Description
Oracle DTC redirected restore fails with an error “Failed to load Media Management Library”
Cause
Database restore to an alternate DB server may fail to load the library libphxsbt.so located at /opt/Druva/EnterpriseWorkloads/lib/oracledtc/libphxsbt.so on the destination database server due to a permission issue when allocating RMAN channels.
Traceback
"rman script output: \nRecovery Manager: Release 19.0.0.0.0 - Production on Tue May 30 05:50:9 2024\nVersion 19.23.0.0.0\n\nCopyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.\n\nconnected to target database: TestCDB (not mounted)\n\n
RMAN> 2> 3> 4> 5> 6> 7> \nexecuting command: SET COMMAND ID\n\nexecuting command:
SET DBID\n\nusing target database control file instead of recovery catalog\n
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of allocate command on ch0 channel at 05/30/2024 05:56:00\n
ORA-19554: error allocating device, device type: SBT_TAPE, device name:
ORA-27211: Failed to load Media Management Library
RMAN> \n\nRecovery Manager complete.\n: exit status 1"
Resolution
If the restore is failing with the above error, it is essential to ensure that the account used for the database backup is available on the destination database server and it should be part of the oinstall group.
In this scenario, where we performed the restore on the destination server, the oraadmin user was present before initiating the restore:
[root@Testoradev ~]# ll /opt/Druva/EnterpriseWorkloads/lib/oracledtc
total 62488
-rwxr-x---. 1 root root 27118704 Jul 9 02:36 libgophoton.so
-rwxr-x---. 1 oraadmin root 36866998 Jul 9 03:25 libphxsbt.so
The database TestCDB was backed up using the oracle user. As a result, when the restore is triggered, the Oracle DTC agent changes the permissions on libphxsbt.so from oraadmin to oracle on the destination DB server.
[root@Testoradev ~]# ll /opt/Druva/EnterpriseWorkloads/lib/oracledtc
total 62488
-rwxr-x---. 1 root root 27118704 Jul 9 02:36 libgophoton.so
-rwxr-x---. 1 oracle root 36866998 Jul 9 03:25 libphxsbt.so
This permission change prevents the restore from connecting to the Oracle DTC library. To resolve this issue, you need to create the oracle user on the destination server and add it to the oinstall group.
Once the oracle user is created and added to the oinstall group, you can proceed to trigger the restore which will resolve the issue.