Een introductie in Oracle Recovery Manager (RMAN)
Juli 2004 - Oracle’s Recovey Manager (RMAN) is het hulpmiddel voor de Oracle DBA om database backup’s en restore operaties uit te voeren. RMAN is geïntroduceerd met release 8i van de Oracle database en is ontstaan uit de Enterprise Backup Utility (EBU) die in de oudere versies beschikbaar was. EBU werd niet veel toegepast. De Oracle DBA had meestal een aantal scripts waarmee de backup’s (online en offline) werden gemaakt. Een restore van de database werd dan ook beschouwd als een echte kunst die alleen door experts kon worden uitgevoerd.
Met de komst van de “self managing database” heeft Oracle onderkend dat op het gebied van Backup & Recovery verbeteringen noodzakelijk waren. Hieruit is RMAN ontstaan, dat met elke nieuwe release van de Oracle database weer sterk wordt verbeterd.
Architectuur
RMAN maakt gebruik van een repository om daarin zijn metadata op te slaan. In deze metadata wordt bijgehouden uit welke datafiles, archivelogs, redologs een database bestaat. Deze metadata wordt altijd opgeslagen in de controlfile van de database. Omdat de controlfile beperkte ruimte heeft voor het opslaan van backup records, kan een aparte recovery catalog database worden gebruikt. In deze database kan een veel langere historie worden bijgehouden van backup en restore activiteiten. Een ander voordeel van deze recovery catalog is dat hierin backup scripts kunnen worden opgeslagen. De recovery catalog wordt onderhouden door de RMAN utility.
RMAN maakt gebruik van een repository om daarin zijn metadata op te slaan. In deze metadata wordt bijgehouden uit welke datafiles, archivelogs, redologs een database bestaat. Deze metadata wordt altijd opgeslagen in de controlfile van de database. Omdat de controlfile beperkte ruimte heeft voor het opslaan van backup records, kan een aparte recovery catalog database worden gebruikt. In deze database kan een veel langere historie worden bijgehouden van backup en restore activiteiten. Een ander voordeel van deze recovery catalog is dat hierin backup scripts kunnen worden opgeslagen. De recovery catalog wordt onderhouden door de RMAN utility.
De RMAN command line utilty is de client waarmee backup en restore commando’s worden uitgevoerd. Deze commando’s worden gecompileerd tot Remote Procedure Calls (RPC). De RPC bepalen de volgorde van activiteiten die op de target database moeten worden uitgevoerd. In de daaropvolgende executie fase worden deze instructies (eventueel parallel) naar de target database verzonden en uitgevoerd.
Het grote voordeel van RMAN is dat deze eenvoudig kan worden geïntegreerd met bestaande backup software als Legato. Hiervoor zijn Media Management Layers (MML) beschikbaar. Deze MML fungeert als een soort API. Backups worden nu rechtstreeks naar de backup server (bv. Legato) gestuurd via de MML. De backup server zal dan bepalen naar welke tapes geschreven moet worden. Zonder deze MML kan er alleen naar disk worden geschreven.
Backup & Recovery
Het maken van een backup met behulp van RMAN is zeer eenvoudig. De eerste stap bestaat uit het connecteren aan de recovery catalog database én de doel/target database. Wordt van de target database voor het eerst een backup gemaakt dan zal deze eerst moeten worden geregistreerd in de catalog database. Is de database al geregistreerd dan verdient het aanbeveling om de gegevens in de recovery catalog te synchroniseren met de structuur zoals die op dat moment is. Er kunnen per slot van rekening een aantal tablespaces erbij zijn gemaakt.
Voor de connectie aan de target database is het noodzakelijk om dit als een gebruiker met het SYSDBA privilege te doen. Hiervoor kan het SYS account worden gebruikt. Beter is om hiervoor een apart backup account aan te maken. De recovery catalog moet in een aparte database worden geplaatst. Voor het aanmaken van recovery catalog is het ook aan te bevelen om hiervoor een account anders dan SYS of SYSTEM te gebruiken.
Met het backup commando wordt een backup gemaakt. Bij dit commando kunnen zeer veel opties worden meegegeven. Zo kan worden gespecificeerd of er een full of incremental backup moet worden gemaakt etc. In onderstaand voorbeeld staat het commando voor het maken van een full online database backup naar disk, waarbij tevens alle archived redo logs ouder dan één dag worden weggeschreven én verwijderd.
$ rman target rmandba/password@target catalog rman/password@rcat.local
Recovery Manager: Release 9.2.0.4.0 - Production
Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.
connected to target database: ORADB1 (DBID=1234567890)
connected to recovery catalog database
RMAN> resync catalog;
starting full resync of recovery catalog
full resync complete
RMAN> run {
2> allocate channel ch1 type disk format 'c:\backup\full_backup_%d_%s_%t';
3> backup full tag FULL_DB
4> ( database include current controlfile)
5> ( archivelog from time 'sysdate-1' all delete input);
6> release channel ch1;
7> } Met commando list backup is te zien welke backups zijn gemaakt.
Ook de restore van een database wordt met behulp van RMAN uitgevoerd. Aangezien RMAN weet welke backup’s zijn gemaakt en op welke devices (tape/disk) is het daarbij niet nodig om daarvoor channels te definiëren. Een voorbeeld van een Point-In-Time-Recovery script van RMAN. Om makkelijk met RMAN te werken verdient het aanbeveling om de environment variabele NLS_DATE_FORMAT te gebruiken. In dit geval is deze “yyyy-mm-dd hh24:mi:ss”.
RMAN> run {
2> shutdown immediate;
3> startup mount;
4> set until time '2004-07-14 10:00:00';
5> restore database;
6> recover database;
7> alter database open resetlogs;
8> } Voordelen
Oracle RMAN is volledig geïntegreerd met Oracle Grid Control/Enterprise Manager. Met behulp hiermee zijn backups te schedulen en te controleren. Ook is het mogelijk om een recovery uit te voeren. Dit maakt het gebruik van RMAN command line interface eigenlijk overbodig.
Met behulp van RMAN is het eenvoudig om database te kopiëren. Deze kopie database kan dan bijvoorbeeld door ontwikkelaars worden gebruikt. Voorheen diende de DBA hiervoor zelf te bepalen hoe hij dit wilde realiseren (export/import of kopiëren datafiles). Dit was zeer bewerkelijk en gaf veel fouten tot gevolg. Met RMAN is dit eenvoudiger geworden, de kopie database wordt gecreëerd uit de beschikbare backups zodat de bestaande database niet wordt belast.
Het gebruik van een Media Management Layer zal voor grote omgevingen snel een voordeel opleveren. Het levert een naadloze integratie van de Oracle database backup met een (bestaande) backup oplossing. Voor kleine omgevingen loont het gebruik van een MML meestal niet. Hiervoor is het meestal eenvoudiger om een backup naar disk te maken. Deze disk backup wordt dan door de reguliere backup naar tape geschreven. Hierbij zijn dan wel weer extra handelingen noodzakelijk, zoals het verwijderen van overbodige backups. Voordeel van deze oplossing is wel dat de meest recente backup snel beschikbaar is. Een restore zal dan ook zeer snel kunnen worden uitgevoerd. Bij het gebruik van een MML zal er eerst door de backup server de correcte backup moeten worden teruggehaald.
Nieuw in Oracle10g
Een belangrijke toevoeging van RMAN in Oracle10g betreft het gebruik van de flashback area.Recovery operaties maken nu gebruik van de flashback area om zo de herstelactie sneller uit te voeren. Daarnaast is er ook de mogelijkheid om het commando FLASHBACK DATABASE in te geven. De database zal dan worden gerestored tot een voorgaande tijd zonder dat er datafiles of media recovery wordt gebruikt. Dit zal volledig uit de flashback area worden opgebouwd.

Reacties
Nieuwe reactie inzenden