RMAN cannot connect to a target database through a shared server dispatcher. RMAN requires a dedicated server process.
If your target database is configured for a shared server, then you must modify your Oracle Net configuration to provide dedicated server processes for RMAN connections.
To ensure that RMAN does not connect to a dispatcher when a target database is configured for a shared server, the net service name used by RMAN must include (SERVER=DEDICATED) in the CONNECT_DATA attribute of the connect string.
To use RMAN with a shared server:
- Create a net service name in the tnsnames.ora file that connects to the nonshared SID. For example, enter:
inst1_ded =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=inst1_host)(port=1521))
(CONNECT_DATA=(SERVICE_NAME=inst1)(SERVER=dedicated))
)
- Start SQL*Plus and then connect using both the shared server and dedicated server service names to confirm the mode of each session.
For example, connect with SYSBACKUP or SYSDBA privilege to inst1_ded and then execute the following SELECT statement (sample output included):
SQL> SELECT SERVER FROM V$SESSION WHERE SID = (SELECT DISTINCT SID FROM V$MYSTAT);
SERVER
---------
DEDICATED
1 row selected.
- Start RMAN and connect to the target database using the dedicated service name. Optionally, connect to a recovery catalog.