Oracle’s Backup and Recovery ToolRecovery MANager
Presented by Paul Hebert/ITEC
Oracle’s Backup and Recovery ToolRecovery MANager
RMAN creates backups and restores Oracle database files to tape or disk
•Datafiles•Controlfiles•Parameter files•Archive logs
RMAN will perform consistent and inconsistent database backups
•Consistent backups must be performed with the target database shut down•Inconsistent (hot) backups require the target database is in archivelog mode•Inconsistent backups require logical recovery using archivelogs
RMAN manages information about generated backup media files
•Backup information is stored in control files•Backup information optionally stored in an RMAN repository catalog•RMAN can perform point-in-time restoration
3
RMAN can create image copies usable by user-scripted restore procedures
RMAN can create backup sets instead of traditional image copies
RMAN uses disk or tape channels to read and write to disk or tape media
•Exact copies of target database files
RMAN permits restartable backups if you have a specific time window within which backups are permitted
RMAN tape devices rely on 3rd party Media Manager software
4
RMAN has a command-line interface (rman) and is also integrated with Grid Control
Backup set media options
Backup Sets are logical groupings of backed-up database files
•Backup sets can be written to disk or tape•Backup sets can be compressed by omitting unchanged blocks•Tape backup sets can be encrypted (via Oracle Secure Backup)•Tape backups must use backup sets
5
•Backup sets have a unique ID and may have a ‘TAG’ for RMAN identification•Backup sets consist of one or more individual files called backup pieces.•Backup piece files contain the data blocks from a backup
RMAN recovery using Backup Sets
•The recovery process identifies the target SCN or date to which to recover•Needed blocks are retrieved from the appropriate backup set pieces•Data files are reconstructed from the needed blocks
Backup Sets
6
Channels
•A stream of data to a device using one server session•Server session performs the backup, restore and recovery•Channels can be configured with device-specific settings•Channels are automatically allocated, or manually allocated
RUN { ALLOCATE CHANNEL c1 DEVICE TYPE sbt; BACKUP DATABASE PLUS ARCHIVELOG; }
BACKUP DATAFILE 3; RESTORE TABLESPACE users;
7
•Two types of device type – disk and sbt•RMAN has an open API for communicating with Tape and other media manager software•RMAN sends labeled streams of bytes to the media manager during backup•The labeled streams are returned by the media manager during RMAN restore operations
RMAN> CONFIGURE DEVICE TYPE sbt PARALLELISM 1; RMAN> CONFIGURE DEFAULT DEVICE TYPE TO sbt; RMAN> CONFIGURE CHANNEL DEVICE TYPE sbt PARMS 'ENV=(NSR_SERVER=bksvr1)'; RMAN> BACKUP DATABASE;
•Media Manager vendors have specific installation instructions that vary by vendor•Refer to vendors for detailed installation and use instructions
8
Backup Set
Image Copy
•RMAN-proprietary storage of backed-up data blocks•Consist of a Backup Set identifier plus associated backup set files or pieces•Can only be restored using RMAN
•Equivalent to file copies of original database files•RMAN considers user-managed backups as Image Copies•Contain ALL data blocks – no compression
9
Backup sets or image copies can be labeled with a text TAG
RMAN commands can select backup sets or copies using the TAG
TAGs are visible in RMAN list or report output
BACKUP AS COPY COPY OF DATABASE FROM TAG=full_cold_copy TAG=new_full_cold_copy;
BACKUP AS COPY DATABASE TAG=full_cold_copy;
10
Full backup
Incremental backup
•Backup of all specified database file blocks•Independent of when database files were last backed up•Not used in incremental backup strategies
•Backup of blocks changed since last incremental backup• SCN used to identify changed blocks
•Level 0 incremental backup•Level 1 incremental backup
Full backup is equivalent to
incremental level 0
11
Level 0 incremental backups•Backup of all blocks in specified database files•Independent of when files were last backed up•Base for subsequent Level 1 backups
12
Differential backupContain all blocks changed after the most recent incremental backup at level 1 or 0
Level 1 incremental backups
Cumulative backupContain all blocks changed after the most recent incremental backup at level 0
•Cumulative backups become much larger over time•Cumulative backups are quicker to restore
•Differential backups remain smaller and quicker to perform•Differential backups are slower to restore requiring changes in multiple earlier incremental backups
13
RMAN can use a Block Change Tracking file to identify changed blocks
RMAN can report, validate, remove or protect backup files
•RMAN can throttle disk I/O rate during backup and restore•RMAN can limit the number and size of backup set files
RMAN performance controls
•Bitmap file created automatically by Level 0 backup if configured•RMAN can now avoid rescanning database files for changed blocks
(blocks with newer SCN than in previous backup sets)•Loss of change tracking file is harmless – recreated by next Level 0
•RMAN will create a missing Level 0 backup automatically when asked to perform a Level 1 backup
RMAN and missing Level 0 backups
Change Tracking file can introduce database overheadyou need to evaluate if it is worth the extra performance hit
14
RMAN can backup and restore your Flash Recovery Area
RMAN can use and manage ASM files
RMAN can clone (duplicate) databases using the AUXILIARY connection
RMAN can switch an instance to use a copy of a database or datafiles
RMAN actions can be scripted and scheduled using cron or dbms_job
15
RMAN does not automatically enforce your retention policies
RMAN does not automatically delete expired backup files
RMAN does not automatically detect missing backup files
RMAN does not backup any other types of files
• Oracle code tree• Other operating system files• Alert logs and traces• Oracle Wallet files
RMAN is not upward or downward version compatible
• You must backup 10g databases with 10g RMAN!•You can only backup 9i databases with 9i RMAN!•10g and 9i can’t share a repository!
16
Increasing backup set size and backup durationFaster recovery
17
Consistent backup set size and backup durationSlower recovery using more backup sets
18
C. Daily Level 1 Differential Incremental backup
A. Monthly Full Level 0 Incremental backupB. Weekly Level 1 Cumulative Incremental backup
Advantages• RMAN doesn’t have to apply more than a few days worth of
differential backups to the latest cumulative backup and the original level 0 backup
• No more than 1 day of redo logs need to be applied during recoveryDisadvantages
• May not meet with your MTTR target (Mean-Time-to-Recovery)
Rule of Thumb:You should perform a new Level 0 backuponce >50% of blocks have changed
19
Allocating multiple channels for a device type allows parallel completion of RMAN tasks
Manual channel allocation has to happen inside a RUN { } block
Device types can be configured for automatic allocation of parallel channels
CONFIGURE DEVICE TYPE DISK PARALLELISM 2;
Multiple channels can be used to write to multiple devices simultaneously
If a channel fails, surviving channels will attempt to complete the restore job
RUN{ALLOCATE CHANNEL c1 DEVICE TYPE sbt;ALLOCATE CHANNEL c2 DEVICE TYPE sbt;ALLOCATE CHANNEL c3 DEVICE TYPE sbt;BACKUP DATAFILE 5,6,7;}
20
21
Two Steps:
RESTORE
RECOVER
•Missing files are restored from the blocks in backup sets OR•Image copies are copied to the original (or new) file locations•Unmodified files not modified can be skipped by RMAN automatically
•Recovery must be performed for incomplete backups•Archive logs are applied to the database
•RMAN uses the record of available backups in the RMAN repository to select the best available backups for use in the restore operation. •The most recent backup available, or the most recent backup satisfying any UNTIL clause specified in the RESTORE command, is always the preferred choice•If two backups are from the same point in time, RMAN prefers image copies over backup sets because RMAN image copy restores are faster
22
23
script
•Reusable lists of RMAN commands
•Stored on the file system or in the RMAN respository•Not the Control file!
•LOCAL scripts used by a single database instance
•GLOBAL scripts shared by database instances in repository
# create recovery catalog script to back up database and archived logs CREATE SCRIPT backup_whole COMMENT "backup whole database and logs" { BACKUP INCREMENTAL LEVEL 0 TAG b_whole_l0 DATABASE PLUS ARCHIVELOG; }
# creates recovery catalog script to back up database and archived logs CREATE GLOBAL SCRIPT global_backup_db COMMENT "backup any database from the recovery catalog, with logs" { BACKUP DATABASE PLUS ARCHIVELOG; }
24
hostExecute a command on the local host from within RMAN
host “dd if=/orabak/tools.dbf of=/oradata/tools.dbf”
25
sqlExecute a SQL command on the Target database within RMAN
sql ‘alter system archive log current’;
26
Select statements not supported
list / reportcrosscheckvalidatedelete
27
list / reportLIST BACKUP OF DATABASE ARCHIVELOG ALL; # lists known backups of db files and logsLIST COPY; # lists only image copiesLIST BACKUP; # lists all RMAN backup media
REPORT NEED BACKUP; # report which database files need backup
List all backup sets and pieces known by RMAN
May not represent actual files available on disk
28
crosscheckCROSSCHECK BACKUPSET; # crosschecks backup sets on disk and SBTCROSSCHECK BACKUP; # crosscheck all RMAN backup media
Verifies existence of known backup file sets and pieces in the RMAN repositoryMarks backup file sets and pieces as expired if they exceed retention policies
CROSSCHECK doesn’t physically delete anything!
RMAN backup files have four possible states in the repository
AVAILABLEUNAVAILABLEEXPIREDOBSOLETE
29
validateBACKUP VALIDATE DATABASE ARCHIVELOG ALL;
RESTORE CONTROLFILE VALIDATE; RESTORE ARCHIVELOG ALL VALIDATE; RESTORE DATAFILE 4,5,6 VALIDATE;
Verifies existence and availability of database file media
Checks for corrupted blocks and reports them in V$DATABASE_BLOCK_CORRUPTION
Damaged backup file media may be repaired using Block Media Recovery
30
deleteDELETE BACKUP TAG='before_upgrade'; # delete backup based on tagDELETE NOPROMPT ARCHIVELOG ALL; # delete all archivelogsDELETE EXPIRED BACKUP; # delete expired after crosscheckDELETE BACKUP; # delete ALL backups
Remove any or all database backup file media from disk/tape and RMAN repositoryCan remove obsolete media no longer needed to recover under retention policies
31
32
It is easier to show RMAN (and not just talk about it endlessly …)
rman target system/pswd@sid1
rman target system/pswd@sid1 catalog rman/pswd@rmansid
rman target system/pswd@sid1 catalog rman/pswd@rmansid auxiliary system/pswd@sid2
rmanrman>> connect target system/pswd@sid1
33
backup database;•Uses default device type setting (SBT or Disk)•Creates device channels according to parallelism setting•Creates image copies or backup sets•Might not backup controlfile automatically!•Doesn’t backup archivelogs
Inconsistent database backup including archive logs
show controlfile autobackupconfigure controlfile autobackup on
show {parameter|ALL}configure {parameter} clearconfigure {parameter} {newsetting}
restore and recover
RMAN 11g Features•Parallel backup of ‘regions’ of BIG datafiles•New encryption algorithm•Data Recovery Advisor 11g•Online backup of standby databases•Virtual, secure and mergeable RMAN catalogs•Encrypted disk backup sets
40
Oracle® Database Backup and Recovery Basics10g Release 2 (10.2) http://download.oracle.com/docs/cd/B19306_01/backup.102/b14192/bkup004.htm#sthref385
Oracle® Database Backup and Recovery Advanced User's Guide 10g Release 2 (10.2)
http://download-east.oracle.com/docs/cd/B14117_01/server.101/b10734/toc.htm
Oracle® Database Backup and Recovery Reference10g Release 2 (10.2)
http://download-west.oracle.com/docs/cd/B19306_01/backup.102/b14194/toc.htm
Freeman & Hart, Oracle9i RMAN Backup & Recovery, Oracle Press(useful 3rd party media manager chapters)http://www.mhprofessional.com/product.php?cat=7&isbn=0072226625
41