Skip to content

RMAN Commands Cheat Sheet - Oracle Backup & Recovery Quick Reference

Quick reference for Oracle Recovery Manager (RMAN) backup and recovery commands.

Terminal window
# Connect to target database
rman target /
# Connect with catalog
rman target / catalog rman/password@catdb
# Connect to remote database
rman target sys/password@orcl
# Connect to auxiliary for duplication
rman target / auxiliary sys/password@clone

-- Full database backup
BACKUP DATABASE;
-- Full backup with archivelog
BACKUP DATABASE PLUS ARCHIVELOG;
-- Full backup, delete archived logs after backup
BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;
-- Compressed backup
BACKUP AS COMPRESSED BACKUPSET DATABASE;
-- Backup to specific location
BACKUP DATABASE FORMAT '/backup/%d_%T_%s_%p.bkp';
-- Backup specific tablespace
BACKUP TABLESPACE users, example;
-- Backup specific datafile
BACKUP DATAFILE 4;
BACKUP DATAFILE '/u01/oradata/orcl/users01.dbf';
-- Backup current controlfile
BACKUP CURRENT CONTROLFILE;
-- Backup spfile
BACKUP SPFILE;
-- Level 0 (base) backup
BACKUP INCREMENTAL LEVEL 0 DATABASE;
-- Level 1 differential (default)
BACKUP INCREMENTAL LEVEL 1 DATABASE;
-- Level 1 cumulative
BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE;
-- Block change tracking (enable first)
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING
USING FILE '/u01/oradata/orcl/bct.dbf';
-- Backup all archive logs
BACKUP ARCHIVELOG ALL;
-- Backup and delete
BACKUP ARCHIVELOG ALL DELETE INPUT;
-- Backup specific sequence range
BACKUP ARCHIVELOG FROM SEQUENCE 100 UNTIL SEQUENCE 200;
-- Backup archive logs from last 24 hours
BACKUP ARCHIVELOG FROM TIME 'SYSDATE-1';

-- Restore database (from mount)
RESTORE DATABASE;
-- Restore to specific time
RESTORE DATABASE UNTIL TIME "TO_DATE('2024-01-15 10:00:00','YYYY-MM-DD HH24:MI:SS')";
-- Restore to SCN
RESTORE DATABASE UNTIL SCN 1234567;
-- Restore specific tablespace
RESTORE TABLESPACE users;
-- Restore specific datafile
RESTORE DATAFILE 4;
-- Restore controlfile from backup
RESTORE CONTROLFILE FROM AUTOBACKUP;
-- Restore from specific backup piece
RESTORE CONTROLFILE FROM '/backup/ctl_backup.bkp';
-- Restore spfile from autobackup
RESTORE SPFILE FROM AUTOBACKUP;
-- Restore to specific location
RESTORE SPFILE TO '/u01/app/oracle/dbs/spfileorcl.ora' FROM AUTOBACKUP;

-- Recover database
RECOVER DATABASE;
-- Recover to specific time
RECOVER DATABASE UNTIL TIME "TO_DATE('2024-01-15 10:00:00','YYYY-MM-DD HH24:MI:SS')";
-- Recover to SCN
RECOVER DATABASE UNTIL SCN 1234567;
-- Recover specific tablespace
RECOVER TABLESPACE users;
-- Recover datafile
RECOVER DATAFILE 4;
-- Open database after point-in-time recovery
ALTER DATABASE OPEN RESETLOGS;

-- List all backups
LIST BACKUP;
-- List database backups
LIST BACKUP OF DATABASE;
-- List backups summary
LIST BACKUP SUMMARY;
-- List archive log backups
LIST BACKUP OF ARCHIVELOG ALL;
-- List specific backup by tag
LIST BACKUP TAG 'daily_full';
-- List expired backups
LIST EXPIRED BACKUP;
-- List incarnations
LIST INCARNATION;
-- List failures (12c+)
LIST FAILURE;

-- Report files needing backup
REPORT NEED BACKUP;
-- Report files needing backup (> 2 days)
REPORT NEED BACKUP DAYS 2;
-- Report obsolete backups
REPORT OBSOLETE;
-- Report database schema
REPORT SCHEMA;
-- Report unrecoverable files
REPORT UNRECOVERABLE;

-- Crosscheck all backups
CROSSCHECK BACKUP;
-- Crosscheck archive logs
CROSSCHECK ARCHIVELOG ALL;
-- Crosscheck specific backup
CROSSCHECK BACKUPSET 123;
-- Crosscheck copy
CROSSCHECK COPY;
-- Delete expired backups
DELETE EXPIRED BACKUP;
-- Delete obsolete backups
DELETE OBSOLETE;
-- Delete specific backup
DELETE BACKUPSET 123;
-- Delete backup older than 7 days
DELETE BACKUP COMPLETED BEFORE 'SYSDATE-7';
-- Delete archived logs older than 7 days
DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';
-- Skip confirmation
DELETE NOPROMPT OBSOLETE;

-- Show current configuration
SHOW ALL;
-- Configure retention policy
CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
-- Configure backup destination
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/backup/%d_%T_%s_%p.bkp';
-- Configure parallelism
CONFIGURE DEVICE TYPE DISK PARALLELISM 4;
-- Configure compression
CONFIGURE COMPRESSION ALGORITHM 'MEDIUM';
-- Configure controlfile autobackup
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/backup/%F';
-- Configure backup optimization
CONFIGURE BACKUP OPTIMIZATION ON;
-- Configure encryption
CONFIGURE ENCRYPTION FOR DATABASE ON;
-- Clear configuration to default
CONFIGURE RETENTION POLICY CLEAR;

-- Catalog backup piece
CATALOG BACKUPPIECE '/backup/backup.bkp';
-- Catalog all backups in directory
CATALOG START WITH '/backup/';
-- Catalog datafile copy
CATALOG DATAFILECOPY '/u01/copy/users01.dbf';
-- Uncatalog expired backup
UNCATALOG EXPIRED BACKUP;

-- Validate database
VALIDATE DATABASE;
-- Validate specific datafile
VALIDATE DATAFILE 4;
-- Validate backupset
VALIDATE BACKUPSET 123;
-- Check logical corruption
VALIDATE CHECK LOGICAL DATABASE;
-- Preview restore (check availability)
RESTORE DATABASE PREVIEW;
RESTORE DATABASE PREVIEW SUMMARY;

-- Duplicate to new database
DUPLICATE TARGET DATABASE TO newdb;
-- Duplicate from active database
DUPLICATE TARGET DATABASE TO newdb FROM ACTIVE DATABASE;
-- Duplicate to point in time
DUPLICATE TARGET DATABASE TO newdb
UNTIL TIME "TO_DATE('2024-01-15 10:00:00','YYYY-MM-DD HH24:MI:SS')";
-- Duplicate with file relocation
DUPLICATE TARGET DATABASE TO newdb
DB_FILE_NAME_CONVERT '/u01/oradata/prod', '/u02/oradata/clone'
SPFILE
SET DB_UNIQUE_NAME='newdb';

-- Recover corrupt blocks
BLOCKRECOVER DATAFILE 4 BLOCK 100;
-- Recover range of blocks
BLOCKRECOVER DATAFILE 4 BLOCK 100,101,102;
-- Recover from backup
BLOCKRECOVER DATAFILE 4 BLOCK 100 FROM BACKUPSET;

-- Run script
@/scripts/backup.rman
-- Create stored script (in catalog)
CREATE SCRIPT daily_backup {
BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;
}
-- Execute stored script
RUN { EXECUTE SCRIPT daily_backup; }
-- Delete script
DELETE SCRIPT daily_backup;
-- Print script
PRINT SCRIPT daily_backup;
RUN {
ALLOCATE CHANNEL c1 DEVICE TYPE DISK;
ALLOCATE CHANNEL c2 DEVICE TYPE DISK;
BACKUP DATABASE FORMAT '/backup/%d_%T_%s_%p_%c.bkp';
RELEASE CHANNEL c1;
RELEASE CHANNEL c2;
}

-- Tag backups for easy identification
BACKUP DATABASE TAG 'weekly_full';
BACKUP INCREMENTAL LEVEL 1 DATABASE TAG 'daily_inc';
BACKUP ARCHIVELOG ALL TAG 'arch_backup';
-- Restore/recover using tag
RESTORE DATABASE FROM TAG 'weekly_full';

SpecifierDescription
%dDatabase name
%DCurrent day (DD)
%MCurrent month (MM)
%YCurrent year (YYYY)
%TDate (YYYYMMDD)
%sBackup set number
%pPiece number
%cChannel number
%UUnique filename
%FUnique format (c-IIIIIIIIII-YYYYMMDD-QQ)