When RMAN
reads or writes data, the I/O is either synchronous or asynchronous. When the
I/O is synchronous, a server process can perform only one task at a time. When
it is asynchronous, a server process can begin an I/O and then perform other
tasks while waiting for the I/O to complete. It can also begin multiple I/O
operations before waiting for the first to complete.
You can set
initialization parameters that determine the type of I/O. If you set
BACKUP_TAPE_IO_SLAVES to TRUE, the tape I/O is asynchronous. Otherwise, the I/O
is synchronous.
The
following steps occur in a synchronous transfer:
1. A server process writes blocks to a tape
buffer.
2. The tape process writes data to tape. The
server process is idle while the media manager copies data from the Oracle
buffers to the media manager’s internal buffers.
3. The tape process relays to the server
process that it has completed writing.
4. The server process can initiate a new
task.
Many
operating systems support native asynchronous I/O and Oracle can take advantage
of this feature whenever it is available. It is recommended that you always set
BACKUP_TAPE_IO_SLAVES to TRUE when the platform supports it. On operating
systems that do not support native asynchronous I/O, Oracle can simulate it by
using special I/O slave processes that are dedicated to performing I/O on
behalf of another process. You can control disk I/O slaves by setting the
DBWR_IO_SLAVES parameter to a nonzero value. Oracle allocates four backup disk
I/O slaves for any nonzero value of DBWR_IO_SLAVES.