Gjelder for:
Oracle-database – 11gR2
Problem:
Under utføring av ytelsestester er det påkrevd å laste inn en ren database før starten på en ny test. En måte å sikre en ren database på er å gjenskape hele databasen før hver test kjøres, men avhengig av størrelsen kan denne tilnærmingen være svært tidkrevende eller ineffektiv.
Løsning:
Denne artikkelen beskriver hvordan du bruker Oracles gjenopprettingsfunksjon til å raskt gjenopprette en database til den tilstanden den var i akkurat før du kjørte arbeidsbelastningen. Mer spesifikt beskriver denne artikkelen trinnene for hvordan du bruker «garanterte gjenopprettingspunkter».
Gjenopprettingspunkt:
Et gjenopprettingspunkt er bare et navn som assosieres med et tidsstempel eller en SCN for databasen. Du kan opprette enten et normalt gjenopprettingspunkt eller et garantert gjenopprettingspunkt. Forskjellen mellom de to er at et garantert gjenopprettingspunkt lar deg gå tilbake til gjenopprettingspunktet uavhengig av initialiseringsparameteren DB_FLASHBACK_RETENTION_TARGET, dvs. at det alltid er tilgjengelig (forutsatt at du har nok ledig plass på flashgjenopprettingsområdet).
MERK: I denne artikkelen var Gjenopprettingslogging ikke slått på.
Garantert gjenopprettingspunkt:
Forutsetninger: Oppretting av et garantert gjenopprettingspunkt krever følgende forutsetninger:
- Brukeren må ha SYSDBA-systemrettigheter
- Du må ha opprettet et flashgjenopprettingsområde
- Databasen må være i ARCHIVELOG-modus
Opprett et garantert gjenopprettingspunkt:
Etter at du har opprettet eller overført en fersk database, er det første du må gjøre å opprette et garantert gjenopprettingspunkt slik at du kan gå tilbake til det hver gang før du starter en ny arbeidsbelastning. Trinnene er som følger:
- $> su – oracle
- $> sqlplus / as sysdba;
- Finn ut om ARCHIVELOG er aktivert
SQL> select log_mode from v$database;
Fortsett hvis trinn 3 viser at ARCHIVELOG ikke er aktivert. Ellers hopper du til trinn 8 nedenfor.
- SQL> shutdown immediate;
- SQL> startup mount;
- SQL> alter database archivelog;
- SQL> alter database open;
- SQL> create restore point CLEAN_DB guarantee flashback database;
der CLEAN_DB er navnet som er gitt til det garanterte gjenopprettingspunktet.
Vise det garanterte gjenopprettingspunktet
SQL> select * from v$restore_point;
Kontroller informasjonen om det nylig opprettede gjenopprettingspunktet. Skriv også ned SCN-nummeret for referanse. Vi vil referere til det som referanse-SCN-nummeret
Gå tilbake til det garanterte gjenopprettingspunktet
For å gjenopprette databasen til det garanterte gjenopprettingspunktet følger du trinnene nedenfor:
- $> su – oracle
- $> sqlplus / as sysdba;
- SQL> select current_scn from v$database;
- SQL> shutdown immediate;
- SQL> startup mount;
- SQL> select * from v$restore_point;
- SQL> flashback database to restore point CLEAN_DB;
- SQL> alter database open resetlogs;
- SQL> select current_scn from v$database;
Sammenlign SCN-nummeret fra trinn 9 ovenfor med referanse-SCN-nummeret.
Merk: SCN-nummeret fra trinn 9 ovenfor ikke nødvendigvis nøyaktig det SCN-nummeret som referanse-SCN-nummeret, men det vil være nært nok.
Referanser: