delete::=
maintSpec::=
To delete physical backups and copies as well as do the following:
Update their repository records in the target control file to status DELETED
Remove their repository records from the recovery catalog (if you use a catalog)
When running RMAN interactively, DELETE
displays a list of the files and prompts you for confirmation before deleting any file in the list. When reading commands from a command file, RMAN will not prompt for confirmation.
Relationship Between Repository and Media
The repository record for a backup can sometimes fail to reflect the physical status of the backup. For example, files backed up to disk can be deleted using an operating system utility. The record in the RMAN repository is not updated by the operating system utility, so the RMAN repository still shows the object as available even though it has been deleted. If you do not run the CROSSCHECK
command to update the repository, and if you then run DELETE
against the backup, then the repository shows that the object is AVAILABLE
while the object is in fact missing. The following table indicates the behavior of DELETE
in such situations.
Repository Status | Physical Status | Behavior of DELETE Command |
---|---|---|
AVAILABLE |
Not found on media | Does not delete the object and reports the list of mismatched objects at the end of the job. RMAN does not update the repository status. |
EXPIRED |
Found on media | Does not delete the object and reports the list of mismatched objects at the end of the job. RMAN does not update the repository status. |
UNAVAILABLE |
Any | Removes repository record and deletes object if it exists. All I/O errors are ignored. |
FORCE |
Any | Removes repository record and deletes object if it exists. All I/O errors are ignored. RMAN displays the number of objects deleted at the end of the job. |
The target instance must be started.
The DELETE
command can delete usable backups and copies from prior incarnations.
A maintenance channel is not required when DELETE
is used with a file that is disk-only (that is, an ARCHIVELOG
, DATAFILECOPY
, CONTROLFILECOPY
). Otherwise, you must use a manual or automatic maintenance channel.
If you use DELETE
on files that are not disk-only, and if you have objects created on device types that are not configured for automatic channels, then run manual maintenance commands on these channels. For example, if you created a backup using an sbt
channel, but have only a DISK
channel automatically configured, you must manually allocate an sbt
channel for DELETE
.
Syntax Element | Description |
---|---|
FORCE |
Deletes specified files (whether or not they exist on the media) and removes repository records. RMAN ignores any I/O errors for the deleted objects. RMAN displays the number of deleted objects at the end of the job. |
NOPROMPT |
Deletes specified files without first listing the files or prompting for confirmation. The DELETE NOPROMPT command still displays each item as it is deleted.
By default, |
EXPIRED |
Removes only files whose status in the repository is EXPIRED . RMAN marks backups and copies as expired when you run a CROSSCHECK command and the files are absent or inaccessible. To determine which files are expired, run a LIST EXPIRED command.
If for some reason a backup or copy marked |
maintSpec | Deletes files output by the BACKUP command. For maintSpec options, refer to the parameter descriptions in "maintSpec". |
OBSOLETE |
Deletes backups and datafile copies recorded in the RMAN repository that are obsolete, that is, no longer needed. In addition to obsolete datafile backups, RMAN deletes obsolete archived logs and archived log backups. RMAN determines which backups and copies of datafiles are no longer needed, which in turn determines when logs (and backups of logs) are no longer needed. RMAN considers the creation of a datafile as a backup when deciding which logs to keep.
RMAN first uses the options that you specify with obsOperandList to determine what is obsolete. If you do not specify options in obsOperandList, then RMAN uses the options specified in CONFIGURE Note: Even if you use a |
obsOperandList | Specifies the criteria for determining which backups and copies are obsolete.
See Also: "obsOperandList" |
DEVICE TYPE deviceSpecifier |
Restricts the deletion to obsolete backups and copies created on the specified device type only.
See Also: "deviceSpecifier" |
Deleting Expired Backups: Example The following example uses a configured sbt
channel to check the media manager for expired backups of the tablespace users
that are more than one month old and removes their catalog records:
CROSSCHECK BACKUPSET OF TABLESPACE users DEVICE TYPE sbt COMPLETED BEFORE 'SYSDATE-31'; DELETE NOPROMPT EXPIRED BACKUPSET OF TABLESPACE users DEVICE TYPE sbt COMPLETED BEFORE 'SYSDATE-31';
Deleting Obsolete Backups: Example The following example deletes backups and copies that are not needed to recover the database to a random point within the last week. RMAN also deletes archived redo logs that are no longer needed:
DELETE NOPROMPT OBSOLETE RECOVERY WINDOW OF 7 DAYS;
Deleting Files That Have Already Been Backed Up: Example The following example deletes backups and copies (including archived redo logs) that have already been backed up at least twice to tape:
DELETE NOPROMPT BACKUP BACKED UP 2 TIMES TO DEVICE TYPE sbt; DELETE NOPROMPT COPY BACKED UP 2 TIMES TO DEVICE TYPE sbt;
Forcing the Deletion of a Backup Set: Example The following example attempts to delete the backup set copy with tag weekly_bkup
:
DELETE NOPROMPT BACKUPSET TAG weekly_bkup;
However, RMAN displays a warning because the repository shows the backup set as available, but the object is not actually available on the media:
RMAN-06207: WARNING: 1 objects could not be deleted for SBT_TAPE channel(s) due RMAN-06208: to mismatched status. Use CROSSCHECK command to fix status List of Mismatched objects ========================== Object Type Filename/Handle --------------- --------------------------------------------------- Backup Piece 0id270ud_1_1
The following command forces RMAN to delete the backup set:
DELETE FORCE NOPROMPT BACKUPSET TAG weekly_bkup;