Tuesday 20 May 2014

Taking database backup using RMAN method

What is RMAN? How to take database backup using RMAN? 

RMAN:
Recovery Manager is a tool that manages the process of creating backup and also manages the process of restoring and recovering them during disaster situations. In addition to RMAN repository records, the recovery catalog can also hold RMAN stored scripts, sequences of RMAN commands for common backup tasks. With RMAN we can be 100% sure that our database has been backed up. Moreover we can take check whether the backup files are valid or not. Further we can take incremental backups which results in improvement of performance during backup and recovery time. Backup process can be made faster using Parallel operation. In RMAN backup method no Extra redo generated when backup is taken compared to online backup. With the compression algorithm facility in RMAN we can save space in hard disk. RMAN Maintains repository of backup metadata. RMAN related views store backup locations.RMAN helps us in identifying the files which need to be backed up.

Before taking RMAN backup it is mandatory that the database should be in Archive log mode. Check whether it is enabled or not
SQL> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /u01/oracle/app/oradata/pavan/ttdtest/flash_recovery_area/TTDTEST/archivelog
Oldest online log sequence     20
Next log sequence to archive   22
Current log sequence           22

Let’s see start taking backup with RMAN
rmantarget /
RMAN >BACKUP DATABASE;
RMAN >exit;

The above process is a simple way of taking database backup using RMAN. We are not sure where the backup is taken/what is it's size/what is the format of it? Generally the backup location is either flash recovery area or $ORACLE_HOME/dbs location by default. 
-----------------------------------------------------------------------------------------------------------------------
RMAN BACKUP SCRIPT:
The below script is a simple, efficient, compressed algorithm used one. We will learn all RMAN related tags and their purpose with in short time.  
RMAN>

run{
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 14 DAYS;
CROSSCHECK ARCHIVELOG ALL;
CROSSCHECK BACKUP;
allocate channel t1 type disk format '/u01/ttdtest/flash_recovery_area/TTDTEST/backupset/ORA_rman_full_backup_ttdtest_%U.bck' maxpiecesize 5120m;
backup incremental level = 0 AS COMPRESSED BACKUPSET database tag = full_open_backup_disk;
release channel t1;
allocate channel t3 type disk format '/u01/ttdtest/flash_recovery_area/TTDTEST/backupset/ORA_rman_arch_backup_ttdtest_%U.bck';
backup archivelog until time 'sysdate -1' delete input;
sql  'alter system archive log current';
backup archivelog all;
backup current controlfile format '/u01/ttdtest/flash_recovery_area/TTDTEST/backupset/ORA_rman_ctrl_backup_ttdtest_%U.bck';
delete noprompt obsolete;
delete noprompt expired backup;
delete noprompt expired archivelog all;
release channel t3;
}
Exit
Now i can see all my files in u01/ttdtest/flash_recovery_area/TTDTEST/backupset/ location.
 v$rman_status is the view that maintains all RMAN backup related information.

RMAN Commands:
We can return any setting to its default value by using CONFIGURE command or we can change the settings .
RETENTION POLICY TO RECOVERY WINDOW OF 14 DAYS -----> indicates that we are will be keeping our database backup file for next 14 days. After that it will become obsolete/invalid which is no longer useful for restore and recovery.
CROSSCHECK ARCHIVELOG ALL   -----> indicates that it is checking the archive logs whether they are valid or not
CROSSCHECK BACKUP -----> tells us whether the previously taken database backups are valid or not/Check whether backup items still exist
allocate channel   -----> this command is to manually assign a channel to back up specified files. An RMAN channel represents one stream of data to a device type.
Type disk  ----->indicates backup files are going to take in disk
Format ----->indicates the naming convention of my backup files and their extention with .bck format. it can be any
maxpiecesize 5120m----->indicates that my each backup file should be atmost 5GB of size.
Backup incremental level = 0  ----->indicates that i am taking full backup of database. other than this i can iake incremental,cumulative database backups as per my wish just by replacing 0 with either 1 or 2.
COMPRESSED ----->indicates that the backup should be compressed one.the purpose of using this is it will reduce the backup size.
Tag = full_open_backup_disk  ----->A tag is a symbolic name for a backup set. it tells us that it is full backup.
release channel t1   ----->RELEASE CHANNEL command to release a normal or maintenance channel while maintaining a connection to a target database instance.
Allocate channel t3 & release channel t3 ----->channel t3 is initiated and closed for backing up archive logs
backup archivelog until time 'sysdate -1' delete input ----->indicates that it is taking backup of archive logs till before 24 hours and dekleting the files from disk
sql  'alter system archive log current'  ----->this indicates a normal sql to take a log switch. the purpose of it is to archive all transactions
backup archivelog all ----->it backs up all the archivelogs till now
backup current controlfile ----->indicates taking backup of control file
delete noprompt obsolete  ----->indicates deletion of previous backups(greater than 14 days) without prompting/asking
delete noprompt expired backup ----->indicates deletion of expired(manually deleted in OS level) backups without prompting/asking
delete noprompt expired archivelog all ----->indicates deletion of expired archivelogs without prompting/asking.
in RMAN prompt type show all , then it will display all the settings defined for rman.

The backup we took from above steps are useful for recovery operations in future(with in 14 days).


Happy learning....!!!

No comments:

ORA-600 [kwqitnmphe:ltbagi], [1], [0] reported in the alert log file.

ORA-00600 [kwqitnmphe:ltbagi] Cause: This issue arises in 12.1.0.2. The error occurs because there are still Historical Messages without...