Rollback Segmente, Undo Segmente und Flashback

Werbung
Der Blick zurück in die Vergangenheit:
Rollback Segmente,
Undo Segmente und Flashback
Christiane Wellnitz
ORACLE Deutschland GmbH
Berlin
Undo Tablespace
y Vereinfacht die Administration der Rollback-Daten
y Automatische Rollbacksegmente
– Kein create, drop, oder alter rollback segments.
– Oracle8i Rollbacksegmente sind als Alternative
verfügbar
y Aktivierung über Parameter UNDO_MANAGEMENT
– AUTO
– MANUAL
y Automatische Rollbacksegmente liegen immer in einem
Undo-Tablespace, der definiert ist durch den Parameter
UNDO_TABLESPACE.
2
Undo Tablespaces in Oracle Enterprise
Manager 9i
Oracle Flashback
Oracle Invents
Time Machine
y Diese Funktionalität gibt dem Benutzer die
Möglichkeit eine konsistente Sicht auf die
Datenbank zu einem bestimmten Zeitpunkt in der
Vergangenheit.
y Der Benutzer kann eine für die lesende Sicht einen
Systemzeitpunkt bestimmen oder er muß eine SCN
( system change number) angeben.
y Nur die Transactionen die bis zu diesem Zeitpunkt
committed wurden, sind sichtbar. Nicht mit commit
abgeschlossene Transaktionen sind nicht sichtbar
y Jede lokale SQL Abfrage ist erlaubt.
y Es sind keine DML, DDL oder verteilte
Operationen erlaubt
Oracle Flashback (cont.)
y Der System Managed Undo (SMU) Mode muß enabled
sein.
y Undo retention (Time in seconds) muß gesetzt sein:
Alter system set undo_retention = 1800;
heißt, daß die FlashBack Abfrage bis zu 30 Minuten
möglich ist
y Mögliche Anwendungen sind:
–
–
–
Self-service repair
Packaged applications wie das Email-System
Decision Support Systems um Trend Analysen zu fahren
Flashback Query
y In 9i Rel1:
–
Flashback innerhalb der
Session
y Nur ein definierter
Zeitpunkt für ein
Statement
EXECUTE DBMS_FLASHBACK.ENABLE_AT_TIME('01-JAN-2002 12:00:00');
SELECT salary FROM employee WHERE empid = 41863;
EXECUTE DBMS_FLASHBACK.DISABLE;
–
Keine LOB Unterstützung
y 1. Enable the database to run in Automatic Undo
Management mode.
y 2. Set up the Flashback Query environment.
y 3. Run Flashback Query to restore the data.
y 4. ALTER SYSTEM SET UNDO_RETENTION=1800
create undo tablespace <tablespace_name> datafile
'<data filename>' size '<datafile size>'
undo_tablespace=<tablespace_name>
undo_management=auto
drop user tkltdeja cascade;
create user tkltdeja identified by tkltdeja;
grant connect, resource to tkltdeja;
grant execute on dbms_flashback to tkltdeja;
Flashback Query Verbesserungen
y In 9i Rel2
Volle SQL Unterstützung
–
–
–
Flashback query innerhalb des SQL Kommandos
Vergleiche möglich / Viewdefinition möglich
Unterstützung von LOBs
SELECT salary
FROM employee AS OF SCN 4712
WHERE empid = 41863;
SELECT sal2-sal1 as "Differenz"
FROM (SELECT salary as sal2
FROM employees AS OF TIMESTAMP (SYSTIMESTAMP -INTERVAL '1' DAY)
WHERE employee_id = 206) ,
(SELECT salary as sal1
FROM employees AS OF TIMESTAMP (SYSTIMESTAMP -INTERVAL '4' DAY)
WHERE employee_id = 206)
/
Flashback Query Verbesserungen in 9iR2
–
View- und Tabellendefinition möglich
SELECT salary
FROM employee AS OF SCN 4712
WHERE empid = 41863;
SELECT a.last_name, b.last_name
From employees AS OF TIMESTAMP SYSDATE–1/24 a
FULL OUTER JOIN
Employees AS OF TIMESTAMP SYSDATE- 2/24 b
ON ( a.employee_id=b.employee_id;
CREATE TABLE new_employees AS
SELECT * FROM employees AS OF SCN 90932;
Q U E S T
A N S W
I O N S
E R S
Herunterladen