Wednesday, May 26, 2021

Basic RMAN Commands

 RMAN: Basic RMAN Commands

Posted on February 19, 2014 by Brijesh Gogia

Oracle Recovery Manager (RMAN) satisfies the most pressing demands of performant, manageable backup and recovery, for all Oracle data formats.

RMAN  provides a common interface, via command line and Enterprise Manager, for backup tasks across different host operating systems.

Below are some of the commonly used RMAN commands which you can run through RMAN command line.

All the commands were tested on Oracle database version 11gR2 (11.2.0.4)

********************************************* 

**SHOW COMMAND**

1) Shows all parameters.

RMAN> show all;

2) Shows the archivelog deletion policy.

RMAN> show archivelog deletion policy;

3) Shows the number of archivelog backup copies

RMAN> show archivelog backup copies;

4) Shows the auxiliary database information.

RMAN> show auxname;

5) Shows whether optimization is on or off.

RMAN> show backup optimization;

6) Shows how the normal channel and auxiliary channel are configured.

RMAN> show [auxiliary] channel;

7) Shows the characteristics of the channel

RMAN> show channel for device type [disk | <media device>;

8) Shows whether control file autobackup is on or off.

RMAN> show controlfile autobackup;

9) Shows the format of the autobackup control file

RMAN> show controlfile autobackup format;

10) Shows the number of datafile backup copies being kept.

RMAN> show datafile backup copies;

11) Shows the default type (disk or tape)

RMAN> show default device type;

12) Shows policy for datafile and control file backups and copies that RMAN marks as obsolete.

RMAN> show retention policy;

13) Shows the encryption algorithm currently in use.

RMAN> show encryption algorithm;

14) Shows the encryption for the database and every tablespace.

RMAN> show encryption for [database | tablespace];

15) Shows the tablespaces excluded from the backup.

RMAN> show exclude;

16) Shows the maximum size for backup sets. The default is unlimited.

RMAN> show maxsetsize;

17) Shows the policy for datafile and control file backups and copies that RMAN marks as obsolete.

RMAN> show retention policy;

18) Shows the snapshot control filename.

RMAN> show snapshot controlfile name;

19) Shows the compression algorithm in force. The default is the ZLIB algorithm.

RMAN> show compression algorithm;

******************************************

**BACKUP COMMAND**

1) To perform a manual backup of the current control file

RMAN> backup current controlfile;

2) To back up the control file as part of a tablespace backup operation

RMAN> backup tablespace users include current controlfile;

3) To back up the server parameter file

RMAN> backup spfile;

4) To restart an RMAN backup that failed midway through a nightly backup.

RMAN> backup not backed up since time ‘sysdate-1′ database plus archivelog;

5) To force RMAN to back up a file regardless of whether it’s identical to a previously backed up file by specifying the force option

RMAN> backup database force;

NOTE: 

By using the force option, you make RMAN back up all the specified files, even if the backup optimization feature is turned on.

6) To backup complete database

RMAN> backup database;

7) To backup database plus archivelogs

RMAN> backup database plus archivelogs;

8) To backup all archive logs

RMAN> backup archivelog all;

9) To backup specific data file

RMAN> backup datafile 5 tag dbfile_5_bkp;

A tag was also added to easily locate this datafile’s backup.

*****************************************

**CATALOG COMMAND**

1) Add user-managed copies of datafile to RMAN repository

RMAN> catalog datafilecopy ‘/u01/oracle/users.bkp’;

RMAN> catalog datafilecopy ‘/u01/oracle/users.bkp’ level 0;  (To catalog as incremental level 0 backup)

2) Add uncataloged backup piece to RMAN repository

RMAN> catalog backuppiece ‘ertt2lu4_1_1′;

3) To catalog multiple files ( say you copied production backup to target database for database cloning)

RMAN> catalog start with ‘/backups/source_bkp’ noprompt;

The start with clause specifies that RMAN catalog all valid backup sets, datafile copies, and archived redo logs starting with the string pattern you pass.

4) To catalog all files in the flash recovery area

RMAN> catalog recovery area;

*******************************************

**REPORT COMMAND**

1) To find out which backups you need to make in order to conform to the retention policy you put in place

RMAN> report need backup;

The output of the report need backup command tells you that you must back up which all database files to comply with your retention policy.

2) To get a report about all the datafiles in a database

RMAN> report schema;

RMAN> report schema at time ‘sysdate-1′;  (from a past point in time)

3) To reports on any obsolete backups

RMAN> crosscheck backup;

RMAN> report obsolete;

Always run the crosscheck command first in order to update the status of the backups in the RMAN repository to that on disk and tape.

****************************************

**LIST COMMAND**

1) To review RMAN backups of datafiles, archived redo logs, and control files.

RMAN> list backup;

2) List the backups by just the backup files

RMAN> list backup by file;

3) Lists only backup sets and proxy copies but not image copies

RMAN> list backupset;

4) Lists only datafile, archived redo log, and control file copies

RMAN> list copy;

5) Lists backups by tag:

RMAN> list backupset tag ‘full_database_backup’;

6) To list the backups of all datafiles and archivelogs of the target database:

RMAN> list backup of database;

7) Lists all incarnations of a database

RMAN> list incarnation;

When you perform an open resetlogs operation, it results in the creation of a new incarnation of the database. When performing recovery operations on such a database, you might want to check the database incarnation

8) Lists all restore points in the target database

RMAN> list restore point;

9) Lists the names of all recovery catalog scripts

RMAN> list script names;

10) Which of the backups of the target database have an expired status in the repository.

RMAN> list expired backup;

11) Which of the archived redo log backups have the expired status

RMAN> list expired archivelog all;

12) To restrict the list of backups  and copies whose status is listed as available

RMAN> list recoverable backup;

13) To view all the restore points in the database

RMAN> list restore point all;

**************************************

**CROSSCHECK COMMAND**

1) Cross-checking just backup sets

RMAN> crosscheck backupset;

2) Cross-checking a copy of a database

RMAN> crosscheck copy of database;

3) Cross-checking specific backupsets

RMAN> crosscheck backupset 10, 12;

4) Cross-checking using a backup tag

RMAN> crosscheck backuppiece tag = ‘monthly_backup’;

5) Cross-checking a control file copy;

RMAN> crosscheck controlfilecopy ‘/backups/control01.ctl’;

6) Cross-checking backups completed after a specific time

RMAN> crosscheck backup of datafile “/u01/oracle//system01.dbf” completed after ‘sysdate-7′;

7)  Cross-checking of all archivelogs and the spfile

RMAN> crosscheck backup of archivelog all spfile;

8) Cross-checking all backups on disk and tape

RMAN> crosscheck backup;

The crosscheck command checks whether the backups still exist. The command checks backup sets, proxy copies, and image copies.

*************************************

**DELETE COMMAND**

1) To remove both archived redo logs and RMAN backups

RMAN> delete backup;

RMAN always prompts you for confirmation before going ahead and deleting the backup files. You can issue the delete noprompt command to suppress the confirmation prompt. This will also remove the physical file from the backup media

To make sure the repository and the physical media are synchronized, run “RMAN> crosscheck backup;” before running above command

2) To remove all image copies

RMAN> delete copy;

To make sure the repository and the physical media are synchronized, run “RMAN> crosscheck copy;” before running above command

3) To delete specfic backuppiece

RMAN> delete backuppiece 9;

4) To delete copy of controlfile under /backups

RMAN> delete copy of controlfile like ‘/backups/%’;

5) To delete backups with specific tag

RMAN> delete backup tag=’double_bkp_prod’;

6) To delete bakups of specific tablespace

RMAN> delete backup of tablespace sysaux device type sbt;

You can also use force, expired, obsolete keyword with delete commad:

delete force ..: Deletes the specified files whether they actually exist on media or not and removes their records from the RMAN repository as well

delete expired ..: Deletes only those files marked as expired  as per crosscheck command.

delete obsolete ..: Deletes datafile backups and copies and the archived redo logs and log backups that are recorded as obsolete in the RMAN repository

The delete obsolete command relies only on the backup retention policy in force.

7) To delete all archived redo logs

RMAN> delete archivelog all;

8) To delete already backed up archived redo logs

RMAN> delete archivelog all backed up 2 times to sbt;

9) To delete specific archived redo logs

RMAN> delete archivelog until sequence = 1234;

10) Delete archive logs after taking backup

RMAN> backup device type sbt archivelog all delete all input;

11) Delete stored script

RMAN> delete script full_disk_db;

If you have two scripts—one local and one global—in the same name, then the delete script command drops the local one, not the global one. If you want to drop the global script, you must use the keyword global in the command, as shown here:

RMAN> delete global script full_disk_db;

************************************

**CHANGE COMMAND**

1) Change the status of a backup set to unavailable

RMAN> change backupset 6 unavailable;

You usually do it when you don’t want to delete the backup/copy but you also don’t want to delete that backup/copy (probably it is not available physically on disk)

Once you mark a backup file unavailable, RMAN won’t use that file in a restore or recover operation.

2)  Change the status of a backup set to available again

RMAN> change backupset 6 available;

For example, say you performed a backup using an NFS-mounted disk and that disk subsequently becomes inaccessible for some reasons, just  issue the change command to set the status of the backup as unavailable. Later, once the disk becomes accessible again, you can change its status back to available.

3) To modify a regular consistent database backup into an archival backup:

RMAN> change backup tag ‘initial_db_bkup’ keep forever;

When you make an archival backup with the keep … forever option, RMAN disregards the backup retention time for these backups.

4) To change the archival backup to a normal database backup

RMAN> change backup tag ‘inital_db_backup’ nokeep;

When you run the change … nokeep command, the backup set with the tag inital_db_backup, which was previously designated as a long term archival backup, will once again come under the purview of your configured retention policy.

5) To modify the time period for which you want to retain the archival backups

RMAN> change backupset 12 keep until time ‘sysdate+60′;

After the 60 days are up, the backup will become obsolete and is eligible for deletion by the delete obsolete command.

***************************************

**VALIDATE COMMAND**

1) To check all the datafiles and the archived redo logs for physical corruption  without actually performing the backup

RMAN> backup validate database archivelog all;

2) To check for logical corruption  without actually performing the backup

RMAN> backup validate check logical database archivelog all;

The check logical clause means that RMAN will check for logical corruption only.

3) To validate a single backup set

RMAN> validate backupset 5;

4) To validate all datafiles at once

RMAN> validate database;

Note that the validate command can check at a much more granular level than the backup … validate command. You can use the validate command with individual datafiles, backup sets, and even data blocks.

The validate command always skips all the data blocks that were never used, in each of the datafile it validates.

5)  To validate recovery area

RMAN> validate recovery area;

6) To validate all the recovery related files

 RMAN> validate recovery files;

7) To validate the spfile

RMAN> validate spfile;

8) To validate specific tablespace

 RMAN> validate tablespace <tablespace_name>;

9) To validate specific control file copy

 RMAN> validate controlfilecopy <filename>;

10) To validate specific backupset

RMAN> validate backupset <primary_key>;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Command:

LIST

Description:

rman> LIST BACKUP; #List all your backup sets.

rman> LIST BACKUPSET; #Lists only backup sets and proxy copies.

rman> LIST COPY; #Lists of Image copies and Archive Logs.

rman> LIST EXPIRED BACKUP; #Backups did not found after crosscheck. That is backup is manually moved or deleted from OS.

rman> LIST EXPIRED BACKUPSET;

rman> LIST RECOVERABLE BACKUPSET;


rman> LIST BACKUP BY FILE; #List backup by Datafile, controlfile, spfile.

rman> LIST BACKUP SUMMARY; #Lists backup sets, proxy copies, and disk copies.

rman> LIST BACKUP OF DATABASE; LIST BACKUP LIKE '/tmp/%'; list backup of datafile 1;

rman> LIST ARCHIVELOG ALL BACKED UP 2 TIMES TO DEVICE TYPE sbt;

rman> LIST COPY OF DATAFILE 2 COMPLETED BETWEEN '17-MAR-2008' AND '22-MAR-2008'; are also available.

rman> LIST INCARNATION; LIST INCARNATION OF DATABASE; to see the incarnations of your database.


rman> ADVICE FAILURE;

***************************************

Command:

REPORT

Description:

rman> REPORT NEED BACKUP; # Determine which database files need backup under a specific retention policy. #

rman> REPORT UNRECOVERABLE; #Report which database files require backup because they have been affected by some NOLOGGING operation.

rman> REPORT SCHEMA; #Lists and displays information about the database files.

rman> REPORT OBSOLETE; #REPORT OBSOLETE displays the backups that are obsolete according to the current retention policy

rman> REPORT NEED BACKUP RECOVERY WINDOW OF 2 DAYS DATABASE SKIP TABLESPACE data01;

rman> REPORT SCHEMA AT TIME 'SYSDATE-1';

***************************************

Command:

DELETE

Description:

rman> DELETE BACKUPSET ALL; - Delete all Backup setDELETE COPY ALL; -Delete all image copies

rman> DELETE OBSOLETE; -Delete obsolete Backups

rman> BACKUP ARCHIVELOG ALL DELETE ALL INPUT;

rman> DELETE ARCHIVELOG ALL BACKED UP 1 TIMES TO DEVICE TYPE SBT_TAPE;

***************************************

Command:

CROSSCHECK

Description:

rman> CROSSCHECK BACKUP;

rman> CROSSCHECK ARCHIVELOG ALL;

rman> DELETE EXPIRED BACKUP;

rman> DELETE EXPIRED ARCHIVELOG ALL;

***************************************

Command:

Expired and Obselete 

Description:

Expired and Obselete difference -


DELETE removes the physical files from the backup media, deletes the record of the backup from the recovery catalog

(if RMAN is connected to a recovery catalog), and updates the records of these backups in the control file to status DELETED.

in the obsolete case, what helps to clarify the difference between OBSOLETE and EXPIRED is the retention policy.

If a backup item is no longer needed for recovery because it is older than the retention policy

then it is obsolete.


What does DELETE OBSOLETE do?

The RMAN DELETE command supports an OBSOLETE option, which deletes backups that are obsolete, that is, no longer

needed to satisfy specified recoverability requirements. You can delete files obsolete according to the configured

default retention policy, or another retention policy that you specify as an option to the DELETE OBSOLETE command.

As with other forms of the DELETE command, the files deleted are removed from backup media, deleted from the recovery

catalog, and marked as DELETED in the control file.


The next clarification concerns the EXPIRED status. How does an object become expired?

When the CROSSCHECK command is used to determine whether backups recorded in the repository still exist on disk or tape,

if RMAN cannot locate the backups, then it updates their records in the RMAN repository to EXPIRED status. You can then

use the DELETE EXPIRED command to remove records of expired backups from the RMAN repository. If the expired files still

exist, then the DELETE EXPIRED command terminates with an error.

***************************************

Command:

Delete Backup from Disk

Description:

rman> ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE DISK;

rman> CROSSCHECK BACKUPSET;

rman> CROSSCHECK COPY;

rman> CROSSCHECK ARCHIVELOG ALL;

rman> DELETE NOPROMPT EXPIRED BACKUP DEVICE TYPE DISK;

rman> DELETE NOPROMPT EXPIRED ARCHIVELOG ALL DEVICE TYPE DISK

***************************************

Command:

Delete Backup from TAPE

Description:

rman> ALLOCATE CHANNEL FOR MAINTENANCE DEVICE TYPE SBT;

rman> CROSSCHECK BACKUP; CROSSCHECK COPY;

rman> CROSSCHECK ARCHIVELOG ALL;

rman> DELETE NOPROMPT EXPIRED BACKUP DEVICE TYPE SBT;

rman> DELETE NOPROMPT EXPIRED ARCHIVELOG ALL DEVICE TYPE SBT;

***************************************

Command:

COMPRESSED BACKUP

Description:

rman> BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG DELETE INPUT;

***************************************

Command:

RECOVER SYSTEM DATAFILE

Description:

System Datafile Recovery -

1. startup mount;

2. restore datafile 1;

3. recover datafile 1;

4. alter database open;

***************************************

Command:

RECOVER DATAFILE

Description:

1. restore datafile 4;

2. recover datafile 4;

3. sql 'alter tablespace users online';

***************************************

Command:

RECOVER CONTROL FILE

Description:

1. SET DBID $v_dbid;

2. STARTUP NOMOUNT;

3. RESTORE CONTROLFILE FROM AUTOBACKUP;

4. ALTER DATABASE MOUNT;

5. RECOVER DATABASE;

6. ALTER DATABASE OPEN RESETLOGS;

***************************************

Command:

COMPLETE RECOVERY

Description:

1. SET DBID $v_dbid;

2. STARTUP NOMOUNT;

3. RESTORE SPFILE FROM AUTOBACKUP ;

4. STARTUP FORCE NOMOUNT;

5. RESTORE CONTROLFILE FROM AUTOBACKUP;

6. ALTER DATABASE MOUNT;


run { set until sequence $v_seq thread 1;

restore database;

recover database; }

ALTER DATABASE OPEN RESETLOGS;

***************************************

Command:

Uncatalog archive logs

Description:

change archivelog sequence between 1 and 7 uncatalog;

***************************************

Command:

ENABLE BLOCK TRACKING

Description:

1. CTWR background process is wrting to Change block tracking File at OS level..Not implemented in Our environment

ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '+fradg';

select FILENAME, STATUS, BYTES from v$block_change_tracking;

***************************************

Command:

Steps to recover database

Description:

RMAN target=/

RMAN> SET DBID 669001291; ### it'is part of the name of autobackup file. So if autobackup file name is 'c-669001291-20070129-03' then DBID is669001291

RMAN> startup force nomount;

and run recovery of SPFILE

RMAN> RESTORE SPFILE FROM AUTOBACKUP;

RMAN> RESTORE CONTROLFILE FROM AUTOBACKUP;

RMAN> STARTUP FORCE NOMOUNT:

RMAN> LIST BACKUP SUMMARY;

Key TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag

------- -- -- - ----------- ------------------- ------- ------- ---------- ---

363 B F A SBT_TAPE 28/09/2011 19:39:04 1 1 NO TAG20110928T193859

368 B A X SBT_TAPE 29/09/2011 12:10:43 1 1 YES TAG20110929T120531

387 B A X SBT_TAPE 29/09/2011 12:56:42 1 1 YES TAG20110929T125641

388 B A X SBT_TAPE 29/09/2011 12:56:42 1 1 YES TAG20110929T125641

390 B F X SBT_TAPE 29/09/2011 13:22:11 1 1 NO TAG20110929T132206

RMAN> LIST BACKUPSET 390;

List of Backup Sets===================BS Key Type LV Size Device Type Elapsed Time Completion Time

------- ---- -- ---------- ----------- ------------ -------------------

390 Full 14.25M SBT_TAPE 00:00:05 29/09/2011 13:22:11

BP Key: 5105 Status: EXPIRED Compressed: NO Tag: TAG20110929T132206

Handle: BILIVE.c-3181441601-20110929-01.oraclebi1.controlfile Media: 000327L3

Control File Included: Ckp SCN: 16039296565 Ckp time: 18/10/2011 20:51:29

SPFILE Included: Modification time: 26/09/2011 07:00:04

SPFILE db_unique_name: ABC

RMAN> RUN { SET UNTIL SCN 16039296565;

RESTORE DATABASE;

RECOVER DATABASE;} 

RMAN> ALTER DATABASE OPEN RESETLOGS;

ONE may need

list incarnation of database;

RESET DATABASE TO INCARNATION 2;

***************************************

Command:

RECOVER SP FILE

Description:

1. SET DBID $v_dbid; rman < set DBID=12345;

2. STARTUP NOMOUNT FORCE;

3. RESTORE SPFILE FROM AUTOBACKUP; or RESTORE SPFILE FROM 'PATH_OF_BACKUP'

4. restore spfile to '/tmp/spfiletemp.ora' from autobackup recovery area ='/u01/app/oracle/flash_recovery_area' db_name=orcl;

***************************************

Command:

Restore control file

Description:

set dbid = 1234;

restore controlfile from '14p69u7q_1_1';




No comments:

Post a Comment

Contact Form

Name

Email *

Message *

Cancelling Concurrent Request From Backend

Concurrent Request Phase Codes: SQL> SELECT  LOOKUP_CODE ,  MEANING    FROM  FND_LOOKUP_VALUES   WHERE  LOOKUP_TYPE  =   'CP_PHASE_CO...