You can do the following to a backup:
  • Identify the RMAN processes that are running too long using V$SESSION and V$PROCESS views.
  • Determine why the backup is taking longer using the v$rman_backup_job_detailsview.
  • Monitor the RMAN progress to see how much longer it takes to complete a job using V$SESSION_LONGOPS view.
  • Identifying I/O bottlenecks by Querying V$BACKUP_SYNC_IO and V$BACKUP_ASYNC_IO views to determine the exact source of the bottleneck or restore bottlenecks and to see detailed progress of backup jobs.
To improve RMAN performance:
  • Allocating multiple channels for backup and restore operations by using parallel clause of the configure command to instruct RMAN to set parallelism.
  • Frequently delete obsolete or very old backups.
  • Move backups from disk to tape, thus freeing the space on disk.
  • Partition your database i.e. by making certain columns read-only in a separate tablespace, RMAN will skip that tablespace during backup, thus making the backup process faster and more efficient. 
  • Adjusting the RATE Parameter by making sure that its not set on the allocate channel or configure channel commands. The RATE parameter is intended to slow down a backup so that you can run it in the background with as little effect as possible on OLTP operations.
  • Using the incremental backup strategy with block change tracking. This enables RMAN to quickly identify the blocks that have changed since the last incremental backup. Thus improving performance.
  • Multiplexing backupsets and adjusting the MAXOPENFILES and FILESPERSET for Incremental Backups; one way is to set FILESPERSET high and MAXOPENFILES low to increase the writing efficiency to tape device.