Follow Us on Twitter

Oracle 11g feature van de maand: Data Recovery Advisor

Februari 2008 - In Oracle8i is RMAN voor het eerst geintroduceerd, de door Oracle aanbevolen tool voor Backup en Recovery. Een regelmatig gehoord tegen argument in die tijd was dat het te ingewikkeld was, niet gebruiksvriendelijk en er ook weer een nieuwe taal geleerd moest worden. En we hadden toch al de SQLPlus interface waarmee het uitvoeren van database recovery mogelijk was.

Oracle8i was het begin en in opvolgende releases is het product meer en meer verbeterd en ook gebruiksvriendelijker geworden. Voorheen zelfstandige commando's werden geintegreerd, de foutafhandeling werd verbeterd en ook werd RMAN opgenomen in de Enterprise Manager GUI.

In Oracle11g is het product wederom verder verbeterd en uitgebreid. Dit Whitebook richt zich op de Data Recovery Advisor.

Data Recovery Advisor is een in RMAN ingebouwde tool die automatisch de database (pro actief) kan controleren op data corruptie, hierover rapporteert, advies geeft omtrent de mogelijke herstel acties en indien gewenst deze ook automatisch uitvoert. Hoewel kennis van de achterliggende techniek aan te raden is, wordt het ook voor minder ervaren DBA's eenvoudiger om in geval van data corruptie de benodigde acties uit te voeren die leiden tot een volledig herstel van de database.

Commando's die hierbij gebruikt kunnen worden zijn:

  • LIST FAILURE
  • LIST FAILURE DETAIL
  • ADVISE FAILURE
  • REPAIR FAILURE PREVIEW
  • REPAIR FAILURE

 

Het klinkt allemaal mooi, maar laten we het dan ook maar eens daadwerkelijk uitproberen. Voor dit Whitebook is een eenvoudige Oracle database aangemaakt m.b.v. de Database Configuration Assistant.

Voor de uitleg maken we gebruik van de Command Line interface. Dezelfde functionaliteit is echter ook via de GUI beschikbaar voor wie dat prettiger vindt.

Om te beginnen moeten we RMAN starten

D:Orawerk>rman target=/ 

Recovery Manager: Release 11.1.0.6.0 - Production on Za Feb 9 10:47:04 2008 

Copyright (c) 1982, 2007, Oracle.  All rights reserved. 

Verbonden met doeldatabase: ORA1102 (DBID=2777292916) 

En om straks het verlies van een datafile te kunnen herstellen zal er in ieder geval een backup van de database moeten zijn.

RMAN> backup database plus archivelog; 

Vervolgens controleren we met LIST FAILURE of er sprake is van database corruptie.

RMAN> list failure; 

Er zijn geen fouten gevonden die aan de specificatie voldoen. 

Niet echt verwonderlijk dat er geen fouten gevonden worden. Maar daar gaan we iets aan doen. Om wel een failure te krijgen gaan we die forceren door de file van de USER tablespace te verwijderen danwel corrumperen (door het met Notepad te openen en te wijzigen). Vervolgens stoppen en starten we de database weer. Bij het openen van de database krijgen we nu een error op de datafile en kunnen we de database niet openen.

Met de database in MOUNT mode starten we RMAN weer op en kijken met LIST FAILURE wat er aan de hand is.

RMAN> list failure; 

Het control-bestand van de doeldatabase wordt gebruikt in plaats van de  
herstelcatalogus. 

Lijst met databasefouten 
========================= 

Fout-ID prioriteitstatus    Detectietijd overzicht 
------- -------- --------- ------------ ------- 
322     HIGH     OPEN      09-02-08      
                Een of meer niet-systeemgegevensbestanden zijn beschadigd. 

Voor meer details breiden we het LIST FAILURE statement uit met de getoonde Fout ID.

RMAN> list failure 322 detail; 

Lijst met databasefouten 
========================= 

Fout-ID prioriteitstatus    Detectietijd overzicht 
------- -------- --------- ------------ ------- 
322     HIGH     OPEN      09-02-08      
                Een of meer niet-systeemgegevensbestanden zijn beschadigd. 
  Impact: Zie de impact voor afzonderlijke onderliggende fouten. 
  Lijst met onderliggende fouten voor bovenliggende fout-ID 322 
  Fout-ID prioriteitstatus    Detectietijd overzicht 
  ------- -------- --------- ------------ ------- 
  325     HIGH     OPEN      09-02-08      
                  Gegevensbestand 4: D:\... is beschadigd. 
    Impact: Sommige objecten in tabelruimte USERS zijn mogelijk niet  
    beschikbaar. 

Het probleem is duidelijk. Maar hoe kunnen we dit nu het beste herstellen. Om er achter te komen wat volgens RMAN de beste methode is voor herstel, voeren we het ADVISE FAILURE commando uit.

RMAN> advise failure; 

RMAN toont dezelfde melding als hierboven aangevuld met: 

De opties voor automatisch herstel worden geanalyseerd. Dit kan enige tijd  
duren. 
Kanaal is toegewezen: ORA_DISK_1. 
Kanaal ORA_DISK_1: SID=155 apparaattype=DISK 
De opties voor automatisch herstel zijn geanalyseerd. 

Verplichte handmatige acties 
======================== 
Er zijn geen handmatige acties beschikbaar. 

Optionele handmatige acties 
======================= 
Er zijn geen handmatige acties beschikbaar. 

Opties voor automatisch herstel 
======================== 
Optie herstelomschrijving 
------ ------------------ 
1      Zet gegevensbestand 4 terug en herstel dit. 
  Strategie: Herstel houdt in volledig mediaherstel zonder gegevensverlies. 
  Herstelscript: d:\... 

RMAN heeft geen weet ervan of iemand het bestand verplaatst heeft of van naam veranderd. Vandaar dat er geen handmatige akties worden voorgesteld. Maar RMAN weet wel wat in dit geval de herstel mogelijkheid is. En het mooie is dat RMAN zelf al een script heeft aangemaakt wat gebruikt kan worden. Als we willen zien wat er in staat kunnen we het REPAIR FAILURE PREVIEW statement gebruiken (of het script met een editor bekijken).

RMAN> repair failure preview; 

Strategie: Herstel houdt in volledig mediaherstel zonder gegevensverlies. 
Herstelscript: d:\... 

Inhoud van herstelscript: 
   # restore and recover datafile 
   restore datafile 4; 
   recover datafile 4; 

En nu zijn er twee mogelijkheden. Of we voeren de recovery zelf uit (en we zouden daarvoor feitelijk dezelfde commando's gebruiken), of we laten het RMAN zelf oplossen met het REPAIR FAILURE statement. We kiezen in dit geval voor het laatste.

RMAN> repair failure; 

Strategie: Herstel houdt in volledig mediaherstel zonder gegevensverlies. 
Herstelscript: d:\... 

Inhoud van herstelscript: 
   # restore and recover datafile 
  restore datafile 4; 
   recover datafile 4; 

Wilt u het bovengenoemde herstel uitvoeren? (Voer JA of NEE in.) yes 
Herstelscript uitvoeren 

Starten van restore op 09-02-08. 
Kanaal ORA_DISK_1 gebruiken. 

Kanaal ORA_DISK_1: terugzetten van back-upset van gegevensbestand wordt  
gestart. 
Kanaal ORA_DISK_1: via back-upset te herstellen gegevensbestand(en) worden  
gespecificeerd. 
Kanaal ORA_DISK_1: gegevensbestand 00004 wordt teruggezet naar D:\... 
kanaal ORA_DISK_1: lezen uit back-uponderdeel D:\... 
Kanaal ORA_DISK_1: onderdeelhandle=D:\... 
Kanaal ORA_DISK_1: back-uponderdeel 1 is teruggezet. 
kanaal ORA_DISK_1: herstelbewerking voltooid; verstreken tijd: 00:00:01 
Voltooien van restore op 09-02-08. 

Starten van recover op 09-02-08. 
Kanaal ORA_DISK_1 gebruiken. 

Mediaherstel wordt gestart. 
mediaherstel voltooid; verstreken tijd: 00:00:02 

Voltooien van recover op 09-02-08. 
Herstel van fout is voltooid. 

Wilt u de database openen? (Voer JA of NEE in.) yes 
Database is geopend. 

Er wordt nog gevraagd of we het zeker weten en geven daar YES als antwoord. Vervolgens voert RMAN de benodigde akties uit. Omdat de database in MOUNT mode stond, wordt er nog gevraagd of we de database willen openen. Ook hierop antwoorden we met YES om het proces volledig af te ronden en weer een werkende database te hebben.

En om te controleren of RMAN ook echt vindt dat alles weer in orde is, vragen we nogmaals om een overzicht van de geconstateerde fouten.

RMAN> list failure; 

Er zijn geen fouten gevonden die aan de specificatie voldoen. 

GUI interface

Zoals hiervoor al geschreven, al deze akties hadden ook uitgevoerd kunnen worden met Database Control. Via Home => Availability => Perform Recovery komen we bij dit scherm.

Klik hier op Advise and Recover, vervolgens op Advise. Dan verschijnt een scherm met mogelijke handmatige akties. Hier klikken we op Continue with Advise. Er volgt een scherm met het Recovery Advice. We klikken op Continue en zien een scherm waarmee de Recovery Job opgestart kan worden.

Een klik op Submit Recovery Job start de RMAN recovery. De GUI toont een vergelijkbaar resultaat als bij de REPAIR FAILURE. Klikken op de op het scherm getoonde Open Database button rondt de recovery af.

Enkele overige nieuwe features.

De hierboven beschreven Data Recovery Advisor is niet de enige vernieuwing/verbetering in deze RMAN versie. Enkele andere features die het noemen zeker waard zijn:

  • Multisection Backup (parallelle backup van een datafile)
  • UNDO optimalisatie (alleen backup van nog niet gecommitte UNDO)
  • Block corruptie detectie (via uitgebreid VALIDATE statement)
  • Snellere compressie met ZLIB (licentie noodzakelijk)
  • Backup van Read Only Transportable tablespaces
  • Virtual Private Catalog

 

Conclusie

Als er al twijfels waren over het gebruik van RMAN vanwege (vermeende) complexiteit, dan is de introductie van de Data Recovery Advisor, de overige nieuwe features en de integratie in Database Console een extra reden om de overstap te maken.

Maar niet alleen hiervoor is het gebruik van RMAN aan te raden. De vele mogelijkheden die het product biedt maken een robuuste backup en recovery strategie mogelijk, met in geval van een calamiteit een zo kort mogelijke Mean Time To Recover.

En het mooie van dit alles is, het product is ook nog eens gratis.

Referenties

 

  • Oracle Database Backup & Recovery User's Guide 11g Release 1 (11.1) B28270-02
  • Oracle Database Backup & Recovery Reference 11g Release 1 (11.1) B28273-02
  • Oracle Database 11g New Features - Robert G. Freeman
  • Oracle Technology Network : http://www.oracle.com/technology/pub/articles/oracle-database-11g-top-fe... ">http://www.oracle.com/technology/pub/articles/oracle-database-11g-top-features

 

Over de auteur
Jaco van den Berg is sinds 1981 werkzaam in de ICT. Hij is begonnen als systeemontwikkelaar, en is daarna meer en meer de kant opgegaan van het operationeel beheer. Vanaf 1996 is hij werkzaam als Oracle DBA. Momenteel ligt zijn focus op het installeren, inrichten en beheren van Oracle omgevingen.

Waardering:
 

Reacties

Nieuwe reactie inzenden

De inhoud van dit veld is privé en zal niet openbaar worden gemaakt.

Meer informatie over formaatmogelijkheden

CAPTCHA
Deze vraag is om te testen of u een persoon bent en om spam te voorkomen
Image CAPTCHA
Enter the characters shown in the image.