Platí pro:
Oracle Database – 11gR2
Problém:
Při provádění srovnávacích testů je často nutné načíst před zahájením dalšího běhu načíst čistou databázi. Jedním způsobem, jak si zajistit čistou databázi, je znovu vytvořit celou databázi před každým testovacím během. V závislosti na její velikosti však tento přístup může být velmi časově náročný nebo neefektivní.
Řešení:
Tento článek popisuje, jak použít funkci flashback systému Oracle k rychlému obnovení databáze do stavu, který existoval těsně před zahájením pracovního zatížení. Konkrétněji tento článek popisuje postup použití „zaručených bodů obnovy“.
Body obnovy:
Bod obnovy je jen název asociovaný s časovým razítkem nebo číslem SCN databáze. Je možné vytvořit buď normální bod obnovy, nebo zaručený bod obnovy. Rozdíl mezi těmito dvěma spočívá v tom, že tento zaručený bod obnovy umožňuje přejít zpět do bodu obnovy bez ohledu na parametr inicializace DB_FLASHBACK_RETENTION_TARGET, tj. je vždy k dispozici (pokud máte dostatek volného místa v oblasti obnovy flash).
POZNÁMKA: V tomto článku nebyla funkce Flashback Logging zapnutá.
Zaručený bod obnovy:
Požadavky: Vytvoření zaručeného bodu obnovy vyžaduje splnění následujících podmínek:
- Uživatel musí mít systémová oprávnění SYSDBA.
- Musí být vytvořená oblast obnovy flash.
- The Databáze musí být v režimu ARCHIVELOG.
Vytvoření zaručeného bodu obnovy:
Po vytvoření nebo přenosu nové databáze je nejprve nutné vytvořit zaručený bod obnovy, abyste se do něj mohli vrátit při každém zahájení nového pracovního zatížení: Postup je následující:
- $> su – oracle
- $> sqlplus / as sysdba;
- Zjistěte, zda je protokol ARCHIVELOG povolen.
SQL>select log_mode from v$database
Pokud z kroku 3 vyplývá, že protokol ARCHIVELOG není povolen, pokračujte dále, jinak přejděte na krok 8 níže.
- SQL> shutdown immediate;
- SQL> startup mount;
- SQL> alter database archivelog;
- SQL> alter database open;
- SQL>create restore point CLEAN_DB guarantee flashback database;
kde část CLEAN_DB představuje název zaručeného bodu obnovy.
Zobrazení zaručeného bodu obnovy
SQL>select * from v$restore_point
Ověřte informace o nově vytvořeném bodu obnovy. Také si pro účely reference poznamenejte číslo SCN. Dále jej budeme označovat „referenční číslo SCN“.
Návrat do zaručeného bodu obnovy
Nyní podle postupu níže obnovte databázi do zaručeného bodu obnovy:
- $> 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;
Porovnejte číslo SCN v kroku 9 výše s referenčním číslem SCN.
POZNÁMKA: Číslo SCN z kroku 9 výše nemusí přesně odpovídat referenčnímu číslu SCN, mělo by se mu však výrazně blížit.
Odkazy: