Inhoudsopgave:
Video: Zeilen zonder ervaring: kan dat? - de Volkskrant 2024
U zou kunnen stellen dat het verplaatsen van de database met Oracle 12c Recovery Manager met goede back-ups mogelijk is. Het terugzetten van een grote database naar een vorig punt is echter tijdrovend en vervelend. En als je niet ver genoeg teruggaat, moet je opnieuw beginnen vanaf het begin.
U kunt de database om deze redenen mogelijk flashen:
-
Herhaalde testscenario's: Stel dat u een toepassing hebt die u in uw ontwikkelomgeving test. Telkens wanneer u de toepassing uitvoert, worden uw gegevens gewijzigd. U wilt de gegevens terugzetten naar de oorspronkelijke waarden vóór de volgende test. Flashback is hiervoor een uitstekende tool.
-
Corrupie van logische gegevens: Misschien heeft iemand per ongeluk het verkeerde programma in uw productieomgeving gebruikt; je moet teruggaan naar een punt voordat de fout optrad. U kunt dit doen met een gegevensherstel, maar Flashback is sneller en eenvoudiger.
-
Implementatieprocedures: Misschien geeft u een nieuwe versie van uw code vrij die alle soorten objecten in uw productieschema update met zowel DDL als DML. U kunt het eenvoudig terugdraaien als de toepassing niet goed werkt in de doelprestatieparameters.
Flashback Database werkt door extra informatie op te nemen waarmee u transacties kunt terugdraaien zonder een volledig databaseherstel uit te voeren. Niet alleen dat, maar het werkt erg snel. De Flashback-database heeft deze snelle functies, onder andere:
-
U kunt de database in de alleen-lezen modus openen om te zien of u ver genoeg terug bent gegaan.
-
Niet ver genoeg? Snel verder terugrollen.
-
Te ver? Rol vooruit.
U kunt al deze taken uitvoeren met eenvoudige opdrachten in SQL * Plus of Oracle Enterprise Manager. Om het met RMAN te doen, praat je meerdere volledige herstarts en veel tijd tussendoor.
Flashback-database configureren en inschakelen
Flashback-database werkt anders dan de Flashback-functies. Met Flashback-database slaat Oracle een bestand op dat flashback-log genoemd wordt. Flashback-logboeken hebben de gegevens om blokken terug te zetten naar een vorige keer. Flashback-logboeken worden opgeslagen in het flash_recovery_area.
Twee variabelen spelen hier een rol:
-
Hoe ver terug wil je gaan?
-
Hoeveel gegevens zijn er in die periode binnen uw database gewijzigd?
Hoe verder u teruggaat en hoe meer wijzigingen u aanbrengt, hoe meer flashback-logboeken u genereert. Zorg dat je voldoende ruimte hebt om die logboeken op te slaan, anders flitst je nergens.
Als u overweegt Flashback-database te implementeren, moet u mogelijk de parameter db_recovery_file_dest_size vergroten.Hoeveel u vergroot, hangt af van de twee variabelen: hoe ver terug en hoeveel gegevens? Als u een goed startpunt wilt, gebruikt u deze formule:
Nieuwe Flash-herstelgebied Grootte = Huidige Flash Herstelgebied Grootte + Totale databasegrootte × 0. 3
In essentie probeert u ongeveer 30 procent van de grootte te reserveren uw totale databasegrootte in het Flash-herstelgebied voor flashback-logboeken.
Vanaf dat moment kunt u controleren hoeveel ruimte de flashback-logboeken verbruiken.
Nadat u het Flash-herstelgebied hebt geconfigureerd, schakelt u de Flashback-functie in de database in door de volgende stappen uit te voeren:
-
Overweeg hoe ver terug u wilt kunnen terugflitsen.
De standaardwaarde is 24 uur (of 1, 440 minuten). Stel dat je maximaal 48 uur wilt kunnen flitsen.
-
Configureer hoe ver terug u wilt gaan met de parameter db_flashback_retention_target; Hiertoe logt u in bij SQL als SYSDBA en typt u
In dit voorbeeld is de tijd ingesteld op 2, 880 minuten (48 uur).
U zou het volgende moeten zien voor elke tijdsduur die u kiest.
Systeem gewijzigd.
-
Sluit uw database af en start deze opnieuw op in de mount-modus.
-
Zet de database in flashback-modus door dit te typen:
U zou dit moeten zien:
Database gewijzigd.
-
Open de database door dit te typen:
U zou dit moeten zien:
Database gewijzigd.
Nu de database in de flashback-modus staat, kunt u altijd terugflitsen in uw flashback-venster.
De Oracle 12c-database terugdraaien
Maak geen zorgen als de database moet worden geflitst. Het proces is relatief eenvoudig.
Terugdraaien van een database verwijdert alle wijzigingen die zijn opgetreden na het geselecteerde tijdstip om terug te keren. Neem deze overweging niet lichtvaardig in overweging.
Typ dit als u wilt zien hoever u terug kunt gaan:
Dit zou ongeveer zo moeten zijn:
OLDEST_FLASHBACK_TIM -------------------- 14 -AUG-2013 06: 34: 03
db_flashback_retention_target zou ongeveer de limiet van dat tijdsbestek moeten zijn. Mogelijk vindt u het langer als de ruimte geen probleem is en de database oude flashback-logboeken nog niet heeft opgeschoond.
Stel dat een gebruiker per ongeluk het HR-schema een uur geleden uit uw database heeft verwijderd.
-
Sluit uw database af.
-
Start hem opnieuw op in de montagemodus.
-
Typ het volgende, waarbij 1 het aantal uren is dat u wilt flitsen:
U zou dit moeten zien:
Flashback voltooid.
-
Controleer de flashback voordat u deze permanent maakt:
Dit zou u moeten zien:
Database gewijzigd.
-
Ga naar stap 6 als u tevreden bent met het resultaat. Als u niet tevreden bent met de tijd, gaat u verder met stap 9.
-
Sluit de database.
-
Start de database in de mount-modus.
-
Open de database met Resetlogs:
U zou dit moeten zien:
Database gewijzigd.
-
Start de database opnieuw op in de mount-modus.
-
Typ het volgende:
U zou dit moeten zien:
Mediaherstel voltooid.
-
Start uw database in de mount-modus.
Ga naar stap 12 als u wilt terugflitsen naar een tijdstempel. Als u terug wilt flitsen naar een eerder gemaakt herstelpunt, gaat u naar stap 13.
Zie voor meer informatie over herstelpunten " de zijbalk van de herstelpunten.
-
Typ het volgende:
U zou dit moeten zien:
Flashback voltooid.
-
Typ het volgende als u terug wilt flitsen naar een herstelpunt:
U zou dit moeten zien:
Flashback voltooid.