Hvordan utføre en fullstendig gjenoppretting av Oracle 12c Database

November 1  by Eliza

Fullstendig gjenoppretting er hva du ønsker å skyte for. Det betyr at du gjenopprette hver blokk og hver transaksjon som ble begått i Oracle 12c database. Du la Oracle overta og gjøre utvinningen til slutten av alle sikkerhetskopiere filer og arkivloggene; ikke manuelt gripe inn og stoppe det før det er ferdig.

Hvordan du utfører en fullstendig gjenoppretting: En eller flere Oracle 12c datafiler

Hvis du ser "ute av stand til å identifisere / lock datafile" feil, må du gjøre et par ting:

  • Vite omfanget av skaden. Denne kunnskapen hjelper slik at du bare trenger å gjøre en recovery i stedet for to.
  • Avgjøre om den tapte filen er nødvendig for forekomsten å kjøre (eller hvis det er et program datafil). Nødvendige datafiler er SYSTEM, SYSAUX, og angre. Dette er viktig for å redusere det samlede gjennomsnittlig tid til restituering (MTTR). Oracle krasjer bare hvis du mister en nødvendig datafil.

Hvis du finner ut at de tapte filene er ikke viktig for grunnleggende drift, kan du åpne databasen (hvis det enda gikk ned) før du begynner utvinning. Som gjør minst delvis data tilgangen til enkelte brukere. Du foretrekker kanskje at brukerne forbli ute av systemet før du er ferdig.

Hva er det første du må gjøre hvis Oracle 12c krasjer? Gå til Data Recovery Advisor (DRA). For DRA å jobbe, har databasen til, i det minste, være i NOMOUNT tilstand. Databasen kan ikke være helt stengt. DRA kan også kjøres med databasen åpen, minimere nedetid.

I den følgende øvelsen ble BRUKERE tabell datafil tapt mens databasen kjørte. Fordi den datafilen er ikke en nødvendig datafil (system, sysaux, angre), kan du gjøre utvinningen uten engang å slå av databasen.

  1. Logge deg på målet med RMAN.
  2. Skriv dette:

    <Liste svikt;>

    Du ser omtrent slik ut:

    Liste over Database Svikt
    =========================
    Svikt ID Prioritet Status Tid oppdaget Oppsummering
    ---------- -------- --------- -------------------- --- ----
    722 HIGH OPEN 30-Jun-2013 11:25:20 En eller flere ikke-system datafilene mangler

    En ikke-system (kritisk) fil mangler. Hva gjør jeg?

  3. Spør DRA hva du skal gjøre:

    <Råd svikt;>

    Du ser omtrent slik ut:

    Database Rolle: PRIMÆR
    Liste over Database Svikt
    =========================
    Svikt ID Prioritet Status Tid oppdaget Oppsummering
    ---------- -------- --------- -------------------- --- ----
    722 HIGH OPEN 30-Jun-2013 11:25:20 En eller flere ikke-system datafilene mangler
    analysere automatiske reparasjons alternativer; dette kan ta litt tid
    tildelt kanal: ORA_DISK_1
    kanal ORA_DISK_1: SID = 56 enhetstype = DISK
    analysere automatiske reparasjonsalternativer komplett
    Obligatoriske Manuelle Handlinger
    ========================
    ingen manuelle handlinger tilgjengelig
    Valgfri manuell Handlinger
    =======================
    1. Hvis filen /u01/app/oracle/oradata/dev12c/users01.dbf var
    utilsiktet nytt navn eller flyttes, gjenopprette det
    Automatiserte muligheter for reparasjoner
    ========================
    Alternativ Repair Beskrivelse
    ------ ------------------
    1 Gjenopprett og gjenopprette datafile 4
    Strategi: Reparasjonen omfatter komplett medier utvinning uten tap av data
    Reparasjon script: /u01/app/oracle/diag/rdbms/dev12c/dev12c/hm/reco_3875560744.hm

    Få en last av det! Ikke bare DRA fortelle deg nøyaktig hva du trenger å gjøre, men det gir også et script slik at du ikke trenger å skrive en eneste linje med kode. Hvis du åpner dette skriptet, det ser omtrent slik ut:

    # Gjenopprette og gjenopprette datafile
    sql 'alter database datafile 4 offline';
    gjenopprette (datafile 4);
    gjenopprette datafile 4;
    sql 'alter database datafile 4 online';

  4. Skriv inn følgende å ha DRA løse problemet:

    <Reparasjon svikt;>

    Du ser omtrent slik ut:

    RMAN> reparasjon svikt;
    Strategi: Reparasjonen omfatter komplett medier utvinning uten tap av data
    Reparasjon script: /u01/app/oracle/diag/rdbms/dev12c/dev12c/hm/reco_3875560744.hm
    Innholdet i reparasjon script:
    # Gjenopprette og gjenopprette datafile
    sql 'alter database datafile 4 offline';
    gjenopprette (datafile 4);
    gjenopprette datafile 4;
    sql 'alter database datafile 4 online';
    Ønsker du virkelig å utføre ovenfor reparasjon (angi ja eller nei)? JA
    reparasjon svikt komplett

    Helt på slutten av en rådgiver basert utvinning, hvis databasen var lukket, spør den om du vil åpne databasen. Mesteparten av tiden vil du velge Ja. Du kan velge Nei hvis du ønsker å tilbringe mer tid å gå over hva som skjedde før du slipper databasen tilbake til brukerne.

Her er noen nitpicks om DRA, her er hva vi vil si:

  • DRA ikke si at du kan ta datafiler frakoblet og deretter åpne databasen for alle andre hvis databasen er stengt. Den forteller deg at filene kan være frakoblet og gjenvinnes hvis databasen er allerede åpen. Minst fortalte det deg at de var ikke-systemfiler.
  • Hvis du må gjenopprette filene til et nytt sted, kan DRA ikke ta over og gjøre hele gjenoppretting for deg.

    Si at du mistet en disk, og det kommer ikke tilbake. DRA er ikke smart nok til å velge en ny plassering for deg og innlemme det i en reparasjon script. Den forteller deg hva som er galt og hva det foreslår å gjøre, noe som kan bidra til å komme i gang i riktig retning, men det kommer til kort etter det.

Vær realistisk. Hvordan kan du forvente at det skal ha hver situasjon indeksert for alle typer systemer og miljøer?

Hvordan du utfører en fullstendig gjenoppretting: En eller flere Oracle 12c kontroll filer

Hva hvis du klarer å miste alle dine kontrollfiler og database krasjer?

Kontroll filer er kritiske systemfiler.

DRA til unnsetning:

  1. Logg inn for å RMAN.
  2. Liste svikt.
  3. Råde fiasko.
  4. Reparasjon svikt.

Men vent et øyeblikk. . . Hvorfor ble ikke disse trinnene åpne databasen? Utvinning fra å miste alle dine kontrollfiler er litt mer involvert enn standard datafil utvinning. (Tilsynelatende DRA ikke ønsker å fortsette med utvinning uten at du får en sjanse til å sjekke ut ting.)