9 Backing Up the Database
This chapter explains how to perform the most basic backup tasks and implement backup strategies using RMAN. This chapter contains the following topics:
See Also:
-
Backing Up the Database: Advanced Topics to learn about more advanced topics such as backup optimization, duplexing, backup encryption, and restartable backups
-
Oracle Data Guard Concepts and Administration to learn how to perform RMAN backup and recovery in a Data Guard environment
9.1 Overview of RMAN Backups
RMAN backups are created using the BACKUP
command.
This section provides an overview of RMAN backups.
9.1.1 Purpose of RMAN Backups
The primary purpose of RMAN backups is to protect your data. If a media failure or disaster occurs, then you can restore your backups and recover lost changes.
You can also make backups to preserve data for long-time archival, as explained in "Making Database Backups for Long-Term Storage", and to transfer data, as explained in the chapters included in Transferring Data with RMAN.
9.1.2 Basic Concepts of RMAN Backups
You can back up all or part of your database with the BACKUP
command from within the RMAN client.
In many cases, after your database has been configured in accordance with your backup strategy, you can back up the database by entering the following command at the RMAN prompt:
RMAN> BACKUP DATABASE;
RMAN uses the configured settings, the records of previous backups, and the control file record of the database structure to determine an efficient set of steps for the backup. RMAN then performs these steps.
As explained in "About RMAN File Management in a Data Guard Environment", you can run RMAN backups at any database in a Data Guard environment. Any backup of any database in the environment is usable for recovery of any other database if the backup is accessible. You can offload all backups of database files, including control file backups, to a physical standby database and thereby avoid consuming resources on the primary database.
See Also:
-
Oracle Database Backup and Recovery Reference to learn about the
BACKUP
command -
Oracle Data Guard Concepts and Administration to learn how to back up a standby database with RMAN
9.2 Specifying Backup Output Options
You can provide arguments to the BACKUP
command to override the default backup options.
If you specify only the minimum required options for an RMAN command such as BACKUP DATABASE
, then RMAN automatically determines the destination device, locations for backup output, and a backup tag based on your configured environment and built-in RMAN defaults.
The most typical backup options are described in the following sections:
See Also:
Backing Up the Database: Advanced Topics to learn about advanced backup options such as duplexing and restarting backups
9.2.1 Specifying the Device Type for an RMAN Backup
The BACKUP
command takes a DEVICE TYPE
clause that specifies whether to back up to disk or tape device.
When you run BACKUP
without a DEVICE TYPE
clause, RMAN stores the backup on the configured default device (disk or SBT). You set the default device with the CONFIGURE DEFAULT DEVICE TYPE
command.
Example 9-1 Specifying Device Type DISK
This example illustrates a backup to disk.
BACKUP
DEVICE TYPE DISK
DATABASE;
See Also:
Configuring the Default Device for Backups: Disk or SBT for information about configuring the default device
9.2.2 Specifying Backup Set or Copy for an RMAN Backup to Disk
RMAN can create backups on disk as image copies or as backup sets.
"Configuring the Default Type for Backups: Backup Sets or Copies" explains how to configure the default disk device. You can override this default with the AS
COPY
or AS
BACKUPSET
clauses.
Example 9-2 Making Image Copies
This example uses BACKUP AS COPY
to back up to disk as image copies.
BACKUP AS COPY
DEVICE TYPE DISK
DATABASE;
Example 9-3 Making Backup Sets
To back up your data into backup sets, use the AS BACKUPSET
clause. This example illustrates how you can allow backup sets to be created on the configured default device, or direct them specifically to disk or tape.
BACKUP AS BACKUPSET
DATABASE;
BACKUP AS BACKUPSET
DEVICE TYPE DISK
DATABASE;
BACKUP AS BACKUPSET
DEVICE TYPE SBT
DATABASE;
9.2.3 Specifying a Format for RMAN Backups
RMAN provides a range of options to name the files generated by the BACKUP
command.
RMAN uses the following set of rules to determine the format of the output files, which are listed in order of precedence:
See Also:
Oracle Database Backup and Recovery Reference to learn about the FORMAT
clause, and the installation guides in the Oracle Database documentation library to learn about the default file locations for your platform
9.2.3.1 Specifying Multiple Formats for Disk Backups
When backing up to disk, you can specify a format to spread the backup across several drives for improved performance.
-
To back up a database to multiple disk drives, allocate one
DISK
channel for each disk drive and specify the format string on theALLOCATE CHANNEL
command so that the file names are on different disks.RUN { ALLOCATE CHANNEL disk1 DEVICE TYPE DISK FORMAT '/disk1/%d_backups/%U'; ALLOCATE CHANNEL disk2 DEVICE TYPE DISK FORMAT '/disk2/%d_backups/%U'; ALLOCATE CHANNEL disk3 DEVICE TYPE DISK FORMAT '/disk3/%d_backups/%U'; BACKUP AS COPY DATABASE; }
-
To create a default configuration that distributes backups to multiple disk drives by default, configure multiple disk channels.
CONFIGURE DEVICE TYPE DISK PARALLELISM 3; CONFIGURE DEFAULT DEVICE TYPE TO DISK; CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT '/disk1/%d_backups/%U'; CONFIGURE CHANNEL 2 DEVICE TYPE DISK FORMAT '/disk2/%d_backups/%U'; CONFIGURE CHANNEL 3 DEVICE TYPE DISK FORMAT '/disk3/%d_backups/%U'; BACKUP AS COPY DATABASE;
Typically, you do not need to specify a format when backing up to tape because the default %U
variable generates a unique file name for tape backups.
9.2.4 Specifying Tags for an RMAN Backup
RMAN attaches a character string called a tag to every backup it creates, as a way of identifying the backup. You can either accept the default tag or specify your own with the TAG
parameter of the BACKUP
command.
This section contains the following topics:
9.2.4.1 About Backup Tags
User-specified tags are a useful way to indicate the purpose or usage of different classes of backups or copies.
You can tag backup sets, proxy copies, data file copies, or control file copies. For example, you can tag data file copies that you intend to use in a SWITCH
command as for_switch_only
and file copies to use only for a RESTORE
command as for_restore_only
.
Tags do not need to be unique, so multiple backup sets or image copies can have the same tag (for example, weekly_backup
). Assume that you specify that a data file be restored from backups that have a specific tag. If multiple backups of the requested file have the desired tag, then RMAN restores the most recent backup that has the desired tag, within any constraints on the RESTORE
command.
In practice, tags are often used to distinguish a series of backups created as part of a single strategy, such as an incremental backup strategy. For example, you might create a weekly incremental backup with a tag like BACKUP TAG weekly_incremental
. Many forms of the BACKUP
command let you associate a tag with a backup, and many RESTORE
and RECOVER
commands let you specify a tag to restrict which backups to use in the RESTORE
or RECOVER
operation.
If you do not explicitly specify a tag with the TAG
parameter of the BACKUP
command, then RMAN implicitly creates a default tag for backups (except for control file autobackups). The format of the tag is TAG
YYYYMMDD
T
HHMMSS
, where YYYY
is the year, MM
is the month, DD
is the day, HH
is the hour (in 24-hour format), MM
is the minutes, and SS
is the seconds. For example, a backup of data file 1
may get the tag TAG20070208T133437
. The date and time refer to when RMAN started the backup in the time zone of the instance performing the backup. If multiple backup sets are created by one BACKUP
command, then each backup piece has the same default tag.
Tags are stored in uppercase, regardless of the case used when entering them. The maximum length of a backup tag is 30 bytes. Tags cannot use operating system environment variables or use special formats such as %T
or %D
.
See Also:
Oracle Database Backup and Recovery Referencefor the default format description in BACKUP...TAG
9.2.4.2 Specifying Tags for Backup Sets and Image Copies
Use the TAG
parameter with the BACKUP
command to specify tags for backup sets and image copies.
-
) in the file names it uses internally, so a tag including a hyphen (such as weekly-incr
) is not a legal tag name for backups in ASM disk groups.
When you tag a backup set, the tag is an attribute of each backup piece in a given copy of a backup set. If you create a multiplexed backup set, then each copy of the backup set is assigned the same tag.
Example 9-4 Applying a Tag to a Backup Set
This example creates one backup set with the tag MONDAYBKP
.
BACKUP AS BACKUPSET
COPIES 1
DATAFILE 7
TAG mondaybkp;
Example 9-5 Applying Tags to Image Copies
This example shows that copies of data files in tablespaces users
and tools
are assigned the tag MONDAYCPY
. When you specify a tag for image copies, the tag applies to each individual copy.
BACKUP AS COPY
TABLESPACE users, tools
TAG mondaycpy;
Example 9-6 Assigning Tags to Output Copies
This example creates new copies of all image copies of the database that have the tag full_cold_copy
and gives the new copies the tag new_full_cold_copy
. You can use FROM TAG
to copy an image copy with a specific tag, and then use TAG
to assign the output copy a different tag.
BACKUP AS COPY
COPY OF DATABASE
FROM TAG full_cold_copy
TAG new_full_cold_copy;
9.2.5 Making Compressed Backups
When creating backup sets, you can use RMAN support for binary compression of backup sets by including the AS COMPRESSED BACKUPSET
option to the BACKUP
command.
RMAN compresses the backup set contents before writing them to disk. The details of which binary compression level is used are automatically recorded in the backup set. There is no need to explicitly mention the type of compression used or how to decompress the backup set in the recovery operation.
Binary compression creates some performance overhead during backup and restore operations. Binary compression consumes CPU resources, so do not routinely schedule compressed backups when CPU usage is high. However, the following circumstances may warrant paying the performance penalty:
-
You are using disk-based backups when disk space in your fast recovery area or other disk-based backup destination is limited.
-
You are performing your backups to some device over a network when reduced network bandwidth is more important than CPU usage.
-
You are using some archival backup media such as CD or DVD, where reducing backup sizes saves on media costs and archival storage.
See Also:
-
AS COMPRESSED BACKUPSET
option of theBACKUP
command in Oracle Database Backup and Recovery Reference for performance details regarding backup sets
Example 9-7 Making Compressed Backups
This example backs up the entire database and archived logs to the configured default backup destination (disk or tape), producing compressed backup sets.
BACKUP
AS COMPRESSED BACKUPSET
DATABASE PLUS ARCHIVELOG;
9.2.6 Specifying Multisection Incremental Backups
A multisection backup enables large data files to be divided into sections that can be backed up in parallel across multiple channels. This provides faster backup performance and better recovery times.
A multisection backup contains multiple backup pieces. During a multisection backup operation, RMAN writes to each backup piece, in parallel, by using a separate channel for each backup piece.
Multisection full backups of databases and data files are supported starting with Oracle Database 11g Release 1. Starting with Oracle Database 12c Release 1 (12.1), RMAN supports multisection incremental backups. Wherever applicable, RMAN also uses unused block compression and block change tracking while creating multisection incremental backups. When backup sets are used, you can create multisection full or incremental backups.
To create level 0 multisection incremental backups, the COMPATIBLE
parameter must be set to 11.0 or higher. However, to create multisection incremental backups of level 1 or higher, you must set the COMPATIBLE
parameter to 12.0.0 or higher. RMAN always creates multisection incremental backups with FILESPERSET
set to 1.
Use the SECTION SIZE
clause of the BACKUP
command to create multisection backups. The SECTION SIZE
clause specifies the size of each backup section. If you specify a section size that is larger than the size of the file, then RMAN does not use multisection backups for that file. If you specify a small section size that would produce more than 256 sections, then RMAN increases the section size to a value that results in exactly 256 sections.
Views to Identify Multisection Backups
Use the MULTI_SECTION
column of the V$BACKUP_SET
view or the recovery catalog view RC_BACKUP_SET
to determine if a backup is a multisection backup. For multisection backups, the MULTI_SECTION
column contains YES.
Views That Contain Metadata for Multisection Backups
The V$BACKUP_DATAFILE
and RC_BACKUP_DATAFILE
views provide information about the number of blocks in each section of a multisection backup. The BLOCKS
column specifies the number of blocks in each multisection backup.
Example 9-8 Multisection Incremental Backup of Database as Backup Sets
The following example creates a multisection level 1 incremental backup of the data file as backup sets.
-
Ensure that the initialization parameter
COMPATIBLE
of the target database is set to 12.0.0 or higher. -
Start RMAN and connect to a target database as a user with the
SYSBACKUP
orSYSDBA
privilege.See Also:
Making Database Connections with RMAN for information about connecting to a target database
-
If required, configure RMAN to write in parallel to the backup device.
The following example configures RMAN to use two disk channels in parallel.
CONFIGURE DEVICE TYPE disk PARALLELISM 2;
-
Execute
BACKUP
withSECTION SIZE
to indicate that a multisection backup must be created.The following example creates a multisection section level 1 backup of the data file
users_df.dbf
using backup sets. Each backup piece is 100MB.BACKUP INCREMENTAL LEVEL 1 SECTION SIZE 100M DATAFILE '/oradata/datafiles/users_df.dbf';
9.2.7 Making Multisection Backups Using Image Copies
While an image copy is being created, RMAN uses multiple channels to write files sections. However, the output of this operation is one copy for each data file.
Multisection backups provide better performance by using multiple channels to back up large files in parallel. Starting with Oracle Database 12c Release 1 (12.1), you can create multisection full backups that are stored as image copies.
Use the SECTION SIZE
clause to create multisection backups. If the section size that you specify is larger than the size of the file, then RMAN does not use multisection backups for that file. If you specify a small section size that would produce more than 256 sections, then RMAN increases the section size to a value that results in exactly 256 sections
Example 9-9 Multisection Backup of Data File as Image Copies
Use the following steps to create a multisection backup of a database as image copies:
-
Ensure that the
COMPATIBLE
parameter for the target database is set to 12.0.0 or higher. -
Start RMAN and connect to a target database as a user with the
SYSBACKUP
orSYSDBA
privilege. -
If required, configure channel parallelism so that RMAN can perform the backup operation using multiple drives in parallel.
-
Execute
BACKUP
withSECTION SIZE
andAS COPY
to indicate that a multisection backup must be created using image copies.The following command creates a multisection incremental backup of the entire database using image copies. Each backup piece is 500MB.
BACKUP AS COPY SECTION SIZE 500M DATABASE;
See Also:
-
Making Database Connections with RMAN for information about connecting to a target database
-
Specifying Multisection Incremental Backups for information about the views that contain information about multisection backups.
9.3 Backing Up Database Files with RMAN
This section contains the following topics:
9.3.1 Backing Up a Whole Database with RMAN
You can perform a whole database backup with the database mounted or open.
To perform a whole database backup, from the RMAN prompt, use the BACKUP DATABASE
command.
You may want to exclude specified tablespaces from a whole database backup. You can persistently skip tablespaces across RMAN sessions by executing the CONFIGURE EXCLUDE
command for each tablespace that you always want to skip. You can override the configured setting with BACKUP ... NOEXCLUDE
.
To back up the database:
See Also:
-
Oracle Database Backup and Recovery Reference to learn about the
BACKUP
command andCONNECT
command -
"Skipping Offline, Read-Only, and Inaccessible Files" to learn how to use
BACKUP ... SKIP
to skip inaccessible data files or data files that are in offline or read-only tablespaces
9.3.2 Backing Up Tablespaces and Data Files with RMAN
You can back up one or more tablespaces with the BACKUP TABLESPACE
command or one or more data files with the BACKUP DATAFILE
command.
When you specify tablespaces, RMAN translates the tablespace name internally into a list of data files. The database can be mounted or open. Tablespaces can be read/write or read-only.
Note:
Transportable tablespaces do not have to be in read/write mode for backup as in previous releases.
RMAN automatically backs up the control file and the server parameter file (if the instance was started with a server parameter file) when data file 1
is included in the backup. If control file autobackup is enabled, then RMAN writes the current control file and server parameter file to a separate autobackup piece. Otherwise, RMAN includes these files in the backup set that contains data file 1
.
To back up tablespaces or data files:
The following example backs up the users
and tools
tablespaces to tape:
BACKUP
DEVICE TYPE sbt
TABLESPACE users, tools;
The following example uses an SBT channel to back up data files 1
through 4
and a data file copy stored at /tmp/system01.dbf
to tape:
BACKUP
DEVICE TYPE sbt
DATAFILE 1,2,3,4
DATAFILECOPY '/tmp/system01.dbf';
9.3.3 Backing Up Control Files with RMAN
You can back up the control file when the database is mounted or open. RMAN uses a snapshot control file to ensure a read-consistent version.
If the CONFIGURE CONTROLFILE AUTOBACKUP
command is set to ON
(by default it is OFF
), then RMAN automatically backs up the control file and server parameter file after every backup and after database structural changes. The control file autobackup contains metadata about the previous backup, which is crucial for disaster recovery.
Note:
You can restore a backup of a control file made on one Data Guard database to any other database in the environment. Primary and standby control file backups are interchangeable. See Oracle Data Guard Concepts and Administration to learn how to use RMAN to restore files on a standby database.
If the autobackup feature is not set, then you must manually back up the control file in one of the following ways:
-
Run
BACKUP
CURRENT
CONTROLFILE
. -
Include a backup of the control file within any backup by using the
INCLUDE
CURRENT
CONTROLFILE
option of theBACKUP
command. -
Back up data file
1
, because RMAN automatically includes the control file and server parameter file in backups of data file1
.Note:
If the control file block size is different from the block size for data file
1
, then the control file cannot be written into the same backup set as the data file. RMAN writes the control file into a backup set by itself if the block size is different. TheV$CONTROLFILE.BLOCK_SIZE
column indicates the control file block size, whereas theDB_BLOCK_SIZE
initialization parameter indicates the block size of data file1
.
9.3.3.1 About Manual Backups of the Control File
A manual backup of the control file is different from a control file autobackup. RMAN makes a control file autobackup after the files specified in the BACKUP
command are backed up.
Thus, the autobackup—unlike a manual control file backup—contains metadata about the backup that just completed. Also, RMAN can automatically restore autobackups without the use of a recovery catalog.
You can make a manual backup of the current control file either as a backup set or as an image copy. For a backup set, RMAN first creates a snapshot control file for read consistency. You can configure the file name and location of the snapshot control file. A snapshot control file is not needed for an image copy.
In an Oracle Real Application Clusters (Oracle RAC) environment, the following restrictions apply:
-
The snapshot control file location must be on shared storage—that is, storage that is accessible by all Oracle RAC instances.
-
The destination of an image copy of the current control file must be shared storage.
9.3.3.2 Making a Manual Backup of the Control File
To make a manual backup, you can either specify INCLUDE CURRENT CONTROLFILE
when backing up other files or specify BACKUP CURRENT CONTROLFILE
.
To manually back up the control file:
You can also back up control file copies on disk by specifying the CONTROLFILECOPY
parameter.
- Start RMAN and connect to a target database and a recovery catalog (if used) as described in Making Database Connections with RMAN.
- Ensure that the target database is mounted or open.
- Execute the
BACKUP
command with the desired control file clause.
Example 9-10 Backing Up a Tablespace and Current Control File to Tape
This example backs up tablespace users
to tape and includes the current control file in the backup:
BACKUP DEVICE TYPE sbt
TABLESPACE users
INCLUDE CURRENT CONTROLFILE;
Example 9-11 Backing Up Current Control File to Fast Recovery Area
This example backs up the current control file to the fast recovery area as a backup set:
BACKUP CURRENT CONTROLFILE;
RMAN first creates a snapshot control file.
Example 9-12 Backing Up the Current Control File as Image Copy
This example backs up the current control file to the default disk device as an image copy:
BACKUP AS COPY
CURRENT CONTROLFILE
FORMAT '/tmp/control01.ctl';
Example 9-13 Backing Up a Control File Copy
This example backs up the control file copy created in the previous example to tape:
BACKUP AS COPY
CURRENT CONTROLFILE
FORMAT '/tmp/control01.ctl';
BACKUP DEVICE TYPE sbt
CONTROLFILECOPY '/tmp/control01.ctl';
A snapshot control file is not needed when backing up a control file copy.
If the control file autobackup feature is enabled, then RMAN makes two control file backups in these examples: the explicit backup of the files specified in the BACKUP
command and the control file and server parameter file autobackup.
See Also:
Oracle Database Backup and Recovery Reference to learn about the CONFIGURE CONTROLFILE AUTOBACKUP
command
9.3.4 Backing Up Server Parameter Files with RMAN
RMAN automatically backs up the current server parameter file in certain cases. The BACKUP
SPFILE
command backs up the parameter file explicitly. The server parameter file that is backed up is the one currently in use by the instance.
To back up the server parameter file:
See Also:
9.3.5 Backing Up a Database in NOARCHIVELOG Mode
You can only back up a database in NOARCHIVELOG
mode when the database is closed and in a consistent state.
The script shown in Example 9-14 puts the database into the correct mode for a consistent, whole database backup and then backs up the database. The script assumes that control file autobackup is enabled for the database.
You can skip tablespaces, such as read-only tablespaces, but any skipped tablespace that has not been offline or read-only since its last backup is lost if the database has to be restored from a backup.
Example 9-14 Backing Up a Database in NOARCHIVELOG Mode
SHUTDOWN IMMEDIATE;
# Start the database in case it suffered instance failure or was
# closed with SHUTDOWN ABORT before starting this script.
STARTUP FORCE DBA;
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
# this example uses automatic channels to make the backup
BACKUP
INCREMENTAL LEVEL 0
MAXSETSIZE 10M
DATABASE
TAG 'BACKUP_1';
# Now that the backup is complete, open the database.
ALTER DATABASE OPEN;
9.3.6 Creating a Preplugin Backup of the Whole Database
Preplugin backups ensure that an RMAN backup is usable after a non-CDB is plugged in as a PDB into a CDB.
Starting with Oracle Database Release 18c, you can create preplugin backups of non-CDBs. The preplugin backups are used for restore and recover operations after this non-CDB is plugged in as a PDB in a destination CDB. Preplugin backups can be either tape and disk backups.
To create a preplugin backup of a non-CDB:
See Also:
9.4 Backing Up CDBs and PDBs
Use the BACKUP
command to back up multitenant container databases (CDBs) and pluggable databases (PDBs).
This section contains the following topics:
-
Backing Up the Root with Oracle Enterprise Manager Cloud Control
-
Backing Up PDBs with Oracle Enterprise Manager Cloud Control
Note:
Backups of a non-CDB are not usable after the non-CDB is plugged in as a PDB into another CDB.
See Also:
Oracle Database Concepts for an introduction to PDBs
9.4.1 About Backing Up CDBs and PDBs
RMAN and Oracle Enterprise Manager Cloud Control provide full support for backup and recovery in a multitenant environment.
The multitenant architecture enables an Oracle Database to function as a CDB. You can back up and recover a whole CDB, the root only, or one or more pluggable databases (PDBs). You can also back up and recover individual tablespaces and data files in a PDB.
You might want to perform nightly backups of the whole multitenant container database (CDB) by using an incremental backup strategy, or you might want to make frequent separate backups of individual PDBs and do less frequent backups of either the whole CDB or of the root.
In terms of the ability to recover from data loss, separately backing up the root and all PDBs, including the CDB seed, is equivalent to backing up the whole CDB. The main difference is in the number of RMAN commands that you must enter and the time to recover. Recovering a whole CDB requires less time than recovering the root plus all PDBs.
If the compatibility parameter for CDBs and PDBs is set to 12.2 or higher, RMAN also enables you to perform sparse backups on your CDB and PDB. These backups copy the latest updates from the delta storage space assigned to each database.
See Also:
About Sparse Backups for more information on sparse backups
9.4.2 Backing Up a Whole CDB
Backing up a whole multitenant container database (CDB) is similar to backing up a non-CDB. When you back up a whole CDB, RMAN backs up the root, all the pluggable databases (PDBs), and the archived redo logs.
The BACKUP
command is used to back up CDBs. You can then recover either the whole CDB, the root only, or one or more PDBs from the CDB backup.
To backup up a whole CDB:
Note:
Proxy PDBs are not backed up while backing up a CDB.
9.4.3 Backing Up the Root with RMAN
You can use RMAN to make a backup of only the root. Because the root contains critical metadata for the whole CDB, Oracle recommends that you back up the root or back up the whole CDB at regular intervals.
To back up the root with RMAN:
9.4.4 Backing Up the Root with Oracle Enterprise Manager Cloud Control
Oracle Enterprise Manager Cloud Control (Cloud Control) can be used to back up the root.
Use the following steps to back up the root with Cloud Control:
9.4.5 Backing Up PDBs with RMAN
RMAN enables you to back up one or more PDBs in a CDB using the BACKUP
command.
There are two approaches to backing up a PDB with RMAN:
-
Connect to the root and then use the
BACKUP PLUGGABLE DATABASE
command. This approach enables you to back up multiple PDBs with a single command.When you connect to the root and back up a PDB, this backup is visible to the root and to that particular PDB but not to the other PDBs.
-
Connect to the PDB and use the
BACKUP DATABASE
command. This approach backs up only a single PDB and enables you to use the same commands used for backing up non-CDBs.Backups created when connected to any PDB are visible when connected to the root.
When you back up individual PDBs, the archived redo logs are not backed up.
To back up one or more PDBs while connected to the root:
-
Start RMAN. Connect to the root as a common user with the
SYSBACKUP
orSYSDBA
privilege and to a recovery catalog (if used), as described in Connecting as Target to the Root. -
Issue a
BACKUP PLUGGABLE DATABASE
command at the RMAN prompt.The following example backs up the PDBs
sales
andhr
:BACKUP PLUGGABLE DATABASE sales, hr;
To back up one PDB while connected to the PDB:
Note:
Backing up a proxy PDB using RMAN is not supported.
Note:
PDB backups can be used to perform media recovery only if the backups include all the archived redo log files that contain changes for this PDB. When creating a backup while connected to the PDB, there may be some situations in which all the required logs are not backed up.
9.4.6 Creating Preplugin Backups of PDBs Using RMAN
Preplugin backups of a PDB can be used to perform restore and recover operations after the PDB is migrated and plugged in to a different destination CDB.
Starting with Oracle Database Release 18c, you can create preplugin backups of PDBs to disk and tape.
Note:
The destination CDB does not manage backups created on the source CDB after it has been plugged in to the destination CDB.
To create preplugin backups of a PDB:
The metadata that is required for these preplugin backups to be usable in a destination CDB is included in the XML file created when the PDB is unplugged from the source CDB.
See Also:
9.4.7 Backing Up PDBs with Oracle Enterprise Manager Cloud Control
Oracle Enterprise Manager Cloud Control (Cloud Control) can be used to perform backups of pluggable databases (PDBs).
To back up one or more PDBs with Cloud Control, complete the following steps:
-
From the Database Home page, select Backup & Recovery from the Availability menu, and then select Schedule Backup.
-
If you have not logged in to the database previously, then the Database Login page is displayed. Log in to the database using Named or New credentials and then click Login.
Cloud Control displays the Schedule Backup page.
-
From the Customized Backup section, select Pluggable Databases, and then click Schedule Customized Backup.
The Schedule Backup Wizard appears and displays the Pluggable Databases page.
-
Select the PDBs that you want to back up by following these steps:
-
Click Add to display the Available Pluggable Databases page.
-
From the list of PDBs shown, click in the Select column to designate the PDBs you want to back up. Optionally, you can click Select All to turn on the Select option for all available PDBs. Click Select None to deselect all PDBs.
-
Click the Select button to return to the Pluggable Databases page.
-
Optionally, you can remove PDBs from the table by clicking in the Select column for each PDB that you want to remove and then clicking Remove.
-
-
Click Next to move to the Options page of the wizard.
-
Complete the wizard by navigating the remainder of the pages to back up the PDBs. For more information about each page of the wizard, click Help.
9.4.8 Backing Up Tablespaces and Data Files in a PDB
Because tablespaces in different PDBs can have the same name, to eliminate ambiguity you must connect directly to a PDB to back up one or more of its tablespaces.
In contrast, because data file numbers and paths are unique across the CDB, you can connect to either the root or a PDB to back up PDB data files. If you connect to the root, you can back up data files from multiple PDBs with a single command. If you connect to a PDB, you can back up only data files in that PDB.
To back up tablespaces in a PDB:
-
Start RMAN. Connect to the PDB as a local user with the
SYSBACKUP
orSYSDBA
privilege and to a recovery catalog (if used), as described in Connecting as Target to a PDB. -
Issue a
BACKUP TABLESPACE
command.The following example backs up the tablespaces
users
andexamples
to the configured default device.BACKUP TABLESPACE users, examples;
To back up data files in a PDB:
9.5 Backing Up Application Containers
RMAN enables you to use the BACKUP
command to perform backup operations on the application root, one or more application PDBs, and the application container.
9.5.1 About Backing Up Application Containers
RMAN can back up application containers, application PDBs, and the application root.
An application container is an optional component of a CDB that stores data for one or more applications and shares application metadata and common data. A CDB can contain zero or more application containers. An application container consists of exactly one application root (different from the root in its CDB) and one or more application PDBs. The application root serves as the parent container to all the application PDBs plugged into it.
An application container typically contains one or more application common users. An application common user can only connect to the application root in which it was created or a PDB that is plugged in to this application root. An application root has its own service name, and you can connect to the application root in the same way that you connect to a PDB.
To perform backup and recovery tasks for the application root or application PDBs, you connect either to the application root or CDB root.
See Also:
-
Oracle Database Concepts for conceptual information about application containers
-
Oracle Database Administrator’s Guide for information about creating application containers
9.5.2 Backing Up the Application Root
Use the RMAN BACKUP
command to back up the application root.
The COMPATIBLE
parameter for the CDB must be set to 19.0 or higher.
To back up the application root:
See Also:
9.5.3 Backing Up the Application Root and its Application PDBs
Use the BACKUP
command to back up an application container, which consists of the application root and all the application PDBs that belong to the application root.
The COMPATIBLE
parameter for the CDB must be set to 12.2 or higher.
- Start RMAN and connect to the CDB root as a common user with the
SYSDBA
orSYSBACKUP
privilege. - Use the following command, where
hr_appcont
is the name of the application root:BACKUP PLUGGABLE DATABASE hr_appcont
See Also:
9.6 Backing Up Sparse Databases with RMAN
Use the BACKUP
command to back up sparse databases.
Note:
The base (read-only) data files in a sparse database are not encrypted. Ensure that the base data files are stored in a protected storage and accessed using secured communications.
9.6.1 Backing Up a Sparse Database with RMAN
RMAN enables you to back up a sparse database, using steps similar to backing up a whole database, in the backup set or image copy format.
The difference while backing up a sparse database is that RMAN backs up data only from the delta storage space of the database, which contains the latest changes made to the data blocks within the sparse database.
-
The base database for your sparse database must be read-only
-
The
COMPATIBLE
initialization parameter of the database being backed up must be set to 12.2 or higher.
To back up a sparse database
9.6.2 Backing Up Sparse Tablespaces and Data Files with RMAN
You can back up one or more tablespaces containing sparse data files or individual sparse data files using the BACKUP
command.
BACKUP
command to individual data files that are sparse compatible. Similarly, only data files containing sparse data blocks are eligible for a sparse backup. RMAN creates sparse backups of sparse data files and non-sparse backups of non-sparse data files.
COMPATIBLE
initialization parameter set to 12.2 or higher.
To back up sparse tablespaces or data files:
9.6.3 Backing Up a Sparse CDB with RMAN
BACKUP
command.
COMPATIBLE
initialization parameter of your CDB is set to 12.2 or higher.
To back up a sparse CDB:
9.6.4 Backing Up a Sparse PDB with RMAN
RMAN enables you to back up one or more sparse PDBs in a CDB.
COMPATIBLE
initialization parameter is set to 12.2 or higher.
To back up a sparse PDB while connected to root:
-
Start RMAN and connect to the root as a common user with the
SYSBACKUP
orSYSDBA
privilege as described in Connecting as Target to the Root. -
Run the
BACKUP
command for the pluggable database. Specify the format for your backup:-
To create your backup in the backup set format, use the
AS SPARSE BACKUPSET
option. The following example performs a sparse backup in the backup set format:BACKUP AS SPARSE BACKUPSET PLUGGABLE DATABASE PDB1;
-
To create your backup in the image copy format use the
AS SPARSE COPY
option. The following example performs a backup in the image copy format:BACKUP AS SPARSE COPY PLUGGABLE DATABASE PDB1;
-
To create your backup in the compressed backup set format use the
COMPRESSED BACKUPSET
option. The following example performs a backup in the compressed backups set format:BACKUP AS SPARSE COMPRESSED BACKUPSET PLUGGABLE DATABASE PDB1;
-
To back up a sparse PDB while connected to the PDB:
9.7 Backing Up Archived Redo Logs with RMAN
Archived redo logs are the key to successful media recovery. You should back them up regularly.
This section contains the following topics:
9.7.1 About Backups of Archived Redo Logs for non-CDBs
Several features of RMAN backups are specific to archived redo logs. For example, you can use BACKUP ... DELETE
to delete one or all copies of archived redo logs from disk after backing them up to backup sets.
This section contains the following topics:
9.7.1.1 About Archived Redo Log Failover
Even if your redo logs are being archived to multiple destinations and you use RMAN to back up archived redo logs, RMAN selects only one copy of the archived redo log file to include in the backup set. Because logs with the same log sequence number are identical, RMAN does not need to include more than one log copy.
The archived redo log failover feature enables RMAN to complete a backup even when some archiving destinations are missing logs or contain logs with corrupt blocks. If at least one log corresponding to a given log sequence and thread is available in the fast recovery area or any of the archiving destinations, then RMAN tries to back it up. If RMAN finds a corrupt block in a log file during backup, it searches other destinations for a copy of that log without corrupt blocks.
For example, assume that you archive logs 121 through 124 to two destinations: /arch1
and /arch2
. Table 9-1 shows the archived redo log records in the control file.
Table 9-1 Sample Archived Redo Log Records
Sequence | File Name in /arch1 | File Name in /arch2 |
---|---|---|
121 |
|
|
122 |
|
|
123 |
|
|
124 |
|
|
However, unknown to RMAN, a user deletes logs 122 and 124 from the /arch1
directory. Afterward, you run the following backup:
BACKUP ARCHIVELOG
FROM SEQUENCE 121
UNTIL SEQUENCE 125;
With failover, RMAN completes the backup, using logs 122 and 124 in /arch2
.
9.7.1.2 About Online Redo Log Switching
Automatic online redo log switching is an important RMAN feature.
To make an open database backup of archived redo logs that includes the most recent online redo log, you can execute the BACKUP
command with any of the following clauses:
-
PLUS ARCHIVELOG
-
ARCHIVELOG ALL
-
ARCHIVELOG FROM ...
Before beginning the backup, RMAN switches out of the current redo log group, and archives all online redo logs that have not yet been archived, up to and including the redo log group that was current when the command was issued. This feature ensures that the backup contains all redo generated before the start of the command.
An effective way of backing up archived redo logs is the BACKUP
...
PLUS
ARCHIVELOG
command, which causes RMAN to do the following:
-
Run the
ALTER SYSTEM
ARCHIVE
LOG
CURRENT
statement. -
Run
BACKUP ARCHIVELOG ALL
. If backup optimization is enabled, then RMAN skips logs that it has already backed up to the specified device. -
Back up the rest of the files specified in the
BACKUP
command. -
Run the
ALTER SYSTEM ARCHIVE LOG CURRENT
statement. -
Back up any remaining archived logs generated during the backup. If backup optimization is not enabled, then RMAN backs up the logs generated in Step 1 plus all the logs generated during the backup.
The preceding steps guarantee that data file backups taken during the command are recoverable to a consistent state. Also, unless the online redo log is archived at the end of the backup, DUPLICATE
is not possible with the backup.
9.7.2 About Backup of Archived Redo Logs in CDBs
In a CDB, archived redo logs can be backed up only when you connect to the root as a common user with the SYSDBA
or SYSBACKUP
privilege.
When you connect to a PDB as a local user with SYSDBA
or SYSBACKUP
privilege, you cannot back up or delete archived redo logs.
If your archived redo logs are being copied to multiple destinations, when you connect to the root and backup archived redo log files, RMAN includes only one copy of the archived redo log files in a backup. You can switch archived redo log files when you connect to root of a CDB. Therefore, the information in "About Archived Redo Log Failover" and "About Online Redo Log Switching" is applicable when you connect to the root. However, you cannot backup or switch archived redo log files when connected to a PDB.
See Also:
9.7.3 Backing Up Archived Redo Log Files in non-CDBs
To back up archived logs, use the BACKUP
ARCHIVELOG
command.
If backup optimization is enabled, then RMAN skips backups of archived logs that have already been backed up to the specified device.
To back up archived redo log files:
9.7.4 Backing Up Only Archived Redo Logs That Need Backups in non-CDBs
You can indicate that RMAN should automatically skip backups of archived redo logs.
Use one of the following techniques:
-
Configure backup optimization.
If you enable backup optimization, then the
BACKUP ARCHIVELOG
command skips backing up files when an identical archived log has been backed up to the specified device type. An archived log is considered identical to another when it has the same DBID, thread, sequence number, andRESETLOGS
SCN and time. -
Configure an archived redo log deletion policy.
If the deletion policy is configured with the
BACKED UP
integer
TIMES
clause, then aBACKUP ARCHIVELOG
command copies the logs unlessinteger
backups exist on the specified device type. Ifinteger
backups of the logs exist, then theBACKUP ARCHIVELOG
command skips the logs.
The BACKUP ... NOT BACKED UP
integer
TIMES
command specifies that RMAN backs up only those archived log files that have not been backed up at least integer
times to the specified device. To determine the number of backups for a file, RMAN only considers backups created on the same device type as the current backup.
The BACKED UP
clause is a convenient way to back up archived logs to a specified device type. For example, you can specify that RMAN should keep two copies of each archived redo log on tape and skip additional backups.
To back up archived redo logs that need backups:
See Also:
-
Using Backup Optimization to Skip Files for scenarios using
NOT BACKED UP
9.7.5 Backing Up Archived Redo Logs in CDBs
You can back up archived redo logs in a multitenant container database (CDB) by using the BACKUP ARCHIVELOG
command.
To back up archived redo logs in a CDB:
-
Start RMAN and connect to the root as a user with the
SYSDBA
orSYSBACKUP
privilege as described in Connecting as Target to the Root. -
Ensure that the target CDB is mounted or open.
-
Execute the
BACKUP ARCHIVELOG
orBACKUP ... PLUS ARCHIVELOG
command.The following example backs up the database and all archived redo logs:
BACKUP DATABASE PLUS ARCHIVELOG;
The following example uses a configured disk or SBT channel to back up one copy of each log sequence number for all archived redo logs:
BACKUP ARCHIVELOG ALL;
To back up only archived redo logs that need backup in a CDB:
-
Start RMAN and connect to the root as a common user with the
SYSDBA
orSYSBACKUP
privilege. -
Ensure that the target CDB is mounted or open.
-
Ensure that appropriate channels are configured for the backup.
-
Configure RMAN to automatically skip backups of archived redo logs. Use one of the following techniques:
-
Configure backup optimization so that the
BACKUP ARCHIVELOG
command skips backing up files when an identical archived log has been backed up to the specified device type. -
Configure an archived redo log retention policy using the
BACKED UP
integerTIMES
clause. ABACKUP ARCHIVELOG
command will copy the logs unless integer backups exist on the specified device type.
-
-
Execute the
BACKUP ARCHIVELOG
command with theNOT BACKED UP
clause.BACKUP ARCHIVELOG ALL NOT BACKED UP 2 TIMES;
9.7.6 Deleting Archived Redo Logs After Backups in non-CDBs
The BACKUP ARCHIVELOG
... DELETE INPUT
command deletes archived log files after they are backed up. This command eliminates the separate step of manually deleting archived redo logs.
With DELETE INPUT
, RMAN deletes only the specific copy of the archived log chosen for the backup set. With DELETE ALL INPUT
, RMAN deletes each backed-up archived redo log file from all log archiving destinations.
The BACKUP ... DELETE INPUT
and DELETE ARCHIVELOG
commands obey the archived redo log deletion policy for logs in all archiving locations. For example, if you specify that logs be deleted only when backed up at least twice to tape, then BACKUP ... DELETE
honors this policy.
For the following procedure, assume that you archive to /arc_dest1
, /arc_dest2
, and the fast recovery area.
To delete archived redo logs after a backup:
See Also:
-
Oracle Data Guard Concepts and Administration to learn about archived redo log management with standby databases
-
Oracle Database Backup and Recovery Reference to learn about the
CONFIGURE ARCHIVELOG DELETION POLICY
andDELETE ARCHIVELOG
commands
9.7.7 Deleting Archived Redo Logs After Backups in CDBs
In a CDB, you can delete archived redo logs after they are backed up by using the BACKUP ARCHIVELOG ... DELETE INPUT
command.
To delete archived redo logs in a CDB after they are backed up:
-
Start RMAN and connect to the root as a user with the
SYSDBA
orSYSBACKUP
privilege as described in Making Database Connections with RMAN. -
Ensure that the target database is mounted or open.
-
Run the
BACKUP
command with theDELETE INPUT
clause.
See Also:
Oracle Database Backup and Recovery Reference for information about the BACKUP
command
9.8 Making and Updating RMAN Incremental Backups
An incremental backup copies only data file blocks that have changed since a specified previous backup. Use the BACKUP
command to create incremental backups.
An incremental backup is either a cumulative incremental backup or a differential incremental backup.
Although the content of the backups is the same, BACKUP DATABASE
and BACKUP INCREMENTAL LEVEL 0 DATABASE
are different. A full backup is not usable as part of an incremental strategy, whereas a level 0 incremental backup is the basis of an incremental strategy. No RMAN command can change a full backup into a level 0 incremental backup.
As with full backups, RMAN can make incremental backups of an ARCHIVELOG
mode database that is open. If the database is in NOARCHIVELOG
mode, then RMAN can make incremental backups only after a consistent shutdown.
This section contains the following topics:
9.8.1 Purpose of RMAN Incremental Backups
RMAN incremental backups provide multiple benefits.
The primary reasons for making incremental backups part of your strategy are:
-
Faster daily backups if block change tracking is enabled (see "Using Block Change Tracking to Improve Incremental Backup Performance")
-
Ability to roll forward data file image copies, thereby reducing recovery time and avoiding repeated full backups
-
Less bandwidth consumption when backing up over a network
-
Improved performance when the aggregate tape bandwidth for tape write I/Os is much less than the aggregate disk bandwidth for disk read I/Os
-
Possibility of recovering changes to objects created with the
NOLOGGING
optionFor example, direct load inserts do not create redo log entries, so their changes cannot be reproduced with media recovery. Direct load inserts do change data blocks, however, and these blocks are captured by incremental backups.
-
Ability to synchronize a physical standby database with the primary database
You can use the RMAN
BACKUP INCREMENTAL FROM SCN
command to create a backup on the primary database that starts at the current SCN of the standby database, which you can then use to roll forward the standby database. See Oracle Data Guard Concepts and Administration to learn how to apply incremental backups to a standby database.
See Also:
Oracle Database Administrator’s Guide for more information about NOLOGGING
mode
9.8.2 Planning an Incremental Backup Strategy
Choose a backup strategy according to an acceptable MTTR (mean time to recover).
For example, you can implement a three-level backup scheme so that a level 0 backup is taken monthly, a cumulative level 1 is taken weekly, and a differential level 1 is taken daily. In this strategy, you never have to apply more than a day of redo for complete recovery.
When deciding how often to take level 0 backups, a general rule is to take a new level 0 backup whenever 20% or more of the data has changed. If the rate of change to your database is predictable, then you can observe the size of your incremental backups to determine when a new level 0 backup is appropriate. The following SQL query determines the number of blocks written to an incremental level 1 backup of each data file with at least 20% of its blocks backed up:
SELECT FILE#, INCREMENTAL_LEVEL, COMPLETION_TIME,
BLOCKS, DATAFILE_BLOCKS
FROM V$BACKUP_DATAFILE
WHERE INCREMENTAL_LEVEL > 0
AND BLOCKS / DATAFILE_BLOCKS > .2
ORDER BY COMPLETION_TIME;
Compare the number of blocks in level 1 backups to a level 0 backup. For example, if you create only level 1 cumulative backups, then take a new level 0 backup when the most recent level 1 backup is about half the size of the level 0 backup.
An effective way to conserve disk space is to make incremental backups to disk, and then offload the backups to tape with the BACKUP
AS
BACKUPSET
command. Incremental backups are generally smaller than full backups, which limits the space required to store them until they are moved to tape. When the incremental backups on disk are backed up to tape, the tape is more likely to stream because all blocks of the incremental backup are copied to tape. There is no possibility of delay due to time required for RMAN to locate changed blocks in the data files.
Another strategy is to use incrementally updated backups, as explained in "Incrementally Updating Backups". In this strategy, you create an image copy of each data file, and then periodically roll forward this copy by making and then applying a level 1 incremental backup. In this way you avoid the overhead of making repeated full image copies of your data files, but enjoy all of the advantages.
In a Data Guard environment, you can offload incremental backups to a physical standby database. Incremental backups of a standby and primary database are interchangeable. Thus, you can apply an incremental backup of a standby database to a primary database, or apply an incremental backup of a primary database to a standby database.
See Also:
Oracle Data Guard Concepts and Administration to learn how to back up a standby database with RMAN. In particular, consult Chapter 10, "Managing Physical and Snapshot Standby Databases"
9.8.3 Making Incremental Backups
After starting RMAN, run the BACKUP
INCREMENTAL
command at the RMAN prompt. By default incremental backups are differential.
To make an incremental backup:
9.8.3.1 Making Incremental Backups of a VSS Snapshot
You can use the Volume Shadow Copy Service (VSS) with the Oracle VSS writer to make a shadow copy or snapshot of files in a database.
You must use a third-party backup program other than RMAN to make VSS snapshots with the Oracle VSS writer. In this case, the fast recovery area automates management of files that are backed up in a VSS snapshot and deletes them as needed.
You can use the BACKUP INCREMENTAL LEVEL 1 ... FROM SCN
command in RMAN to create incremental backups in the fast recovery area. Thus, you can use this command to create an incremental level 1 backup of a VSS shadow copy. RMAN can apply incremental backups during recovery transparently.
See Also:
Oracle Database Administrator’s Reference for Microsoft Windows to learn how to make VSS backups with RMAN
9.8.4 Incrementally Updating Backups
By incrementally updating backups, you can avoid the overhead of making full image copy backups of data files, while also minimizing time required for media recovery of your database. For example, if you run a daily backup script, then you never have more than 1 day of redo to apply for media recovery.
To incrementally update data file backups:
- Create a full image copy backup of a data file with a specified tag.
- At regular intervals (such as daily), make a level 1 differential incremental backup of the data file and use the same tag as the base data file copy.
- Apply the incremental backup to the most recent backup with the same tag.
This technique rolls forward the backup to the time when the level 1 incremental backup was made. RMAN can restore this incremental forever and apply changes from the redo log. The result equals restoring a data file backup taken at the SCN of the most recently applied incremental level 1 backup.
Note:
If you run RECOVER COPY
daily without specifying an UNTIL TIME
, then a continuously updated image copy cannot satisfy a recovery window of more than a day. The incrementally updated backup feature is an optimization for fast media recovery.
9.8.4.1 Incrementally Updating Backups: Basic Example
To create incremental backups for use in an incrementally updated backup strategy, use the BACKUP ...
FOR
RECOVER
OF
COPY
WITH
TAG
form of the BACKUP
command. The command is best understood in a sample script that implements the strategy.
The script in Example 9-15, run regularly, is all that is required to implement a strategy based on incrementally updated backups.
Example 9-15 Basic Incremental Update Script
RUN
{
RECOVER COPY OF DATABASE
WITH TAG 'incr_update';
BACKUP
INCREMENTAL LEVEL 1
FOR RECOVER OF COPY WITH TAG 'incr_update'
DATABASE;
}
To understand the script and the strategy, you must understand the effects of these two commands when no data file copies or incremental backups exist. Note two important features:
-
The
BACKUP
command in Example 9-15 does not always create a level 1 incremental backup. -
The
RECOVER
command in Example 9-15 causes RMAN to apply any available incremental level 1 backups with the specified tag to a set of data file copies with the same tag.
Table 9-2 shows the effect of the script when it is run once per day starting on Monday.
Table 9-2 Effect of Basic Script When Run Daily
Command | Monday | Tuesday | Wednesday | Thursday Onward |
---|---|---|---|---|
|
Because no incremental backup or data file copy exists, the command generates a message (but not an error). That is, the command has no effect. |
A database copy now exists, but no incremental level 1 backup exists with which to recover it. Thus, the |
The level 1 incremental backup made on Tuesday is applied to the database copy, bringing the copy up to the checkpoint SCN of the level 1 incremental backup. |
The level 1 incremental backup made yesterday is applied to the database copy, bringing the copy up to the checkpoint SCN of the level 1 incremental backup. |
|
No level 0 image copy exists, so the command creates an image copy of the database and applies the tag Note: If the script sets |
The command makes an incremental level 1 backup and assigns it the tag |
The command makes an incremental level 1 backup and assigns it the tag |
The command makes an incremental level 1 backup and assigns it the tag |
Note the following additional details about Example 9-15:
-
Each time a data file is added to the database, an image copy of the new data file is created the next time the script runs. The next run makes the first level 1 incremental for the added data file. On all subsequent runs the new data file is processed like any other data file.
-
You must use tags to identify the data file copies and incremental backups in this strategy so that they do not interfere with other backup strategies. If you use multiple incremental backup strategies, then RMAN cannot unambiguously create incremental level 1 backups unless you tag level 0 backups.
The incremental level 1 backups to apply to those image copies are selected based upon the tag of the image copy data files and the available incremental level 1 backups. The tag is essential in the selection of the incremental level backups.
-
After the third run of the script, the following files are available for a point-in-time recovery:
-
An image copy of the database, as of the checkpoint SCN of the preceding run of the script, 24 hours earlier
-
An incremental backup for the changes after the checkpoint SCN of the preceding run
-
Archived redo logs including all changes between the checkpoint SCN of the image copy and the current time
If you must restore and recover your database during the following 24 hours, then you can restore the data files from the incrementally updated data file copies. You can then apply changes from the most recent incremental level 1 and the redo logs to reach the desired SCN. At most, you have 24 hours of redo to apply, which limits how long point-in-time recovery takes to finish.
-
9.8.4.2 Incrementally Updated Backups: Advanced Example
You can extend the basic script in Example 9-15 to provide fast recoverability to a window greater than 24 hours. Example 9-16 shows how to maintain a window of 7 days by specifying the beginning time of your window of recoverability in the RECOVER
command.
Example 9-16 Advanced Incremental Update Script
RUN
{
RECOVER COPY OF DATABASE
WITH TAG 'incr_update'
UNTIL TIME 'SYSDATE - 7';
BACKUP
INCREMENTAL LEVEL 1
FOR RECOVER OF COPY WITH TAG 'incr_update'
DATABASE;
}
Table 9-3 shows the effect of the script when it is run once per day starting on Monday, January 1.
Table 9-3 Effect of Advanced Script When Run Daily
Command | Monday 1/1 | Tuesday 1/2 - Monday 1/8 | Tuesday 1/9 | Wednesday 1/10 Onward |
---|---|---|---|---|
|
Because no incremental backup or data file copy exists, the command generates a message (but not an error). That is, the command has no effect. |
A database copy exists, but |
|
The database copy is updated with the incremental backup made 7 days ago, bringing the copy up to the checkpoint SCN of the level 1 incremental backup. |
|
No level 0 image copy exists, so the command creates an image copy of the database and applies the tag Note: If the script sets |
The command makes an incremental level 1 backup and assigns it the tag |
The command makes an incremental level 1 backup and assigns it the tag |
The command makes an incremental level 1 backup and assigns it the tag |
As with the basic script in Example 9-15, you have fast recoverability to any point in time between the SCN of the data file copies and the present. RMAN can use both block changes from the incremental backups and individual changes from the redo logs. Because you have the daily level 1 incremental backups, you never need to apply more than 1 day of redo.
See Also:
Oracle Database Backup and Recovery Reference to learn about the RECOVER
command
9.8.5 Creating a Base Backup of New Data Files
When you use an automated backup strategy that includes scheduled archived redo logs backups, you must back up new data files that have not yet been included in a level 0 or level 1 backup.
If one or more data files are created as part of a transportable tablespace import, plugging in a pluggable database (PDB), or creating a PDB, the archived redo logs created after the data files are created will include changes to these data files. However, there is no base backup of the new data files to which the changes in the archived redo log files can be applied. For the new data files to be recoverable, a base backup of these data files is essential.
Based on your backup strategy, use one of the following techniques to create a base backup of data files added as part of the operations described in the this topic:
9.8.6 Using Block Change Tracking to Improve Incremental Backup Performance
The block change tracking feature for incremental backups improves backup performance by recording changed blocks for each data file.
This section contains the following topics:
9.8.6.1 About Block Change Tracking
If block change tracking is enabled on a primary or standby database, then RMAN uses a block change tracking file to identify changed blocks for incremental backups. By reading this small bitmap file to determine which blocks changed, RMAN avoids having to scan every block in the data file that it is backing up.
Block change tracking is disabled by default. Nevertheless, the benefits of avoiding full data file scans during backup are considerable, especially if only a small percentage of data blocks are changed between backups. If your backup strategy involves incremental backups, then block change tracking is recommended. Block change tracking does not change the commands used to perform incremental backups. The block change tracking file requires no maintenance after initial configuration.
You can only enable block change tracking at a physical standby database if a license for the Oracle Active Data Guard option is enabled.
9.8.6.1.1 About Space Management in the Block Change Tracking File
Oracle Database automatically manages space in the change tracking file to retain block change data that covers the eight most recent backups. After the maximum of eight bitmaps is reached, the oldest bitmap is overwritten by the bitmap that tracks the current changes.
The block change tracking file maintains bitmaps that mark changes in the data files between backups. The database performs a bitmap switch before each backup.
The first level 0 incremental backup scans the entire data file. Subsequent incremental backups use the block change tracking file to scan only the blocks that have been marked as changed since the last backup. An incremental backup can be optimized only when it is based on a parent backup that was made after the start of the oldest bitmap in the block change tracking file.
Consider the eight-bitmap limit when developing your incremental backup strategy. For example, if you make a level 0 database backup followed by seven differential incremental backups, then the block change tracking file now includes eight bitmaps. If you then make a cumulative level 1 incremental backup, then RMAN cannot optimize the backup, because the bitmap corresponding to the parent level 0 backup is overwritten with the bitmap that tracks the current changes.
9.8.6.1.2 Location of the Block Change Tracking File
By default, the block change tracking file is created as an Oracle managed file in the destination specified by the DB_CREATE_FILE_DEST
initialization parameter. You can also place the block change tracking file in any location that you choose, by specifying its name when enabling block change tracking.
One block change tracking file is created for the whole database. Oracle recommends against using a raw device (that is, a disk without a file system) as a change tracking file.
Note:
In an Oracle Real Application Clusters (Oracle RAC) environment, the change tracking file must be located on shared storage accessible from all nodes in the cluster.
RMAN does not support backup and recovery of the change tracking file. The database resets the change tracking file when it determines that the change tracking file is invalid. If you restore and recover the whole database or a subset, then the database resets the block change tracking file and starts tracking changes again. After you make a level 0 incremental backup, the next incremental backup can use change tracking data.
9.8.6.1.3 About the Size of the Block Change Tracking File
The size of the block change tracking file is proportional to the size of the database and the number of enabled threads of redo.
The size of the block change tracking file can increase and decrease as the database changes. The size is not related to the frequency of updates to the database. Typically, the space required for block change tracking for a single instance is approximately 1/30,000 the size of the data blocks to be tracked. For an Oracle RAC environment, it is 1/30,000 of the size of the database, times the number of enabled threads.
The following factors that may cause the file to be larger than this estimate suggests:
-
To avoid the overhead of allocating space as your database grows, the block change tracking file size starts at 10 megabytes. New space is allocated in 10 MB increments. Thus, for any database up to approximately 300 gigabytes, the file size is no smaller than 10 MB, for up to approximately 600 gigabytes the file size is no smaller than 20 megabytes, and so on.
-
For each data file, a minimum of 320 kilobytes of space is allocated in the block change tracking file, regardless of the size of the data file. Thus, if you have a large number of relatively small data files, the change tracking file is larger than for databases with a smaller number of larger data files containing the same data.
9.8.6.2 Enabling and Disabling Block Change Tracking
You can enable block change tracking when the database is either open or mounted.
This section assumes that you intend to create the block change tracking file as an Oracle managed file in the database area, which is where the database maintains active database files such as data files, control files, and online redo log files. See "Overview of Files in the Fast Recovery Area" to learn about the database area and fast recovery area.
To enable block change tracking:
9.8.6.3 Disabling Block Change Tracking
When you disable block change tracking, the database removes the block change tracking file from the operating system.
This section assumes that the block change tracking feature is currently enabled.
To disable block change tracking:
9.8.6.4 Checking Whether Change Tracking Is Enabled
You can query the V$BLOCK_CHANGE_TRACKING
view to determine whether change tracking is enabled, and if it is, the file name of the block change tracking file.
To determine whether change tracking is enabled:
Enter the following query in SQL*Plus (sample output included):
COL STATUS FORMAT A8
COL FILENAME FORMAT A60
SELECT STATUS, FILENAME
FROM V$BLOCK_CHANGE_TRACKING;
STATUS FILENAME
-------- ------------------------------------------------------------
ENABLED /disk1/bct/RDBMS/changetracking/o1_mf_2f71np5j_.chg
9.8.6.5 Changing the Location of the Block Change Tracking File
To move the change tracking file, use the ALTER DATABASE RENAME FILE
statement.
The database must be mounted. The statement updates the control file to refer to the new location and preserves the contents of the change tracking file. If you cannot shut down the database, then you can disable and enable block change tracking. In this case, you lose the contents of the existing block change tracking file.
To change the location of the change tracking file:
See Also:
Oracle Database SQL Language Reference to learn about the ALTER DATABASE
statement and the ALTER SYSTEM
statement
9.9 Making Database Backups for Long-Term Storage
This section explains the basic concepts and tasks involved in making backups for long-term storage.
This section contains the following topics:
9.9.1 Purpose of Archival Backups
You can use BACKUP... KEEP
to create a backup that is both all-inclusive and exempt from the backup retention policy.
The backup is all-inclusive because every file needed to restore and recover the database is backed up to a single disk or tape location. The KEEP
option also specifies that the backup is exempt from the retention policy either forever or for a specified period. The general name for a backup created with BACKUP ... KEEP
is an archival backup.
As explained in "About Data Archival", one purpose of a backup and recovery strategy is to preserve data. You can use BACKUP ... KEEP
to retain a database backup for longer than the time dictated by the retention policy. For example, you can back up the database on the first day of every year to satisfy a regulatory requirement and store the media off-site. Years after you make the archival backup, you can restore and recover it to query the data as it appeared at the time of the backup.
Another purpose of an archival backup is to create a backup that you want to restore for testing purposes and then delete. For example, you can back up the database, restore the database in a test environment, and then discard the archival backup after the test database is operational. A related purpose is to create a self-contained backup that you can delete after transferring it to another user or host. For example, another user might want a copy of the database for reporting or testing.
9.9.2 Basic Concepts of Archival Backups
You can exempt a backup from the retention policy by using the KEEP
option with the BACKUP
command.
You can also use the KEEP
and NOKEEP
options of the CHANGE
command to change the status of an existing backup. Backups with KEEP
attributes are valid backups that can be recovered like any other backups.
You can specify an end date for an archival backup with the KEEP UNTIL TIME
clause, or specify that the backup is kept FOREVER
. If you specify UNTIL
, then RMAN marks the backup as obsolete when the UNTIL
time has passed, regardless of any configured retention policy. For example, if you specify KEEP UNTIL TIME '01-JAN-13'
, then the backup is obsolete one second after midnight on January 1, 2013. If you specify an UNTIL TIME
of 9:00 p.m, then the backup is obsolete at 9:01 p.m.
When you specify KEEP
on the BACKUP
command, RMAN generates multiple backup sets. Note the following characteristics of the BACKUP ... KEEP
command:
-
It automatically backs up the data files, control file (even if the control file autobackup is disabled), and the server parameter file.
-
It automatically generates an archived redo log backup to ensure that the database backup can be recovered to a consistent state.
-
If the
FORMAT
,POOL
, orTAG
parameters are specified, then they are used for all backups. For this reason, theFORMAT
string must allow for the creation of multiple backup pieces. Specifying the%U
substitution variable is the easiest way to meet this requirement. -
It supports an optional
RESTORE POINT
clause that creates a normal restore point, which is a label for an SCN to which the backup must be recovered to be made consistent. The SCN is captured just after the data file backups complete. RMAN resynchronizes restore points with the recovery catalog and maintains the restore points while the backup exists.
See Also:
-
Listing Restore Points Using the LIST Command for information on how to display restore points
-
Oracle Database Backup and Recovery Reference for
CHANGE
syntax -
Oracle Database Backup and Recovery Reference for
BACKUP ... KEEP
syntax
9.9.3 Making an Archival Backup for Long-Term Storage
Typically, you make an archival backup to tape. Because your data protection backups are most likely to be on a set of tapes that remain accessible and are recycled, it is advisable to reserve a set of tapes for the archival backup.
You can write the archival backup to this special set of tapes and then place them in off-site storage. You can vary the procedure for creating an archival backup by creating a stored script or shell script that updates dynamically. When you run the script, you can dynamically set the name of the restore point, backup format, and so on.
See Also:
-
Creating and Executing Dynamic Stored Scripts to learn how to make archival backups with RMAN command files
9.9.3.1 Making an Archival Backup
Use the BACKUP
command with the KEEP
option to make archival backups.
This scenario makes a long-term archival backup with a backup tag of QUARTERLY
and assigns it to a special family of Oracle Secure Backup tapes reserved for long-term storage. Note the following features of this example:
-
The
FOREVER
keyword indicates that this backup is never eligible for deletion by the backup retention policy. -
The
BACKUP
command creates the restore point namedFY06Q4
to match the SCN at which point this backup is consistent.
To make a long-term archival backup:
See Also:
Overview of Flashback Database, Restore Points and Guaranteed Restore Points to learn about restore points
9.9.4 Making a Temporary Archival Backup
One purpose of an archival backup is to create a test database.
The technique for making a test database is essentially the same as the technique described in "Making an Archival Backup for Long-Term Storage". The difference is that you intend to delete the backup soon after creating it.
You can specify the temporary status of the backup with the BACKUP ... KEEP UNTIL
parameter. Assume that you want to make a backup and then restore it to a new host the same day. In this case, you can specify KEEP UNTIL
TIME SYSDATE+1
to indicate that RMAN overrides the retention policy for this backup for only one day. After one day, the backup becomes obsolete, regardless of any configured backup retention policy.
The command in Example 9-17 makes an archival backup on a temporary disk with the tag TESTDB
. The example creates a normal restore point, which is a label for the time to which the backup is recovered. RMAN only backs up the archived redo logs if the database is open during the backup. Archived logs are not needed for offline backups and so are not backed up.
Example 9-17 Creating a Temporary Archival Backup
BACKUP DATABASE FORMAT '/disk1/oraclebck/%U' TAG TESTDB KEEP UNTIL TIME 'SYSDATE+1' RESTORE POINT TESTDB06;
The recommended technique for restoring an archival backup is to use the DUPLICATE
command.
9.10 Backing Up RMAN Backups
This section explains how to back up backup sets and image copies and contains the following topics:
9.10.1 About Backups of RMAN Backups
You can use the BACKUP BACKUPSET
command to back up backup sets produced by other backup jobs. You can also use BACKUP RECOVERY AREA
to back up recovery files created in the current and all previous fast recovery area destinations.
Recovery files are full and incremental backup sets, control file autobackups, data file copies, and archived redo logs. SBT and disk backups are supported for BACKUP RECOVERY AREA
. For disk backups of the recovery files, you must use the TO DESTINATION
option.
The preceding commands are especially useful in the following scenarios:
-
Ensuring that all backups exist both on disk and on tape.
-
Moving backups from disk to tape and then freeing space on disk. This task is especially important when the database uses a fast recovery area so that the space can be reused as needed.
You can also use the BACKUP COPY OF
command to back up image copies of data files, control files, and archived redo logs. The output of this command can be either backup sets or image copies, so you can generate backup sets from image copies. This form of backup is used to back up a database backup created as image copies on disk to tape.
Note:
In a multitenant environment, you cannot back up backup sets and image copies of PDBs that have been dropped. RMAN skips backing up these backups.
9.10.1.1 About Multiple Copies of RMAN Backup Sets
The BACKUP BACKUPSET
command creates additional copies of backup pieces in a backup set, but does not create a new backup set.
Thus, BACKUP BACKUPSET
is similar to using the DUPLEX
or MAXCOPIES
option of BACKUP
(see "Duplexing Backup Sets"). The extra copy of a backup set created by BACKUP BACKUPSET
is not a new backup set, just as copies of a backup set produced by other forms of the BACKUP
command are not separate backup sets.
9.10.1.2 Viewing the Effect of a Backup Retention Policy on Backups of Backups
For a backup retention policy based on redundancy, a backup set is counted as one instance of a backup. This statement is true even if there are multiple copies of the backup pieces that form the backup set, such as when a backup set has been backed up from disk to tape.
For a recovery window retention policy, either all of the copies of a backup set are obsolete, or none of them are. This point is easiest to grasp when viewing the output of the LIST
and REPORT
commands.
To view the effect of a backup retention policy on backups of backups:
9.10.2 Backing Up Backup Sets with RMAN
Use the BACKUP BACKUPSET
command to copy backup sets from disk to tape.
The procedure in this section assumes that you have configured an SBT device as your default device.
To back up backup sets from disk to tape:
9.10.3 Backing Up Image Copy Backups with RMAN
Use the BACKUP
command to back up image copies to tape.
This section assumes that you have configured an SBT device as your default device.
When you back up image copies that have multiple copies of the data files, specifying tags for the backups makes it easier to identify the input image copy. All image copies of data files have tags. The tag of an image copy is inherited by default when the image copy is backed up as a new image copy.
To back up image copies from disk to tape: