Oracle Database 11g Recovery Manager (RMAN)
A comprehensive set of backup and recovery tools that can streamline the backup and recovery of a database.
Cold Backup
A database cold backup is most likely the simplest way to make a backup of a database. A cold backup consists of making copies of the datafile, the control files, and the initialization parameter files while the database is shutdown. A cold backup is also known as a closed backup.
Cold backup may be taken when running the database in either NOARCHIELOG or ARCHIVELOG mode.
Hot Backup
A hot backup is similar to a cold backup, except that the backup is performed while the database is open and available to users. A hot backup is also known as an open backup.
A hot backup can be performed only when operating the database in ARCHIVELOG mode.
Connecting To RMAN Through Database Authentication
You can log into the RMAN utility by using your database credentials. You need to have SYSDBA privileges to use RMAN. The following examples use the SYS user account to log into RMAN.
$ rman
RMAN> connect target sys/sys_password;
RMAN> exit;
Recovery Manager complete.
Connecting To RMAN Using O/S Authentication
You can also log into RMAN using Operating System authentication. In this case, you don’t need to use the SYS account and password. Here’s how you do this.
$ rman target /
Creating The Recovery Catalog Database
Step # 1
$ sqlplus /nolog
Step # 2
SQL> connect / as sysdba;
Step # 3
SQL> create user rmusr identified by rmusr default tablespace users temporary tablespace temp;
Step # 4
SQL> grant connect, resource, recovery_catalog_owner to rmusr;
Step # 5
SQL> exit;
Step # 6
$ rman
RMAN> connect catalog rmusr/rmusr
Connected to recovery catalog database.
Step # 7
RMAN> create catalog;
Recovery catalog created
Step # 8
RMAN> exit;
Connecting To The Target And Recovery Catalog Database
Set the Oracle System Identifier (ORACLE_SID) to the target database:
$ export ORACLE_SID=ORCL
Step # 1
$ rman
RMAN>
Step # 2
RMAN> connect target;
Connected to target database: ORCL (DBID:Nos.)
Step # 3
RMAN> connect catalog rmusr/rmusr;
Connected to RECOVERY CATALOG DATABASE.
Registering The Target Database
Step # 4
RMAN> register database;
Database registered in recovery catalog
Starting full resync to recovery catalog
Full resync complete
Configuring Channel Allocation
When a backup or restore operation is performed using RMAN it configures channels which in turn initiate one or more server processes on the instance of the target database. A channel represents a single stream of data of backup device. Multiple channels may be configured to speed up backup and recovery procedures. The server processes perform the actual backup, restore, and recovery operation.
Channels may be allocated manually using ALLOCATE CHANNEL command.
A channel may be configured to interact with tape device (SBT) or a disk (DISK). For example a channel called C1 that would access a disk is created using this command.
RMAN> run {allocate channel c1 type disk; }
Configure Default Device Type
Step # 5
RMAN> configure default device type to sbt;
Or
RMAN> configure default device type to disk;
SBT for tape device.
Step # 6
RMAN> show default device type;
If you want to clear default device type the following command is used for said purpose
RMAN> configure default device type clear;
Configuring Control File Autobackup
Step # 7
RMAN> configure controlfile autobackup on;
Step # 8
RMAN> configure controlfile autobackup format for device type disk to ‘/opt/oracle/backup/%F’;
Step # 9
RMAN> show controlfile autobackup;
Step # 10
RMAN> show controlfile autobackup format;
If you want to clear the above configuration use the following commands
RMAN> configure controlfile autobackup clear;
RMAN> configure controlfile autobackup format for device type disk clear;
Configuring The Default Backup Type
Step # 11
RMAN> configure device type disk backup to backupset;
or
RMAN> configure device type disk backup to copy;
or
RMAN> configure device type disk backup type to compressed backupset;
Step # 12
RMAN> show device type;
Configuring The Default Location And Naming Format
Step # 13
RMAN> configure channel device type disk format ‘/opt/oracle/backup/bks_%d_%s_%p_%T’;
Step # 14
RMAN> exit
Format | Description |
%d | Name |
%T | Specific backup set timestamp |
%s | Specific backup set number |
%p | Specific backup piece number |
%U | System generated unique filename (This is the default) |
BACKUP USING RMAN
You can backup datafiles, controlfiles, and archivelog files using Recovery Manager. Redo log files are not backup. To perform a backup using RMAN, the database must either be mounted or opened.
Using Recovery Manager, two types of backups may be crated. They are known as Backupsets and Image copies.
Backupsets
A backupsets is output of a backup, done using Recover Manager. A backupset is a logical object that stores the data that has been backup in an RMAN-specific format. Backupsets require additional task to be performed during restoration, but are more space efficient. Backupsets are made up of backup pieces. Backup pieces are the actual files that are created on the operating system.
By default, backupsets always contain only a single backup piece, unless the DBA specifies an option to create multiple smaller backup pieces. A signal backup piece can store data blocks from different datafiles in such a way that blocks on one datafiles may be interspersed with the blocks of another datafile. As a result, RMAN performs additional steps during restoration to make the backup usable. This feature is known as Multiplexing.
Backupsets are created using the BACKUP command of RMAN.
Using Recovery Manager, a DBA can create full or incremental backups. These options are only available with backupsets. A full backup is a backup of all the used blocks of the datafiles. Block that have never been used are not copied.
Incremental Backup
An incremental backup is one that contains all the blocks that were modified since the pervious incremental backup. The size of incremental backups is considerably smaller that full backup. If you wish to use the incremental backup strategy, a base backup or a level 0 backup must be created first.
Using RMAN you can create incremental backup of the database, tablespaces, or individual datafiles. When performing incremental backups, Oracle reads the entire datafile even if very few changes were made to it. This can take a considerable amount of time. Block Change Tracking is used to minimize the amount of time spent reading the datafile for modified blocks.
Incremental backups may be taken at two levels, level 0 and level 1. A level 0 backup is similar to a full backup in that all the used blocks of the datafile are backed up. A level 1 backup is taken against a level 0. In an incremental backup strategy the base backup cannot be a full backup. It should always be a level 0 backup. A level a backup can be either differential or cumulative.
Differential Incremental Backup is a level 1 backup that backups all block that have been modified since the most recent incremental level 0 or level 1 backup.
Cumulative Incremental Backup is a level 1 backup that backup all blocks that have been modified since the most recent incremental level 0 backup.
Cumulative backups are larger in size than incremental backups and take longer to complete.
Image Copies are identical to the actual physical file being backup. Images copies are easier to work with because they can be used directly during the restoration process.
For example, an image copy of a file USERS01.DBF with size a 2.5 GB will be an identical file with a size 2.5 GB. All the block of the input datafile, used or unused will be copied. Since this file is exactly like the original file, RMAN can use this file directly during the process of restoration. A image copy is created using the COPY or the BACKUP AS COPY command of RMAN.
Backing Up the Entire Database
Step # 1
$ rman
Step # 2
RMAN> connect target;
Step # 3
RMAN> connect catalog rmusr/rmusr;
Step # 4
RMAN> configure device type disk clear;
Step # 5
RMAN> backup database;
Backing up Tablespaces
RMAN> BACKUP TABLESPACE SYSTEM;
RMAN> BACKUP TABLESPACE USERS, SYSAUX;
RMAN> BACKUP TABLESPACE USERS FORMAT ‘/opt/oracle/backup/tb_%n_%t_%s_%p’;
Backing up a Datafile
RMAN> REPORT SCHEMA;
RMAN> BACKUP DATAFILE 3;
RMAN> BACKUP DATAFILE 2, 4;
Backing up the Current Controlfile
RMAN> BACKUP CURRENT CONTROLFILE;
Creating Compressed Backups
RMAN> BACKUP AS COMPRESSED BACKUPSET DATAFILE 3;
Backing up Archivelog Files
RMAN> BACKUP ARCHIVELOG ALL;
RMAN> BACKUP ARCHIVELOG ALL DELETE INPUT;
RMAN> BACKUP ARCHIVELOG FROM TIME ‘SYSDATE-2’ UNTIL TIME ‘SYSDATE’;
Performing Incremental Backups
RMAN> BACKUP INCREMENTAL LEVEL 0 DATABASE;
RMAN> BACKUP INCREMENTAL LEVEL 0 DATAFILE 2, 4;
RMAN> BACKUP INCREMENTAL LEVEL 0 TABLESPACE USERS;
RMAN> BACKUP INCREMENTAL LEVEL 1 TABLESPACE USERS;
RMAN> BACKUP INCREMENTAL LEVEL 1 CUMULATIVE TABLESPACE USERS;
Creating Image Copies
RMAN> BACKUP AS COPY DATABASE;
RMAN> BACKUP AS COPY TAG “USR_WKL_BKP” DATABASE;
RMAN> BACKUP AS COPY DATAFILE 4;
RMAN SCRIPTS
Scripts are a sequence of RMAN commands that are stored under a name and may be used repetitively. The ability to create and maintain scripts is possible only when using a Recovery Catalog. A script is created and stored in the Recovery Catalog using a CREATE SCRIPT command. It may be executed whenever required by the EXECUTE SCRIPT command.
1. $ rman
RMAN> connect target;
RMAN> connect catalog rmusr/rmusr;
2. RMAN> create script mon_bkp
{ backup database format ‘db_%d_%s_%u’
tag mon_bkp;
backup format ‘arch_%t_%s_%p’
( archivelog all ); }
3. RMAN> run { execute script mon_bkp; }
Block Change Tracking
Block Change Tracking reduces the amount of time taken for incremental backups. As you are already aware, during incremental backups only those blocks that were modified since the most recent incremental backup are backed up.
In block change tracking, the Oracle Database tracks the physical location of all database changes in a separate file called the Change Tracking File. When an incremental backup needs to be done, it reads this file to determine which blocks need to be backed up. This eliminated reading the entire datafile, which was a time consuming step.
When a change occurs to a block, the Change Tracking Writer (CTWR) background process writes the change to the tracking file. The minimum size of the change tracking file is 10 MB increments.
SQL> connect abc/xyz@orcl;
SQL> select * from v$block_change_tracking;
SQL> alter database enable block change tracking using file ‘/opt/oracle/oradata/bct_file.chg’
SQL> select * from v$block_change_tracking;
SQL> alter database disable block change tracking;
SQL> select * from v$block_change_tracking;
Monitoring RMAN Backups
A DBA can view RMAN metadata regarding backups and recoveries by querying various dynamic performance views on the target database. These views display information from the control file of the target database.
Data Directory View | Description |
V$RMAN_OUTPUT | Display messages reported by an RMAN job in progress. |
V$RMAN_STATUS | Display the status of the RMAN job, as to whether it was successful or unsuccessful. |
V$SESSION_LONGOPS | Shows progress reports on RMAN backup and restores. |
RMAN Commands
RMAN> list backup by backup;
RMAN> list backupset by backup;
RMAN> list backup by backup verbose;
RMAN> list backup by backup summary;
RMAN> list backup by file;
RMAN> list copy of database;
RMAN> list copy of tablespace users;
RMAN> list copy of tablespace users;
RMAN> list copy of datafile 3;
RMAN> list incarnation;
RMAN> report need backup;
RMAN> report need backup days = 7 database;
(Names of files in the database that need minimum of 7 days of log files to be applied in the event of recovery)
RMAN> report absolete;
RMAN> delete obsolete;
RMAN> report schema;
RMAN> report schema at time ‘SYSDATE - 7’ ;
RMAN> report schema at scn 90000;
Performing Complete Recovery Manually
RESTORE [ DATABASE | TABLESPACE tablespace_name | { DATAFILE number | name } ]
Complete Closed Database Recovery using RMAN when Operating the Database in Archivelog mode
RMAN> run {
Backup database;
Backup archivelog all;
}
Simulating the loss of a file belonging to the SYSTEM tablespace.
Shutdown the ORCL Database
SQL> shutdown immediate;
Delete SYSTEM01.DBF file in ORCL directory
SQL> startup;
Error occurs that SYSTEM01.DBF file is deleted. Read Error Carefully
Now again shutdown the database
RMAN> run {
Allocate channel t1 type disk;
Set new_name for datafile 1 to ‘/opt/oracle/oradata/orcl/system01.dbf’;
Restore datafile 1;
Switch datafile all;
Recover datafile 1;
}
SQL> startup;
Comments
Post a Comment