Oracle Database 10g comes with a number of new features such as new features in flashback, Data Guard and transaction recovery monitoring. Also covered here are RMAN improvements and general database recovery improvements. (From the book, Oracle Database 10g New Features, by Robert Freeman, McGraw/Hill-Osborne, 2004, ISBN: 0072229470.)
Prior to Oracle Database 10g, RMAN reduced the size of backup images by backing up only the blocks that had been used. That was great if you had a database that was way oversized, but it was of little use for larger databases or databases that had little free space available in the tablespaces.
Oracle Database 10g offers real-life compression (Yea!) of RMAN backup sets through the use of the compressed parameter when issuing the backup command. Here is an example:
RMAN> Backup as compressed backupset database;
Note that only backup sets can be compressed (e.g., database, tablespace, and datafile backups). Specifically, image copies cannot be compressed. Also, by default, compression is disabled. You can use the configure command to define the default disk device to use compression, as shown in this example:
RMAN> configure device type disk backup type to 2> compressed backupset;
NOTE -- I found that backup sets were compressed by about 80 percent when compared to a regular backup set of a rather empty database.
The trade-off between bottlenecks can be tricky. In general, you probably want to reduce the I/O load, so compression sounds like a good idea. But if the compression factor is poor and the CPU cost is relatively high, then you may want to switch the compression off to save CPU.
Controlling Backup Rates and Duration
RMAN allows you to control the rate and duration of RMAN backups. This allows you to back up the database with some control over the impact that that backup has on the operating system. The duration parameter of the backup command causes RMAN to back up the database files in question at a rate that allows the backup to complete in the time stated. This allows you to spread the backup over a longer period of time, reducing CPU and disk I/O workloads. By default, if the backup is not completed in the time required, an error occurs. You can use the partial parameter to indicate that Oracle Database 10g should not return an error at the end of the time duration, but rather should execute normally. In any event, a partial backup will be marked as unusable. The minimize load parameter allows you to control the rate of the backup even further. The minimize load parameter indicates that RMAN should monitor the speed of the backup process and adjust the throughput rate as required if the backup appears it will consume less time than the stated duration. Here is an example of the use of these commands:
RMAN> backup as copy duration 5:00 minimize load database;
RMAN-Related TSPITR Changes
Oracle Database 10g removes some of the manual work associated with the use of tablespace point-in-time recovery. You no longer need to create the Oracle auxiliary instance manually; rather, RMAN creates the auxiliary instance for you, performs the TSPITR, and then removes the auxiliary instance.
RMAN Enhanced Scripts
RMAN in Oracle Database 10g allows you to store text-based scripts in the RMAN catalog repository, and these scripts can be used by any database that connects to the RMAN catalog repository. With the enhanced script features, you can load scripts into the recovery catalog with either the create script command (for a local script that is only visible to the database that loaded it) or the create global script command (for a global RMAN script that is accessible to all databases). Here is an example of creating an enhanced global script:
Create global script full_db_backup from file '/u01/admin/RMAN/backup/backup.rman';
You can replace scripts with the replace script or replace global script command, and you can remove scripts with the delete script command. You can also reverse the process, saving a stored script to a file via the print script or print global script command. The list script names and list global script names commands provide a listing of all global scripts. Also, the list all script names command provides a listing of all scripts in the recovery catalog.
To execute the stored scripts, use the execute script or execute global script command. It is possible for a private and a global script with the same name to exist. In this case, the execute script command executes the private script first; if a private script does not exist, then it executes the global script. A global script is the only script executed when the execute global script command is used.
This chapter is from Oracle Database 10g New Features, by Robert Freeman (McGraw-Hill/Osborne, 2004, ISBN: 0072229470). Check it out at your favorite bookstore today. Buy this book now.