Oracle Backup and Recovery Using RMAN
Mark Rank DBA UW-Platteville
Introduction
Who am I?
± DBA and Manager of Development for UW-Platteville
Oracle experience
± Worked with Oracle for about 10 years ± Worked with RMAN for 2 years ± Using RMAN version 9.2 in production for backup at UW-Platteville
Outline
Background
± General Backup and Recovery ± Overview of RMAN
Backup using RMAN
± Configuration ± Reporting and monitoring ± Executing a backup
Recovery using RMAN Cloning using RMAN
A little quiz before we start
Backing up Oracle data files using OS commands while the database is open will give a valid backup? Archiving the redo log files is done only for record retention reasons? If you have a backup of the database you can always recover the database? A database will have uncommitted transactions after recovery?
DBA Motto
Thou shall not loose data!
Why do we backup?
Manage Risk
± How much risk can we afford to accept?
Cost of backup systems Loss of customer confidence
± How much risk are we allowed to accept?
Political Factors Cultural Factors Legal Factors
Factors to Consider
Legislation or Organizational policies Time to backup Time to recover Redundancy of your system Criticality of the data Monitoring System availability during backup
Some Best Practices
Have a documented backup procedure Have a multilayer backup process if you can Have people trained with the recovery tools Monitor the backup processes regularly Correct issues with backup promptly Conduct Fire Drills of your backup processes
What is RMAN?
Stands for Recovery Manager Oracle¶s recommended way of doing physical backups Supports both online (hot) and offline (cold) backups Does backup at the block level resulting in a ³fine grain´ backup
RMAN Repository
A database used by RMAN to store configuration and record backup information Optional on 9i or greater Still need to come up with a backup method for the repository Not going to cover RMAN with the repository in this presentation
RMAN without Repository
With 9i or greater, can use the control file to store the RMAN configuration and backup data Will cause the control file to get larger May want to set the CONTROL_FILE_RECORD_KEEP_TIME
Executing RMAN
To invoke RMAN without a repository... cmd> rman target=[conn_string]
Viewing Configuration
To view the configuration
RMAN> show all;
To set parameters
RMAN> configure [parameter syntax];
See the reference manual for parameter syntax
Some key parameters
RETENSION POLICY CONTROLFILE AUTOBACKUP CONTROLFILE AUTOBACKUP FORMAT CHANNEL 1 DEVICE TYPE DISK FORMAT
A Note About DBID¶s
When using RMAN without a repository, need to inventory the DBID¶s Needed for recovery without a control file Create a script that inventories them as part of your back strategy
SQL> select dbid from v$database;
Performing an Online Backup
To backup the database without the archive logs
RMAN>backup database;
To backup the database with the archive logs
RMAN> Backup database plus archivelog;
Now for a demo«
Incremental Backup
RMAN does block level incremental backups Define levels of backup with level 0 being a full backup A level 0 backup must always exist before defining higher backups Also an option to do cumulative backups
Incremental Backup
Da y Le l ve
Su n 0
Mn 2
Tu s e 2
We 1
Thu r 2
Fr 2
Su n 0
Incremental Backup Syntax
To execute an incremental backup
RMAN> backup incremental level=[int] database plus archivelog;
Retention Policy
Recovery Window
± Latest possible date to recover database to ± Maintains information for a point-in-time recovery anywhere in the window
Backup Redundancy
± Maintains specified number of backups including the most current
Reporting on the Catalog
To get a summary of the backups
RMAN>list backupset summary;
To get the details of a backup set
RMAN>list backupset [int];
Now for a demo«
Managing the Catalog
Setting the retention policy
RMAN> configure retention policy redundancy 2;
Reporting obsolete
RMAN> report obsolete;
Deleting obsolete
RMAN> delete obsolete;
Reco ery
Read the book ³Oracle9i RMAN Backup & Recovery´ or attend one of Oracle¶s classes Recovery using RMAN is straightforward, but it is also easy to trip yourself up ³Practice, Practice, Practice´
Reco ering a Tablespace
A Demo
Using RMAN to Clone
An easy way to clone databases A good way to validate your backup A good way to practice recovery
Outline of the Procedure
Establish a target database and bring it up to NOMOUNT Connect using RMAN to the source database Force a checkpoint and log switch Duplicate the source to the target using the DUPLICATE TARGET DATABASE command
A note about files
Unless the file structures are the same you will need to put db_file_name_convert and log_file_name_convert commands in our INIT.ORA file Unless all of your archive logs are in the RMAN backup, you may have to do a manual recovery because of file name issues
A note about time
If you want your clone to a be as of a point in time, use the SET UNTIL TIME function You can use the TO_DATE function to specify the date
What that looks like
run { set until time = ³to_date(µ20051012¶,¶yyyymmdd¶)´; duplicate target database to LSTA pfile = \\rhea\apps\db\lsta\initlsta.ora; }
For more details
See Chapter 16 of ³Oracle9i RMAN Backup & Recovery´
A Word about Compatibility
In general executable must match target database See Appendix B of the RMAN Reference for details.
One Parting Note
Test your backups
± Fire drill regularly ± If possible use your backups as the source for test databases
Nothing worse than needing to recover and finding out the tape is blank
Summary
Background
± General Backup and Recovery ± Overview of RMAN
Backup using RMAN
± Configuration ± Reporting and monitoring ± Executing a backup
Recovery using RMAN Cloning using RMAN
Bibliography
Where does this information come from?
± Oracle 9i RMAN Backup & Recovery ± Oracle 9i New Features Overview Class ± Oracle 8 Backup and Recovery Workshop ± My own experimentation
Some Resources
Oracle9i RMAN Backup & Recovery
± By Freeman and Hart ± Published by Oracle Press
Oracle Manuals
± Recovery Manager Quick Reference ± Recovery Manager Reference ± Recovery Manager User's Guide
More Resources
Oracle Training
± Enterprise DBA Part 1B: Backup and Recovery
MetaLink Forum
± Oracle Server Backup and Recovery/RMAN
Q&A
UW-Platteville Development http://www.uwplatt.edu/oit/development E-mail address
[email protected]