Backup and Recovery with RMAN

42.1 Backup Concepts

Physical (files) vs logical (Data Pump) backups.

Consistent (cold) vs inconsistent (hot/online) backups. Hot backups require ARCHIVELOG mode.

Full vs incremental (level 0, level 1 differential, level 1 cumulative).

Backup sets (RMAN proprietary, compressed, skip unused blocks) vs image copies (exact file copies).

RPO / RTO drive the strategy.

42.2 RMAN Basics

rman target /
rman target sys@ORCL catalog rman_owner@RCAT      # with a recovery catalog
RMAN> SHOW ALL;
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 14 DAYS;
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE TO COMPRESSED BACKUPSET;
RMAN> CONFIGURE BACKUP OPTIMIZATION ON;
RMAN> CONFIGURE ENCRYPTION FOR DATABASE ON;
RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO DISK;
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/backup/%d_%T_%U';

42.3 Taking Backups

Block change tracking speeds up incremental backups: ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/u02/bct.f';

Incrementally updated backups (merge into image copies) for fast SWITCH TO COPY recovery.

Recovery catalog (separate DB) vs control-file-only repository. Stored scripts.

Media management: SBT_TAPE channels, Oracle Database Backup Cloud Service, Zero Data Loss Recovery Appliance (ZDLRA).

RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASE TAG 'weekly_l0';
RMAN> BACKUP INCREMENTAL LEVEL 1 DATABASE TAG 'daily_l1';             -- differential
RMAN> BACKUP INCREMENTAL LEVEL 1 CUMULATIVE DATABASE;
RMAN> BACKUP ARCHIVELOG ALL DELETE INPUT;
RMAN> BACKUP TABLESPACE users;
RMAN> BACKUP PLUGGABLE DATABASE pdb1;
RMAN> BACKUP AS COPY DATABASE;
RMAN> BACKUP CURRENT CONTROLFILE;  BACKUP SPFILE;
RMAN> BACKUP VALIDATE CHECK LOGICAL DATABASE;      -- check for corruption without a backup
RMAN> BACKUP SECTION SIZE 32G DATAFILE 5;          -- multisection for big files

42.4 Reporting and Maintenance

RMAN> LIST BACKUP SUMMARY;
RMAN> LIST BACKUP OF DATABASE COMPLETED AFTER 'SYSDATE-7';
RMAN> REPORT NEED BACKUP;
RMAN> REPORT OBSOLETE;
RMAN> DELETE OBSOLETE;
RMAN> CROSSCHECK BACKUP;  DELETE EXPIRED BACKUP;
RMAN> CATALOG START WITH '/backup/old/';
SELECT start_time, end_time, status, input_type, output_bytes_display FROM v$rman_backup_job_details ORDER BY start_time DESC;

42.5 Recovery Scenarios

Data Recovery Advisor (LIST FAILURE, ADVISE FAILURE, REPAIR FAILURE) is deprecated in 21c+, but you'll still see it.

RMAN DUPLICATE (active or backup-based) creates clones and standbys.

Test your restores regularly. RESTORE DATABASE VALIDATE; and RESTORE ... PREVIEW.

-- 1. Complete database recovery
RMAN> STARTUP MOUNT;
RMAN> RESTORE DATABASE;
RMAN> RECOVER DATABASE;
RMAN> ALTER DATABASE OPEN;

-- 2. Lost datafile (database stays open)
RMAN> ALTER DATABASE DATAFILE 5 OFFLINE;
RMAN> RESTORE DATAFILE 5;  RECOVER DATAFILE 5;
RMAN> ALTER DATABASE DATAFILE 5 ONLINE;

-- 3. Point-in-time recovery (incomplete)
RMAN> RUN {
        SET UNTIL TIME "TO_DATE('2025-10-24 10:27:00','YYYY-MM-DD HH24:MI:SS')";
        RESTORE DATABASE; RECOVER DATABASE; }
RMAN> ALTER DATABASE OPEN RESETLOGS;

-- 4. Lost control file
RMAN> STARTUP NOMOUNT;
RMAN> RESTORE CONTROLFILE FROM AUTOBACKUP;
RMAN> ALTER DATABASE MOUNT;  RECOVER DATABASE;  ALTER DATABASE OPEN RESETLOGS;

-- 5. Lost SPFILE
RMAN> STARTUP FORCE NOMOUNT;  RESTORE SPFILE FROM AUTOBACKUP;

-- 6. Block media recovery
RMAN> RECOVER DATAFILE 7 BLOCK 233;   RECOVER CORRUPTION LIST;

-- 7. Tablespace PITR (TSPITR), PDB PITR
RMAN> RECOVER PLUGGABLE DATABASE pdb1 UNTIL TIME "SYSDATE-1/24" AUXILIARY DESTINATION '/tmp/aux';

-- 8. Table recovery from backup (12c)
RMAN> RECOVER TABLE shop.orders UNTIL TIME "SYSDATE-1" AUXILIARY DESTINATION '/tmp/aux'
      REMAP TABLE shop.orders:orders_recovered;

-- 9. Lost redo log gr
…
RMAN> DUPLICATE TARGET DATABASE TO testdb FROM ACTIVE DATABASE SPFILE SET db_unique_name='testdb' NOFILENAMECHECK;

42.6 Backup Strategy Example

Incremental level 0 + archivelogs Incremental level 1 (differential) + archivelogs

Controlfile and SPFILE autobackup, FRA, offsite/cloud copy, wallet backup