Épület hibatűrő rendszer segítségével oracle fizikai készenléti

Épület hibatűrő rendszer segítségével az Oracle fizikai készenléti

Telepítésével egy információs rendszer alapján az Oracle adatbázis és szervező megbízható biztonsági stratégia-hasznosítás, akkor lehet kezdeni a termelést a rendszer működését. A baleset esetén lehetőség lesz visszaállítani az adatokat a kívánt időpontban. De mi van, ha a megengedett leállás ne haladja meg a néhány perc alatt? Akkor ne tedd nélkül különböző módszerek adatkétszerezésnél valós időben.

A szerkezet a Oracle Data Guard

Attól függően, hogy a konkrét követelményeket a gyógyulási idő és a megengedett adatvesztés baleset során (recovery time objektív, helyreállítási pont objektív [2]). Különböző végrehajtás módja:

  • Fizikai készenléti DB - készenléti adatbázis pontos másolata az elsődleges fizikai tárolt szerelt állapotban és redo-át adatfolyamot.
  • Logikai készenléti DB - készenléti adatbázis nem pontos másolata az elsődleges, nyitott írható-olvasható módban, és egyúttal átadta az SQL-utasítás áramot.

Ha szükséges, ez a bázis lehet aktiválni rövid idő alatt, mint a termelés.

Mivel az adatbázis logikai készenléti állapot nem pontos másolata az elsődleges adatbázis, és nem támogatja az egyes adattípusok, az SQL-parancs, van egy követelmény, hogy biztosítsa az egyediségét sorok táblák [4], úgy véljük, a végrehajtása pontosan fizikai készenléti DB. Úgy tűnik számomra, hogy a használata logikai készenléti adatbázis is jobb, mint egy hát és ennek alapján a bejelentésre. Mi választjuk ki az elsődleges és másodlagos adatbázisok a következő beállításokat: termelési létesítmények működő maximális rendelkezésre állapotban telt el a változtatások érvénybe lépnek a készenléti adatbázis mód Real-Time Apply Redo. Mert ez a működési mód kezdeményezett információtovábbítás változik működik, mint egy időben LGWR folyamatot. A különbség a védelmi rendszerek az, hogy maximális védelmet üzemmódban a tranzakció elszámolása csak akkor, ha a felvétel készül a helyi magazinok és távolról esetén lehetetlen a törölt rekordokat tárol leáll, és a maximális teljesítmény üzemmódban, hogy folytassa a munkát kell csak helyi felvétel és az elsődleges adatbázis továbbra is dolgozni, akkor is, ha a kapcsolat a készenléti adatbázis nem érhető el.

maximális rendelkezésre állás mód egy kompromisszum a váltás a két mód között automatikus. Ha a kapcsolat megfelelően működik, az átszállítás szinkronban, ha volt egy hiba, automatikusan megjeleníti a kevésbé szigorú szabályozás. Megszüntetése után kudarcok maximális védelmet mód visszaáll. [5]

Létre kell hozni a teszt környezet:

  • Két szerver azonos architektúra, akkor változhat a processzorok számát, memória, merevlemez, az operációs rendszer kiadás, stb Hagyja, hogy a primer DB szerver lesz említett Poltava, és a készenléti szerver - .. Fastiv.
  • adatbázis üzemmód legyen ARCHIVELOG.
  • Ki kell használni az Oracle Server Enterprize Edition szoftver. A tesztek egyik változatát használja Oracle10.2 EE Solaris.

Előállítása egy működő konfiguráció

Tehát van egy működő termelés (elsődleges) Oracle adatbázis kiszolgálón található Poltava, és létre kell hoznunk egy biztonsági másolatot a készenléti adatbázis szerver Fastiv. Meg kell készíteni a konfigurációs fájlokat, és a további beállításokat.

Hagyja, hogy a bázis neve lesz «TST» rendeljen Gyártás elsődleges alap értéke ORACLE_SID = ORCL, készenléti - DB ORACLE_SID = ORCL1. elsődleges DB fájlok a / tstb / ORCL, fájlok készenléti DB - katalógus / tstb / ORCL1.

hajtsa végre a következő lépéseket:

Magában erőt naplózási mód a termelési rendszer erőszakos behatolás az adatbázisban naplózza az információt, még az úgynevezett Nologging műveleteket:

SQL> ALTER DATABASE FORCE fakitermelés;

Hozza létre a készenléti redo log. Ők csak kell dolgozni az adatbázisban készenlét, de jöjjenek létre az elsődleges, és a készenlétben eset kapcsoló közötti szerepek adatbázisok nem kell létrehozni őket.

készenléti redo létrehozásához szükséges fájlokat nem kisebb, mint az online redo log, és olyan mennyiségben, n + 1 számának redo csoport (cm. 1. lista).

1. lista Fájlok hozzáadása Készenléti Redo

SQLPlus "/ mint SYSDBA" <

ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 '/tstb/ORCL/redo01.stb' SIZE 100M újrafelhasználási

ALTER DATABASE ADD STANDBY LOGFILE GROUP 5 '/tstb/ORCL/redo02.stb' SIZE 100M újrafelhasználási

ALTER DATABASE ADD STANDBY LOGFILE GROUP 6 '/tstb/ORCL/redo03.stb' SIZE 100M újrafelhasználási

ALTER DATABASE ADD STANDBY LOGFILE GROUP 7 '/tstb/ORCL/redo04.stb' SIZE 100M újrafelhasználási

Létrehozza paraméterek init.ora / spfile.ora paraméter fájlok az elsődleges és a készenléti (lásd. 2. listát).

2. lista List init.ora / spfile.ora fájlbeállításokat

* .control_files = '/ tstb / ORCL / control01.ctl', '/tstb/ORCL/control02.ctl', '/tstb/ORCL/control03.ctl'

* .LOG_ARCHIVE_DEST_1 = 'ELHELYEZKEDÉS = / tstb / log1 / VALID_FOR = (ALL_LOGFILES, ALL_ROLES) DB_UNIQUE_NAME = Poltava'

* .LOG_ARCHIVE_DEST_2 = 'SERVICE = Fastiv LGWR SYNC AFFIRM VALID_FOR = (ONLINE_LOGFILES, PRIMARY_ROLE) DB_UNIQUE_NAME = Fastiv'

Létrehozása készenléti adatbázis mentés

Készítsen biztonsági másolatot az adatbázisról és a jelszót fájlt, és át a másolt fájlokat a backup szerver Fastiv.

Mivel az értéke ORACLE_SID az elsődleges és tartalék adatbázisok különböznek, jelszó fájlokat is, majd különböző nevek, például orapwORCL és orapwORCL1.

Hozzon létre egy készenléti irányítása fájlt és másoljuk a készenléti szerver a megadott helyen az adatbázis paraméter fájl készenlét:

SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS /tmp/standby.ctl ';

Kapcsoljuk be a fő adatbázis maximális rendelkezésre álló módban a következő parancsot:

SQL> ALTER DATABASE SET készenléti adatbázis maximális rendelkezésre állást;

Adatbázisok készen áll a használatra. Nos, mindkét adatbázisban indítható.

Az adatbázis-műveletek munka közben

A működés során szükséges, hogy bizonyos műveleteket - start, stop, nyitás az olvasás, a regisztráció nem fogadott naplók, az aktiválás a tartalékalap (failover), a csere állapot (átállás). Tekintsük az alábbi lépéseket:

stbstart script felelős az adatbázis készenléti megkezdi a valós idejű alkalmazni módban. Állj készenléti adatbázis biztosítja stbshut script (lásd. 4. listát).

4. lista indítása és leállítása az adatbázis fizikai készenléti

SQLPlus "/ mint SYSDBA" <

módosítja adatbázis tartó készenléti adatbázis;

ALTER DATABASE RECOVER KEZELT készenléti adatbázis az aktuális LOGFILE

Bontásához SESSION;

SQLPlus "/ mint SYSDBA" <

ALTER DATABASE RECOVER KEZELT készenléti adatbázis MÉGSEM;

Nézzük a transzmissziós mechanizmus megváltoztatja a kapcsolási magazinok. Az elsődleges:

SQL> ALTER SYSTEM SWITCH LOGFILE;

SQL> SELECT GROUP #, szál # sorozatszámú #, archivált, státuszát V $ STANDBY_LOG;

stbreadonly script adatbázis elindításáért felelős a készenléti állapotban csak olvasható (lásd. 5. listát). Redo Szállítási ebben az esetben folytatódik, de a változásokat el kell halasztani addig, amíg a kilépés ebben az üzemmódban.

5. lista futtatása adatbázis készenléti üzemmódban csak olvasható

SQLPlus "/ mint SYSDBA" <

ALTER DATABASE RECOVER KEZELT készenléti adatbázis MÉGSEM;

módosítja adatbázis nyitott read only

Átállás - script változtatni szerepek közötti adatbázisok. Szükséges, hogy az elsődleges adatbázis megnyílt, és a készenléti egy hegyen vagy vissza módban (lásd. 6. listán). Mint látható, egy script, hogy váltani szerepek hozzáféréssel kell rendelkeznie minden egyes adatbázis-részt az ügyletben.

Listing 6. csere szerepek közötti adatbázisok Poltava és Fastiv

SQLPlus "/ mint SYSDBA" <

REM csatlakozni elsődleges

csatlakoztassa sys / manager @ Poltava mint SYSDBA

oszlop SWITCHOVER_STATUS méret A20 rész „Átállás állapotát | elsődleges”

SELECT FROM SWITCHOVER_STATUS V \ $ DATABASE;

oszlop DATABASE_ROLE méret A20 rész „Role előtt | átállás”

válassza DATABASE_ROLE a V \ $ DATABASE;

ALTER DATABASE COMMIT TO ÁTÁLLÁS A fizikai készenléti;

oszlop DATABASE_ROLE méret A20 rész „szerepe után | átállás”

válassza DATABASE_ROLE a V \ $ DATABASE;

REM csatlakozni készenléti db on Újra kell alkalmazni mód

csatlakoztassa sys / manager @ Fastiv mint SYSDBA

oszlop SWITCHOVER_STATUS méret A20 rész „Átállás állapotát | készenléti”

SELECT FROM SWITCHOVER_STATUS V \ $ DATABASE;

oszlop DATABASE_ROLE méret A20 rész „Role előtt | átállás”

válassza DATABASE_ROLE a V \ $ DATABASE;

ALTER DATABASE COMMIT TO átállás PRIMARY;

ALTER DATABASE NYITVA

REM ha csak olvasható, ne nyissa ki - újraindítás

REM SHUTDOWN KÖZVETLEN;

oszlop DATABASE_ROLE méret A20 rész „szerepe után | átállás”

válassza DATABASE_ROLE a V \ $ DATABASE;

Failover - a script aktiválja a készenléti adatbázis esetén alapján első baleset. Mivel a készenléti adatbázis már nem kell lefordítani a maximális teljesítmény módban (lásd. 7. lista) aktiválása előtt készleteinket.

SQL> ALTER DATABASE SET készenléti adatbázis teljesítményének maximalizálása érdekében;

Regisztráció hiányzó naplók világosan látható lista 8.

Listing 7. engedélyezése készenléti adatbázis a baleset esetén

SQLPlus "/ mint SYSDBA" <

oszlop DATABASE_ROLE méret A15 rész „Role előtt | átállás”

válassza DATABASE_ROLE a V \ $ DATABASE;

ALTER DATABASE RECOVER KEZELT készenléti adatbázis FINISH FORCE;

ALTER DATABASE COMMIT TO átállás PRIMARY;

ALTER DATABASE SET készenléti adatbázis teljesítményének maximalizálása érdekében;

ALTER DATABASE NYITVA

oszlop DATABASE_ROLE méret A15 rész „szerepe után | átállás”

válassza DATABASE_ROLE a V \ $ DATABASE;

Listing 8. azonosítása és felbontás manuális sebességváltó jelentkezzen hiányosságok

SQL> SELECT MENET # LOW_SEQUENCE # HIGH_SEQUENCE # v $ ARCHIVE_GAP;

MENET # LOW_SEQUENCE # HIGH_SEQUENCE #

SQL> ALTER DATABASE REGISZTRÁCIÓ FIZIKAI LOGFILE 'filespec1';

Automatizálják teljesítmény-ellenőrzés

Mivel az elsődleges adatbázis maximális rendelkezésre álló módban, ha a backup szerver leáll az elsődleges adatbázis, hogy folytassák munkájukat. Az elsődleges és a készenléti állapot egy rés. Felderítésére és javítására kár időt vesz igénybe, melynek során a fő adatbázis nincs mögötte. Ezen a ponton, abban az esetben ismételt elmulasztása már a mester adatbázis, akkor elveszítheti adatokat. Annak érdekében, hogy időben felismerheti és megszüntetheti az ilyen helyzetekben, akkor kell, hogy automatizálják a folyamatot figyelemmel kíséri a munkát a két adatbázis.

Listing 9. A script, amely elvégzi a hiba keresés alert.log fájl

ha a [-f / tmp / memsg_no]

FILESLIST = `ls -R / ora / admin / * / bdump / *. Log`

dir1 = `dirnév $ | sed„s / \ / ora \ / admin \ /// g

MSG = / usr / local / bin / fetchlog -F 1: 100: 1000: s $ / var / adm /$.$ `

MSG1 = `echo "$" | egrep -i "ora-" `

Ezt meg lehet tenni, például keresztül csomagkapcsolt fetchlog [6]. Alapján a szoftver jött létre fetchalert script (lásd lista 9.) lehet futtatni egy démon crond:

TestCase $ 0,15,30,45 * * * * / usr / local / bin / fetchalert> / dev / null 2> 1

A javasolt rendszer egyszerű és nem igényel speciális hardvert annak végrehajtására azonban megvannak a maga hátrányai:

  • Az egyik szerver passzív, és nem a szolgáltatás felhasználói kéréseket.
  • Ha az elsődleges adatbázis tranzakciós forgalmat lesz túl nagy, akkor további terhet jelentenek a replikáció a nyilvános hálózat, amelyhez a kiszolgáló csatlakozik.
  • Ebben a konfigurációban nincs speciális firmware szabályozására az állam a partner rendszerek, mint azok használják az építőiparban, például fürtözött rendszerek. Ebben az esetben a hiba esetén, például, megtöri a hálózati kapcsolat, a szerver nem azonosítja egyértelműen a probléma forrása. Ebben az esetben a rendszer rendszergazda beavatkozása a döntés, hogy váltani egy backup szerver. A szükséges idő a személy ilyen döntést kell figyelembe venni, amikor értékeli a rendszer teljes gyógyulási idő után összeomlik hossza, a kapcsolási eljárást is.

Ezek a szempontok azonban nincs komoly hatással a rendszer működését, mivel a fejlett hálózati technológia lehetővé teszi, hogy át nagy mennyiségű adat nagy távolságokra, és a kisebb energiafogyasztás szerver lehet használni, mint egy hát.