Parallel backup using RMAN in RAC environment

For configuring the number of parallel channel, we can use following command

RMAN> CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 4;

After allocating the channels, if we execute RMAN backup script, we’ll see channel allocation like

allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=104 instance=inst1 devtype=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: sid=66 instance=inst1 devtype=DISK
allocated channel: ORA_DISK_3
channel ORA_DISK_3: sid=94 instance=inst1 devtype=DISK
allocated channel: ORA_DISK_4
channel ORA_DISK_4: sid=40 instance=inst1 devtype=DISK

By default, channels will be allocated from one node. To split the load across all the nodes in the cluster, individual channels need special configuration.

So in two-node cluster, we can equally distribute the load as

CONFIGURE CHANNEL 1 DEVICE TYPE DISK CONNECT ‘sys/passwd@inst1’;
CONFIGURE CHANNEL 2 DEVICE TYPE DISK CONNECT ‘sys/passwd@inst1’;
CONFIGURE CHANNEL 3 DEVICE TYPE DISK CONNECT ‘sys/passwd@inst2’;
CONFIGURE CHANNEL 4 DEVICE TYPE DISK CONNECT ‘sys/passwd@inst2’;

For validating the configuration,

RMAN> show all;

RMAN configuration parameters are:

CONFIGURE CHANNEL 1 DEVICE TYPE DISK CONNECT ‘*’;
CONFIGURE CHANNEL 2 DEVICE TYPE DISK CONNECT ‘*’;
CONFIGURE CHANNEL 3 DEVICE TYPE DISK CONNECT ‘*’;
CONFIGURE CHANNEL 4 DEVICE TYPE DISK CONNECT ‘*’;

Username & passwords will not be shown.

Now if we again, execute same RMAN script, we should see channel allocation like

allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=104 instance=inst1 devtype=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: sid=66 instance=inst1 devtype=DISK

allocated channel: ORA_DISK_3
channel ORA_DISK_3: sid=94 instance=inst2 devtype=DISK
allocated channel: ORA_DISK_4
channel ORA_DISK_4: sid=40 instance=inst2 devtype=DISK

This approach can be used to reduce the backup time.

Caution: Compressed Backup is CPU bound, so number of channels should be carefully used.

If we reduce the degree of parallelism, let’s say from 4 to 2

RMAN> CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 2;

We’ll have 2 redundant channels. In RMAN setting, they will be shown as ignored

configuration for DISK channel 3 is ignored
configuration for DISK channel 4 is ignored

To remove these extra channels, we can use

RMAN> CONFIGURE CHANNEL 3 DEVICE TYPE DISK CLEAR;
RMAN> CONFIGURE CHANNEL 4 DEVICE TYPE DISK CLEAR;

This entry was posted in Oracle Database Backup, Oracle Recovery Manager and tagged . Bookmark the permalink.

12 Responses to Parallel backup using RMAN in RAC environment

  1. narges says:

    Hi
    I did the above config on my RAC with 2nodes.but backup time dose not improve and it seems it gots 2 channel but using only one channel.what is wrong?

    • 1. Please confirm if you are able to see channels allocated to both instances.
      2. Check connectivity between physical server and backup location. Ideally this should be a dedicated FC network.
      3. Check what’s the I/O speed of disks, used for backup area. For example SATA disks are big in size, but not very fast.
      4. How many CPU’s / cores etc, you have on your physical server? If you don’t have multiple CPU’s, you may not benefit from this. Check CPU run queue length.

  2. Junaid C M says:

    This kind of configurations keep the passwords in recovery catalogue in clear text.Is there any way to hide it

  3. Junaid C M says:

    in recovery catalogue database

  4. Junaid C M says:

    CONF Table for rman user

  5. Patrick says:

    Suppose one node is down. Will your backup still run, but ignore the other channels hard-coded?

  6. bharath says:

    can you please detail the steps that are required from a TNS/Listener perspective to be able to connect to multiple instances directly without connecting to the DBSID ? I am getting the TNS-12154 issue and not able to figure out the steps.. Also, please let me know which netca to use to configure them ? the Grid or DB ?

  7. You will always have instance specific entries in local listener of node. So there is no special configuration required at TNS level. If you don’t want to use SID specific entries, then you can create a service and use it (also to be registered with listener), when you configure device channel. Before configuring RMAN channel with the connect string, connect to sql*plus with that string. If it works with sql*plus, it will also work with RMAN channel configuration.

Leave a comment