0% found this document useful (0 votes)
621 views5 pages

Essential RMAN Backup Commands Guide

The document provides examples of common RMAN backup and recovery commands including: 1) Performing a full offline database backup and individual tablespace backup. 2) Backing up all archive logs and backing up the database with archive logs and deleting the logs after. 3) Performing point-in-time recovery and restoring a tablespace. 4) Validating backups and checking for logical and physical corruptions.

Uploaded by

Ankit Thakwani
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
621 views5 pages

Essential RMAN Backup Commands Guide

The document provides examples of common RMAN backup and recovery commands including: 1) Performing a full offline database backup and individual tablespace backup. 2) Backing up all archive logs and backing up the database with archive logs and deleting the logs after. 3) Performing point-in-time recovery and restoring a tablespace. 4) Validating backups and checking for logical and physical corruptions.

Uploaded by

Ankit Thakwani
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd

RMAN Basic Commands

RMAN COLD backup

RMAN> run {
sql 'alter database close';
allocate channel d1 type disk;
backup full
tag full_offline_backup
format '/oracle/backup/db_t%t_s%s_p%p'
(database);
release channel d1;
sql 'alter database open';
}

Individual Tablespace Backup

RMAN> run {
allocate channel d1 type disk;
backup
tag tbs_users_read_only
format '/backups/tbs_users_%t_%s'
(tablespace users);
release channel d1;
}

Backup all archive logs

RMAN> run {
allocate channel d1 type disk;
backup
format '/backups/log_t%t_s%s_p%p'
(archivelog all);
release channel d1;
}

Backup Database with Archivelog and delete the archivelog after backup

RUN
{
ALLOCATE CHANNEL d1 DEVICE TYPE disk;
BACKUP
Format ‘/backups/db_full_%t_%s’
(DATABASE PLUS ARCHIVELOG ALL DELETE INPUT);
Release channel d1;
}

Perform a point-in-time recovery

RUN
{
  ALLOCATE CHANNEL d1 DEVICE TYPE disk;
  ALLOCATE CHANNEL d2 DEVICE TYPE disk;
  ALLOCATE CHANNEL d3 DEVICE TYPE disk;
  SET UNTIL TIME = '2007-02-27:09:00:00';
  RESTORE DATABASE;
  RECOVER DATABASE;
  SQL 'alter database open resetlogs';
  }

Restore a tablespace

RUN
{
SQL "ALTER TABLESPACE users OFFLINE IMMEDIATE";
RESTORE TABLESPACE tools;
RECOVER TABLESPACE tools;
SQL "ALTER TABLESPACE tools ONLINE";
}

Crosscheck

If the archivelogs are moved/deleted/compressed, then archivelog backup would error


out with the following error RMAN-06059, either bring back the archive logs or do the
following to clear them out

run {
allocate channel c1 type disk ;
crosscheck archivelog all ;
release channel c1 ;
}

To check the validity of database backup and archivelog files

Checks physical corruptions…

RMAN> BACKUP VALIDATE DATABASE ARCHIVELOG ALL;

Checks logical corruptions…

RMAN> BACKUP VALIDATE CHECK LOGICAL DATABASE ARCHIVELOG ALL;

Important RMAN Commands

To see status information on jobs in V$RMAN_STATUS use the following query:

SELECT OPERATION, STATUS, MBYTES_PROCESSED, START_TIME, END_TIME from V$RMAN_STATUS;

To correlate a channel with a process, run the following query in SQL*Plus while the RMAN job is
executing:
SQL> COLUMN CLIENT_INFO FORMAT a30
SQL> COLUMN SID FORMAT 999
SQL> COLUMN SPID FORMAT 9999
SQL> SELECT s.SID, p.SPID, s.CLIENT_INFO FROM V$PROCESS p, V$SESSION s
WHERE p.ADDR = s.PADDR AND CLIENT_INFO LIKE 'rman%';

To calculate the progress of an RMAN job, run the following query in SQL*Plus while the RMAN job is
executing:

SQL> SELECT SID,SERIAL#,CONTEXT,SOFAR,TOTALWORK,


ROUND(SOFAR/TOTALWORK*100,2) "% COMPLETE"
FROM V$SESSION_LONGOPS
WHERE OPNAME LIKE 'RMAN%' AND OPNAME NOT LIKE '%aggregate%'
AND TOTALWORK != 0 AND SOFAR <> TOTALWORK;

A row in V$SESSION_WAIT corresponding to an sbt event name does not indicate a problem,
because the server updates these rows at runtime. The rows appear and disappear as calls are made
and returned. However, if the SECONDS_IN_WAIT column is high, then the media manager may be
hung.

To monitor the sbt events, you can run the following SQL query:

COLUMN EVENT FORMAT a10


COLUMN SECONDS_IN_WAIT FORMAT 999
COLUMN STATE FORMAT a20
COLUMN CLIENT_INFO FORMAT a30

SELECT p.SPID, EVENT, SECONDS_IN_WAIT AS SEC_WAIT,


sw.STATE, CLIENT_INFO
FROM V$SESSION_WAIT sw, V$SESSION s, V$PROCESS p
WHERE sw.EVENT LIKE 's%bt%'
AND s.SID=sw.SID
AND s.PADDR=p.ADDR ;

This example lists all backups in default verbose mode:


RMAN> LIST BACKUP;

The following example lists a summarized version of all RMAN backups:


RMAN> LIST BACKUP SUMMARY;

This example groups all backups by file:


RMAN> LIST BACKUP BY FILE;
Control File V$ View Recovery Catalog View View Describes

V$ARCHIVED_LOG RC_ARCHIVED_LOG Archived and unarchived redo logs

V$BACKUP_DATAFILE RC_BACKUP_CONTROLFILE Control files in backup sets

V$BACKUP_CORRUPTION RC_BACKUP_CORRUPTION Corrupt block ranges in datafile


backups

V$BACKUP_DATAFILE RC_BACKUP_DATAFILE Datafiles in backup sets

V$BACKUP_FILES RC_BACKUP_FILES RMAN backups and copies in the


repository.

V$BACKUP_PIECE RC_BACKUP_PIECE Backup pieces

V$BACKUP_REDOLOG RC_BACKUP_REDOLOG Archived logs in backups

V$BACKUP_SET RC_BACKUP_SET Backup sets

V$BACKUP_SPFILE RC_BACKUP_SPFILE Server parameter files in backup


sets

V$DATAFILE_COPY RC_CONTROLFILE_COPY Control file copies on disk

V$COPY_CORRUPTION RC_COPY_CORRUPTION Information about datafile copy


corruptions

V$DATABASE RC_DATABASE Databases registered in the


recovery catalog (RC_DATABASE)
or information about the currently
mounted database (V$DATABASE)

V$DATABASE_BLOCK_CORRUPTIO RC_DATABASE_BLOCK_CORRUPTIO Database blocks marked as corrupt


N N in the most recent RMAN backup or
copy

V$DATABASE_INCARNATION RC_DATABASE_INCARNATION All database incarnations registered


in the catalog

V$DATAFILE RC_DATAFILE All datafiles registered in the


recovery catalog

V$DATAFILE_COPY RC_DATAFILE_COPY Datafile image copies

V$LOG_HISTORY RC_LOG_HISTORY Historical information about online


redo logs

V$OFFLINE_RANGE RC_OFFLINE_RANGE Offline ranges for datafiles

V$PROXY_ARCHIVEDLOG RC_PROXY_ARCHIVEDLOG Archived log backups created by


proxy copy

V$PROXY_CONTROLFILE RC_PROXY_CONTROLFILE Control file backups created by


proxy copy

V$PROXY_DATAFILE RC_PROXY_DATAFILE Datafile backups created by proxy


copy

V$LOG and V$LOGFILE RC_REDO_LOG Online redo logs for all incarnations
of the database since the last
catalog resynchronization

V$THREAD RC_REDO_THREAD All redo threads for all incarnations


Control File V$ View Recovery Catalog View View Describes

of the database since the last


catalog resynchronization

n/a RC_RESYNC Recovery catalog


resynchronizations

V$RMAN_CONFIGURATION RC_RMAN_CONFIGURATION RMAN persistent configuration


settings

V$TABLESPACE RC_TABLESPACE All tablespaces registered in the


recovery catalog, all dropped
tablespaces, and tablespaces that
belong to old incarnations

You might also like