Avatar billede rossoneris Nybegynder
20. januar 2005 - 10:37 Der er 8 kommentarer og
1 løsning

DB recovery

OK - Jeg skal lige have en bekræftigelse på at jeg har forstået det her rigtig omkring database recovery.

På produktions databasen kører jeg daglig backup med følgende script:

sql "alter system switch logfile";

run

{allocate channel t1 type disk format'd:\backup\%s_daglig.bkp';
backup database;
backup archivelog all;
release channel t1;}

exit;

Det script ligger daglig 2 filer i d:\backup folderen.

Derudover laves der hver måned en kold backup af databasen


Så siger vi at serveren hvor produktions databasen kører på bryder sammen og alle harddiske osv. ikke virker mere. Så bliver der fundet en ny server, hvor Oracle bliver installeret.

Spørgsmål:

I tilfælde at alt skal hentes igen, vil det så ikke være smartest at oprette en ny database med samme navn som den gamle produktionsdatabase og efterfølgende kopierer datafiler og init filer fra den kolde backup over på den ny server ?

Så kommer det jeg ikke rigtig kan gennemskue:
De backup´s jeg kører daglig skal jo så bruges til at restore databasen til nyeste dato. Men hvordan fortæller jeg Oracle, den skal gå ind og hente restoren fra de backup filer der bliver dannet daglig. dvs. hvilke kommando`er skal der køres ?



Af produktions databasen findes
Avatar billede rossoneris Nybegynder
20. januar 2005 - 10:39 #1
Hov .. den nederste linie skal lige droppes :)
Avatar billede pnielsen Nybegynder
20. januar 2005 - 19:26 #2
Before we can restore a backup from before the last resetlogs, we need to reset 
the database to the old incarnation number.

Here are the steps to reseting the correct incarnation and restoring the 
database to a point in time before the last resetlogs.

Note: Target database should be nomounted.

1. Start RMAN and connect only to the catalog database.

  % rman catalog rman/rman@rcat

2. Execute the command that lists all the incarnation values for the         
  databases in the recovery catalog.

    RMAN> list incarnation;

List of Database Incarnations
DB Key  Inc Key DB Name  DB ID            CUR Reset SCN  Reset Time
------- ------- -------- ---------------- --- ---------- ----------
1      2      R815    579966833        NO  1          03-MAR-99
224    225    R815    579966833        YES 92402      05-MAY-99

We can see that one of the databases had been open with resetlogs and a new 
incarnation was started (DB_ID 579966833).  We should look at the column 
DATABASE INC KEY. We can see the original incarnation for this database was 2 
and was reset to what is still the current incarnation of 225.  2 is the 
database incarnation that has to be set in order to restore a backup from 
before the last resetlogs.

3. We first need to let RMAN know what database ID we will be dealing 
  with, so we execute the following command:
       
    RMAN> Set dbid 579966833;

4. Now we need to connect to the target instance so we can verify the 
  database ID.

    RMAN> connect target
    RMAN-06005: connected to target database: R815 (DBID=579966833)

5. Since we are connected to both the recovery catalog and target 
  database, we need to tell RMAN to reset the database incarnation to 2. 

  We do this with the following command:

      RMAN> reset database to incarnation 2;

  We can now see that the current incarnation has been set back to 2.
       
      RMAN> list incarnation;

List of Database Incarnations
DB Key  Inc Key DB Name  DB ID            CUR Reset SCN  Reset Time
------- ------- -------- ---------------- --- ---------- ----------
1      2      R815    579966833        YES 1          03-MAY-99
224    225    R815    579966833        NO  92402      05-MAY-99


6.  After resetting the database, issue restore and recover commands to restore 
    and recover the database files from the prior incarnation, then open the database 
    with the RESETLOGS option. You need start from restoring a previous incarnation 
    control file when the database is in nomount state. When the database is reset to 
    the previous incarnation, the catalog will automatically picks up a right control 
    file. After restoring the control file, the database must be mounted for datafiles 
    restore. 

    run {
        set until time 'Jul 8 1999 07:55:00'; # set time to just before data was lost
        allocate channel dev1 type disk;
        shutdown abort;
        startup nomount;
        restore controlfile;
        alter database mount; # mount database after restoring control file
        restore database;
        recover database;
        alter database open resetlogs; # this command automatically resets the database
                                        # so that this incarnation is the new incarnation
    }

     
Solution Explanation: 
===================== 
 
Once we set the database to the prior incarnation, RMAN will allow a restore 
and recover of the database using a backup from before the last resetlogs.
Avatar billede pnielsen Nybegynder
20. januar 2005 - 19:28 #3
Det var svar på dit 2. spørgmål...

Spørgmål 1:
Nej du skal ikke installere andet end din oracle software - sørg for at det er nøjagtigt samme version (incl. patches!)
Restore derefter din init.ora fra din filbackup. Så sikre du at du får startet databasen med samme parameter som før den gik ned.
Avatar billede rossoneris Nybegynder
20. januar 2005 - 20:31 #4
Ok - jeg laver lige et par punkt spørgsmål:

1. Jeg kører ikke recovery catalog - er det et problem ?

2. Dvs. Jeg skal ikke bruge noget fra min kolde backup overhovedet udover at kopierer min init.ora over i den ny database


Det skal lige tilføjes at den backup løsning jeg ønsker egentlig kun skal bruges når serveren f.eks. en dag bryder sammen. Skulle databasen blive korrupt eller lign, vil jeg ligge hele databasen på igen, da data tab er iorden
Avatar billede rossoneris Nybegynder
21. januar 2005 - 08:42 #5
6.  After resetting the database, issue restore and recover commands to restore 
    and recover the database files from the prior incarnation, then open the database 
    with the RESETLOGS option6.  After resetting the database, issue restore and recover commands to restore 
    and recover the database files from the prior incarnation, then open the database 
    with the RESETLOGS option

Hvilke restore og recover kommando´er er det der skal køres ? - det fremgår ikke af teksten :(
Avatar billede rossoneris Nybegynder
26. januar 2005 - 08:26 #6
:(
Avatar billede pnielsen Nybegynder
26. januar 2005 - 08:35 #7
Du spørger om noget der normalt kan tage op til en uge at lære noget om på et backup og recovery kursus. Det er et meget ømt punkt som kan gøre mere skade end man tror. Hvis du f.eks. ikke får redirected din backup til en anden destination end dit prod system, kan du risikere at få overskrevet prod systemet.

Men svar på dit sidste spørgsmål:
Det kunne f.eks. være "recover database until cancel" eller until time.
Og når du har recoveret til det tidspunkt du ønsker - "alter database open resetlogs"

>>1. Jeg kører ikke recovery catalog - er det et problem ?
Nej - ikke i dette tilfælde - men det kan det være i andre!

>>2. Dvs. Jeg skal ikke bruge noget fra min kolde backup overhovedet udover at kopierer min init.ora over i den ny database.
Nope.
Avatar billede rossoneris Nybegynder
26. januar 2005 - 11:11 #8
Nu har jeg efterhånden bøvlet og bikset med backup/recovery en uges tid - og har fundet lidt info hist og pist.

Det jeg har prøvet om som faktisk er lykkedes er følgende:

Først har jeg installeret Oracle database med samme navn som på produktions databasen.

Derefter har jeg via min kolde backup kopieret database filerne over på min lokale pc.

Derefter har jeg restored min kontrolfil seneste backup sæt, hvorefter den meldte at databasen mangler recovery, da den jo kan se at de data der ligger er forældet i forhold til den seneste kontrolfil indhold.

Så laver jeg en restore database og derefter recover database og derefter kørte det. Redolog filerne fandt jeg dog ud af der skulle kopieres med over - med mindre en resetlogs havde været nok ?! ..

Hvad siger du til ovenstående ... ? .. er det helt hen i vejret rent sikkerhedsmæssigt.?
Avatar billede pnielsen Nybegynder
26. januar 2005 - 22:43 #9
Det lyder jo som om det er lykkedes. Bare husk at brug den gamle init.ora fil!

>>er det helt hen i vejret rent sikkerhedsmæssigt.?
næh.. det er sådan man gør.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester