hideg biztonsági mentési stratégia Noarchivelog módban Oracle Database 12c

a felhasználó által kezelt hideg biztonsági mentést fájlok másolásával hajtja végre az adatbázis leállítása után. Az ilyen típusú biztonsági mentést offline biztonsági mentésnek is nevezik. Az Oracle database 12c lehet noarchivelog módban vagy archivelog módban, ha hideg biztonsági másolatot készít.

a DBA-k általában úgy gondolják, hogy a hideg biztonsági mentés szinonimája az adatbázis biztonsági másolatának noarchivelog módban. Ez nem helyes. Az archivelog módban hideg biztonsági másolatot készíthet egy adatbázisról, és ez egy biztonsági mentési stratégia, amelyet sok üzlet alkalmaz. A noarchivelog módban és archivelog módban az adatbázissal készített hideg biztonsági mentés közötti különbségeket a következő szakaszok részletezik.

hideg biztonsági mentés készítése Noarchivelog módú adatbázisról

az Oracle database 12c hideg biztonsági mentésének egyik fő oka noarchivelog módban az, hogy módot ad az adatbázis visszaállítására egy múltbeli időpontra. Ezt a típusú biztonsági mentést csak akkor használja, ha nem kell helyreállítania a biztonsági mentés után bekövetkezett tranzakciókat. Ez a fajta biztonsági mentési és helyreállítási stratégia csak akkor elfogadható, ha az üzleti követelmények lehetővé teszik az adatok elvesztését és az állásidőt. Ritkán alkalmazna ilyen típusú biztonsági mentési és helyreállítási megoldást egy termelési üzleti adatbázishoz.

miután elmondta, hogy van néhány jó ok az ilyen típusú biztonsági mentés végrehajtására. Az egyik gyakori használat a fejlesztési/teszt/képzési adatbázis hideg biztonsági mentése, és az adatbázis rendszeres visszaállítása az alapvonalra. Ez lehetőséget ad arra, hogy újraindítsa a teljesítménytesztet vagy az edzést az adatbázis azonos pont-idő pillanatképével.

kép

Image

tipp fontolja meg a Flashback Database funkció használatát az adatbázis visszaállításához egy múltbeli időpontra.

Az ebben a szakaszban található példa bemutatja, hogyan készíthet biztonsági másolatot az adatbázis minden kritikus fájljáról: az összes vezérlőfájlról, az adatfájlokról, az ideiglenes adatfájlokról és az online redo naplófájlokról. Az ilyen típusú biztonsági mentéssel könnyedén visszaállíthatja az adatbázist arra az időpontra, amikor a biztonsági mentés megtörtént. Ennek a megközelítésnek az a fő előnye, hogy fogalmilag egyszerű és könnyen megvalósítható. Az alábbi lépések szükségesek az adatbázis hideg biztonsági mentéséhez noarchivelog módban:

  1. határozza meg, hogy hová másolja a biztonsági mentési fájlokat, és mennyi hely szükséges.
  2. azonosítsa a másolandó adatbázisfájlok helyét és nevét.
  3. állítsa le az adatbázist az azonnali, tranzakciós vagy normál záradékkal.
  4. másolja a fájlokat (a 2.lépésben azonosítva) a biztonsági mentés helyére (az 1. lépésben meghatározva).
  5. indítsa újra az Oracle database 12c-t.

a következő szakaszok részletezik ezeket a lépéseket.

1. lépés. Határozza meg, hogy hová másolja a biztonsági mentési fájlokat, és mennyi hely szükséges

ideális esetben a biztonsági mentés helyének az élő adatfájlok helyétől elkülönített lemezeken kell lennie. Sok üzletben azonban előfordulhat, hogy nincs más választása, és megmondhatja, hogy mely csatolási pontokat használja az adatbázis. Ebben a példában a biztonsági mentés helye a /u01/cbackup/O12C könyvtár. Ha durva képet szeretne kapni arról, hogy mennyi helyre van szüksége a biztonsági másolatok egy példányának tárolásához, futtathatja ezt a lekérdezést:

select sum(sum_bytes)/1024/1024 m_bytesfrom(select sum(bytes) sum_bytes from v$datafileunionselect sum(bytes) sum_bytes from v$tempfileunionselect (sum(bytes) * members) sum_bytes from v$loggroup by members);

a Linux/Unix df (disk free) paranccsal ellenőrizheti, hogy mennyi működési lemezterület áll rendelkezésre. Győződjön meg arról, hogy az operációs rendszeren rendelkezésre álló lemezterület nagyobb, mint az előző lekérdezésből visszaadott összeg:

$ df -h

2. lépés. Azonosítsa a másolandó adatbázisfájlok helyét és nevét

futtassa ezt a lekérdezést a noarchivelog módú adatbázis hideg biztonsági mentésében szereplő fájlok nevének (és elérési útjainak) felsorolásához:

select name from v$datafileunionselect name from v$controlfileunionselect name from v$tempfileunionselect member from v$logfile;

online REDO naplók biztonsági mentése (vagy sem)

biztonsági másolatot kell készítenie az online redo naplókról? Nem; soha nem kell biztonsági másolatot készíteni az online redo naplókról bármilyen típusú biztonsági mentés részeként. Akkor, miért DBA vissza az online redo naplók részeként hideg biztonsági mentés? Ennek egyik oka az, hogy kissé megkönnyíti a noarchivelog mód forgatókönyvének visszaállítását. Az online redo naplók szükségesek az adatbázis normál módon történő megnyitásához.

ha biztonsági másolatot készít az összes fájlról (beleértve az online redo naplókat is), akkor az Oracle database 12c visszaállításához vissza kell állítania az összes fájlt (beleértve az online redo naplókat is), és el kell indítania az adatbázist.

3.lépés. Állítsa le az adatbázist

csatlakozzon az adatbázishoz SYS-ként (vagy SYSDBA-privilegizált felhasználóként), majd állítsa le az adatbázist azonnali, tranzakciós vagy normál használatával. Szinte minden helyzetben az azonnali alkalmazás az előnyben részesített módszer. Ez a mód leválasztja a felhasználókat, visszaállítja a hiányos tranzakciókat, és leállítja az adatbázist:

$ sqlplus / as sysdbaSQL> shutdown immediate;

4. lépés. Készítsen biztonsági másolatot a

fájlokról a 2. lépésben azonosított minden fájlhoz egy operációs rendszer segédprogrammal másolja a fájlokat egy biztonsági mentési könyvtárba (az 1.lépésben azonosítva). Ebben az egyszerű példában az összes adatfájl, vezérlőfájl, ideiglenes adatbázisfájl és online redo napló ugyanabban a könyvtárban található. A termelési környezetben, akkor valószínűleg a fájlok szét több különböző könyvtárakat. Ez a példa a Linux / Unix cp paranccsal másolja az adatbázisfájlokat a /u01/dbfile / O12C könyvtárból a / u01/cbackup / O12C könyvtárba:

$ cp /u01/dbfile/O12C/*.* /u01/cbackup/O12C

5. lépés. Indítsa újra az adatbázist

az összes fájl másolása után elindíthatja az adatbázist:

$ sqlplus / as sysdbaSQL> startup;

hideg biztonsági mentés visszaállítása Noarchivelog módban online Redo naplókkal

a következő példa bemutatja, hogyan lehet visszaállítani egy adatbázis hideg biztonsági másolatából noarchivelog módban. Ha az online redo naplókat a hideg biztonsági mentés részeként tartalmazza, akkor azokat a fájlok visszaállításakor is felveheti. Itt vannak az eljárás lépései:

  1. állítsa le a példányt.
  2. másolja vissza az adatfájlokat, az online redo naplókat, az ideiglenes fájlokat és a vezérlőfájlokat a biztonsági mentésből az élő adatbázis adatfájljainak helyére.
  3. indítsa el az adatbázist.

ezeket a lépéseket a következő szakaszok részletezik.

1. lépés. Állítsa le a példányt

állítsa le a példányt, ha fut. Ebben a forgatókönyvben nem számít, hogyan állítsa le az Oracle database 12c-t, mert visszaállítja az időpontot (a tranzakciók helyreállítása nélkül). A live database directory helyeken lévő fájlok felülíródnak, amikor a biztonsági mentési fájlok vissza vannak másolva. Ha a példány fut, hirtelen megszakíthatja. SYSDBA-privilegizált felhasználóként tegye a következőket:

$ sqlplus / as sysdbaSQL> shutdown abort;

2. lépés. Másolja vissza a fájlokat a biztonsági mentésből

ez a lépés a biztonsági mentés fordítottja: fájlokat másol a biztonsági mentés helyéről az élő adatbázisfájlok helyére. Ebben a példában az összes biztonsági mentési fájl a /u01/cbackup / O12C könyvtárban található, és az összes fájl a /u01/dbfile/O12C könyvtárba kerül:

$ cp /u01/cbackup/O12C/*.* /u01/dbfile/O12C

3. lépés. Az adatbázis indítása

csatlakozzon az adatbázishoz SYS-ként (vagy SYSDBA jogosultsággal rendelkező felhasználóként), majd indítsa el az adatbázist:

$ sqlplus / as sysdbaSQL> startup;

miután befejezte ezeket a lépéseket, rendelkeznie kell az adatbázis pontos másolatával, mint a hideg biztonsági másolat készítésekor. Olyan, mintha az adatbázist visszahelyezné arra az időpontra, amikor a biztonsági másolatot készítette.

hideg biztonsági mentés visszaállítása Noarchivelog módban online Redo naplók nélkül

mint korábban említettük,soha nem kell az online redo naplók, amikor hideg biztonsági másolatból állít vissza. Ha noarchivelog módban hideg biztonsági másolatot készített az adatbázisról, és a biztonsági mentés részeként nem tartalmazta az online redo naplókat, a visszaállítás lépései majdnem megegyeznek az előző szakaszban leírtakkal. A fő különbség az, hogy az utolsó lépés megköveteli az adatbázis megnyitását az OPEN RESETLOGS záradék használatával. Itt vannak a lépések:

  1. állítsa le a példányt.
  2. másolja vissza a vezérlőfájlokat és az adatfájlokat a biztonsági mentésből.
  3. indítsa el az adatbázist mount módban.
  4. nyissa meg az adatbázist az OPEN RESETLOGS záradékkal.

1.lépés. Állítsa le a példányt

állítsa le a példányt, ha fut. Ebben a forgatókönyvben nem számít, hogyan állítja le az Oracle database 12c-t, mert visszaáll egy adott időpontra. Az élő adatbázis-könyvtár helyeken lévő fájlok felülíródnak a biztonsági másolatok másolásakor. Ha a példány fut, hirtelen megszakíthatja. SYSDBA-privilegizált felhasználóként tegye a következőket:

$ sqlplus / as sysdbaSQL> shutdown abort;

2. lépés. Másolja vissza a fájlokat a biztonsági mentésből

másolja át a vezérlőfájlokat és az adatfájlokat a biztonsági mentés helyéről az élő adatfájlok helyére:

$ cp <backup directory>/*.* <live database file directory>

3. lépés. Az adatbázis indítása csatolási módban

csatlakozzon az adatbázishoz SYS-ként vagy SYSDBA jogosultsággal rendelkező felhasználóként, majd indítsa el az adatbázist csatolási módban:

$ sqlplus / as sysdbaSQL> startup mount

4. lépés. Nyissa meg az adatbázist az OPEN RESETLOGS záradékkal

nyissa meg az adatbázist az OPEN RESETLOGS záradékkal való használatra:

SQL> alter database open resetlogs;

ha az adatbázis megváltozott üzenetet látja, a parancs sikeres volt. Ezt a hibát azonban láthatja:

ORA-01139: RESETLOGS option only valid after an incomplete database recovery

ebben az esetben adja ki a következő parancsot:

SQL> recover database until cancel;

látnia kell ezt az üzenetet:

Media recovery complete.

most próbálja meg megnyitni az adatbázist az OPEN RESETLOGS záradékkal:

SQL> alter database open resetlogs;

ez az utasítás arra utasítja az Oracle-t, hogy hozza létre újra az online redo naplókat. Az Oracle a vezérlőfájlban található információkat használja a redo naplók elhelyezésére, nevére és méretére. Ha ezeken a helyeken régi Online redo naplófájlok vannak, azok felülíródnak.

ha figyeli a riasztást.a folyamat során az ORA-00312 és az ORA-00313 jel látható. Ez azt jelenti, hogy az Oracle nem találja az online redo naplófájlokat; ez rendben van, mert ezek a fájlok fizikailag nem érhetők el, amíg az OPEN RESETLOGS parancs nem hozza létre őket újra.

Scripting a Cold Backup and Restore

a hideg biztonsági mentés szkriptjének megtekintése oktató jellegű. Az alapötlet az, hogy dinamikusan lekérdezi az adatszótárat, hogy meghatározza a biztonsági mentendő fájlok helyét és nevét. Ez előnyösebb, mint a könyvtár helyek és fájlnevek kemény kódolása egy szkriptben. A szkript dinamikus generálása kevésbé hajlamos a hibákra és meglepetésekre (pl. Új adatfájlok hozzáadása az adatbázishoz, de nem egy régi, kódolt biztonsági mentési szkripthez).

kép

Image

Megjegyzés Az ebben a szakaszban szereplő parancsfájlok nem gyártáserősségű biztonsági mentési és helyreállítási parancsfájlok. Inkább szemléltetik a hideg biztonsági mentés és az azt követő Visszaállítás szkriptjeinek alapfogalmait.

ebben a szakaszban az első szkript hideg biztonsági másolatot készít egy adatbázisról. A hideg biztonsági mentési parancsfájl használata előtt módosítania kell ezeket a változókat a parancsfájlban, hogy megfeleljenek az adatbázis-környezetnek:

  • ORACLE_SID
  • ORACLE_HOME
  • cbdir

a cbdir változó megadja a biztonsági mentési könyvtár helyének nevét. A szkript létrehoz egy coldback nevű fájlt.sql, amelyet az SQL*Plus-ból hajtanak végre az adatbázis hideg biztonsági mentésének kezdeményezésére:

#!/bin/bashORACLE_SID=O12CORACLE_HOME=/u01/app/oracle/product/12.1.0.1/db_1PATH=$PATH:$ORACLE_HOME/bin#sqlplus -s <<EOF/ as sysdbaset head off pages0 lines 132 verify off feed off trimsp ondefine cbdir=/u01/cbackup/O12Cspo coldback.sqlselect 'shutdown immediate;' from dual;select '!cp ' || name || ' ' || '&&cbdir' from v$datafile;select '!cp ' || name || ' ' || '&&cbdir' from v$tempfile;select '!cp ' || member || ' ' || '&&cbdir' from v$logfile;select '!cp ' || name || ' ' || '&&cbdir' from v$controlfile;select 'startup;' from dual;spo off;@@coldback.sqlEOFexit 0

ez a fájl olyan parancsokat generál, amelyeket egy SQL*Plus szkriptből kell végrehajtani az Oracle adatbázis hideg biztonsági mentésének elkészítéséhez. Ön tesz egy felkiáltójel (!) a Unix cp parancs előtt, hogy utasítsa az SQL * Plus-t, hogy vezesse ki az operációs rendszert a cp parancs futtatásához. Neked is hely egy fordított perjel (\) előtt minden egyes dollár ($) jelet, ha hivatkozó v$ adatok szótár nézetek; ez szükséges a Linux/Unix shell script. A \ menekül a $ azt a shell script nem kell bánni a $, mint egy különleges karaktert (a $ általában azt jelenti, hogy egy shell változó).

futtatása Után ezt a forgatókönyvet, itt egy példa másolása parancsok írva, hogy a coldback.sql script:

shutdown immediate;!cp /u01/dbfile/O12C/system01.dbf /u01/cbackup/O12C!cp /u01/dbfile/O12C/sysaux01.dbf /u01/cbackup/O12C!cp /u01/dbfile/O12C/undotbs01.dbf /u01/cbackup/O12C!cp /u01/dbfile/O12C/users01.dbf /u01/cbackup/O12C!cp /u01/dbfile/O12C/tools01.dbf /u01/cbackup/O12C!cp /u01/dbfile/O12C/temp01.dbf /u01/cbackup/O12C!cp /u01/oraredo/O12C/redo02a.rdo /u01/cbackup/O12C!cp /u02/oraredo/O12C/redo02b.rdo /u01/cbackup/O12C!cp /u01/oraredo/O12C/redo01a.rdo /u01/cbackup/O12C!cp /u02/oraredo/O12C/redo01b.rdo /u01/cbackup/O12C!cp /u01/oraredo/O12C/redo03a.rdo /u01/cbackup/O12C!cp /u02/oraredo/O12C/redo03b.rdo /u01/cbackup/O12C!cp /u01/dbfile/O12C/control01.ctl /u01/cbackup/O12C!cp /u01/dbfile/O12C/control02.ctl /u01/cbackup/O12Cstartup;

hideg biztonsági másolat készítése közben létre kell hoznia egy parancsfájlt is, amely biztosítja az adatfájlok, ideiglenes fájlok, naplófájlok és vezérlőfájlok eredeti helyére történő másolásának parancsait. Ezt a szkriptet használhatja a hideg biztonsági mentésből történő visszaállításhoz. A következő szkript ebben a szakaszban dinamikusan létrehoz egy coldrest.sql parancsfájl, amely fájlokat másol a biztonsági mentési helyről az eredeti adatfájl helyére. Ezt a szkriptet ugyanúgy kell módosítania ,mint a hideg biztonsági mentési szkriptet (azaz módosítania kell az ORACLE_SID, ORACLE_HOME és cbdir változókat, hogy megfeleljenek a környezetének):

#!/bin/bashORACLE_SID=O12CORACLE_HOME=/u01/app/oracle/product/12.1.0.1/db_1PATH=$PATH:$ORACLE_HOME/bin#sqlplus -s <<EOF/ as sysdbaset head off pages0 lines 132 verify off feed off trimsp ondefine cbdir=/u01/cbackup/O12Cdefine dbname=$ORACLE_SIDspo coldrest.sqlselect 'shutdown abort;' from dual;select '!cp ' || '&&cbdir/' || substr(name, instr(name,'/',-1,1)+1) || ' ' || name from v$datafile;select '!cp ' || '&&cbdir/' || substr(name, instr(name,'/',-1,1)+1) || ' ' || name from v$tempfile;select '!cp ' || '&&cbdir/' || substr(member, instr(member,'/',-1,1)+1) || ' ' || member from v$logfile;select '!cp ' || '&&cbdir/' || substr(name, instr(name,'/',-1,1)+1) || ' ' || name from v$controlfile;select 'startup;' from dual;spo off;EOFexit 0

ez a szkript létrehoz egy coldrest nevű szkriptet.sql, amely létrehozza a másolási parancsokat az adatfájlok, a ideiglenes fájlok, a naplófájlok és a vezérlőfájlok eredeti helyére történő visszaállításához. Miután futtatta ezt a shell szkriptet, itt van egy kódrészlet a coldrestben.sql fájl:

shutdown abort;!cp /u01/cbackup/O12C/system01.dbf /u01/dbfile/O12C/system01.dbf!cp /u01/cbackup/O12C/sysaux01.dbf /u01/dbfile/O12C/sysaux01.dbf!cp /u01/cbackup/O12C/undotbs01.dbf /u01/dbfile/O12C/undotbs01.dbf!cp /u01/cbackup/O12C/users01.dbf /u01/dbfile/O12C/users01.dbf!cp /u01/cbackup/O12C/tools01.dbf /u01/dbfile/O12C/tools01.dbf...!cp /u01/cbackup/O12C/redo03b.rdo /u02/oraredo/O12C/redo03b.rdo!cp /u01/cbackup/O12C/control01.ctl /u01/dbfile/O12C/control01.ctl!cp /u01/cbackup/O12C/control02.ctl /u01/dbfile/O12C/control02.ctlstartup;

ha ezzel a parancsfájllal kell visszaállítania egy hideg biztonsági mentést, jelentkezzen be az SQL*Plus rendszerbe SYS-ként, majd hajtsa végre a parancsfájlt:

$ sqlplus / as sysdbaSQL> @coldrest.sql

Xhamsterkisasszonyok:

kezelése Oracle Database 12c O...

Oracle Database 12c O kezelése… 4931 nézettség ons, február 29 2020, 10:18:11

végrehajtása forró biztonsági Stra...

végrehajtása Hot Backup Stra… 6414 nézettség ons, 29 febr 2020, 10:16:34

Matching Oracle 12c tábla típusa...

megfelelő Oracle 12c tábla Típus… 1786 nézettség Ded Szo, 18 Aug 2018, 16:59:35

az Oracle adatbázis leállítása 1...

az Oracle Database leállítása 1… 976 megtekintés ons, február 29 2020, 10:19:28

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.