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