Flashback Data Archiv in 11Gr2


Hallo,
hier ein kurzer Überblick über das Total Recall Feature in 11Gr2. Grundlegend ermöglicht diese Funktionaltät eine einfache Möglichkeit, Daten in einer Datenbank zu archivieren. Beim Thema Lizensierung (ja auch das ist ein reines Enterprise Edtion Feature) hat sich etwas getan. Nach dem Release von Total Recall war es als eigenständige Option zu haben. Neu ist jetzt, das dieses Feature mit der Advanced Compression verkauft wird. Was das für bestehende Kunden bedeutet, welche das Feature noch als standalone Option gekauft haben? Kurz und Gut, die Lizenz muss gegen einen Aufpreis migriert werden, erst dann hat man ein Anrecht auf die Advance Compression Funktion der Datenbank.

Weitere Informationen kann man aus dem License Guide von Oracle erhalten.

Ausserdem sollte man nicht vergessen, das Flashback Archive Informationen nicht exportiert werden können bzw. durch das deaktivieren des Archive auf einer Tabelle die Historischen Daten auch gelöscht werden. Es empfiehlt sich daher diese Informationen vorher in einer physikalische Tabelle zu exportieren, sollte man diese noch benötigen.

Für Flashback Data Archive gibt es auch einen neuen Background Prozess.

[oracle@server01 foo]$ ps -ef | grep fbda
oracle   26375     1  0 15:08 ?        00:00:00 ora_fbda_dbm

Der FBDA Prozess ist für folgene Aufgaben zuständig:

  • Evaluieren der „Undo Data“ im Buffer Cache
  • Ist die notwendige Information nicht mehr im Buffer Cache wird diese aus den Undo Segmenten gelesen
  • Der FBDA Prozess setzt die Undo Information zusammen und schreibt diese in die Archive Tabellen (SYS_FBA_*) welche das Table Archive bilden.

Notwendige Informationen über Total Recall können aus den *_FLASHBACK_ARCHIVE_TABLES Views gelesen werden. Die Datenbank kümmert sich selbstständig darum das Daten welche aus der Retention heraus altern, gelöscht werden.

Nachdem Total Recall auf die Undo Information angewiesen ist, muss AUM (Automatic Undo Management) aktiviert sein.

Die Gute Nachricht, die meistens DDL Operationen werden von Total Recall unterstütz, es gibt jedoch Ausnahmen. Gerade wenn man Tabellen Partitionen im Einsatz hat, sollte man sich diesen Teil genauer durchlesen. Mehr Informationen gibt es in der Oracle Dokumentation.

Auch spielt dieses Feature transparent mit Standby Datenbanken zusammen, getestet habe ich unter anderem die Active Dataguard Option in Zusammenhang mit Total Recall. Wer also seine Flashback Abfragen auf das Standby System verlagern will, wird hier nicht eingeschränkt.

Beispiel Total Recall aktivieren:

Notwendige Rechte:

FLASHBACK ARCHIVE ADMINISTER beinhaltet folgende Rechte

  • CREATE FLASHBACK ARCHIVE
  • ALTER FLASHBACK ARCHIVE
  • DROP FLASHBACK ARCHIVE

Auch ist es nicht schlecht CREATE TABLESPACE Rechte zu haben, oder wie etwas weiter unten erklärt SYSDBA Rechte.

Erstellen eines Tablespaces, welcher die Archive Daten speichert. Im richtigen Leben, sollte man darauf achten das sich die Notwendigen Daten ausgehen (BIGFILE Tablespaces sind sicher eine Überlegung wert). Nicht zu vergessen, ein Table Archive kann auch über mehrer Tablespaces definiert werden (auch später).

SQL> create tablespace flash_data_1y datafile '/u01/app/oracle/oradata/dbm/flash_data_1y_01.dbf' size 10M;

Tablespace created.

Sollte der Tablespace zu klein sein, so kann dies Rückwirkungen auf die Applikation haben, da Transaktionen mit einem Fehler abbrechen.

SQL> update empt set sal=sal*0.5;
update empt set sal=sal*0.5
       *
ERROR at line 1:
ORA-55617: Flashback Archive "DEF_FLASH_1Y" runs out of space and tracking on
"EMPT" is suspended

Bei der Erstellung des Flashback Archive wird die Retention definiert, weiters besteht die Möglichkeit es als Default Archive zu deklarieren oder ein Quota zu definieren.

create flashback archive default def_flash_1y tablespace flash_data_1y
    quota 10g retention 1 year;

Ein „ORA-55611: No privilege to manage default Flashback Archive“ tritt dann auf, sollte der Benutzer nicht die notwenigen Rechte besitzen, das Quota nicht ausreichen oder wenn es sich um das Default Archive handelt nicht mit SYSDBA Rechten angemeldet sein.

Nach der Erstellung des Archive wird diese einer Tabelle zugeordnet. Wird der Name des Archive nicht angegeben wird das Default Archive angesprochen.

SQL> alter table scott.emp flashback archive;         

Table altered.

Natürlich können auch eine Vielzahl an Änderungen an den Archive selber vorgnommen werden (Ändern der Retention, Purge, Tablespaces erweitern).

Beispiele für diverse Flashback Archive Operationen:

Beim durchführen eines Purge auf das DEFAULT Archive sind ebenfalls SYSDBA Rechte notwendig, andernfalls kommt es zu einer Fehlermeldung.

SQL> ALTER FLASHBACK ARCHIVE def_flash_1y PURGE all;

Flashback archive altered.
SQL> ALTER FLASHBACK ARCHIVE def_flash_1y
  PURGE BEFORE TIMESTAMP (SYSTIMESTAMP - INTERVAL '10' DAY);
Flashback archive altered.
SQL> alter flashback archive def_flash_1y modify tablespace flash_data_1y quota 20M; Flashback archive altered.

Nicht vergessen, das löschen eines Table Archive löscht auch alle damit verbunden Historischen Daten:

DROP FLASHBACK ARCHIVE def_flash_1y;

Der Zugriff auf die Daten erfolgt genau wie bei einem Flashback Table Befehl:

Beispiel:

SQL> select ename,sal from emp where sal < 1500;

ENAME          SAL
---------- ----------
SMITH      400
ALLEN      800
WARD       625
JONES      1487.5
MARTIN     625
BLAKE      1425
CLARK      1225
TURNER     750
ADAMS      550
JAMES      475
MILLER     650

SQL> select ename,sal from emp  
  2  as of TIMESTAMP TO_TIMESTAMP ('2012-11-25 15:30:00', 'YYYY-MM-DD HH24:MI:SS') 
  3  where sal < 1500;

ENAME          SAL
---------- ----------
SMITH      800
WARD       1250
MARTIN     1250
ADAMS      1100
JAMES      950
MILLER     1300

6 rows selected.

Beispiel Abfrage aus dem Dictionary:

column flashback_archive_name format a20
column owner_name format a15
column table_name format a17
column archive_table_name format a25
select table_name,owner_name,flashback_archive_name,archive_table_name
    from dba_flashback_archive_tables;
TABLE_NAME      OWNER_NAME      FLASHBACK_ARCHIVE_NA ARCHIVE_TABLE_NAME
----------------- --------------- -------------------- -------------------------
EMP          SCOTT       DEF_FLASH_1Y           SYS_FBA_HIST_75335
Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s