Online DATAFILE MOVE in Oracle Database 12c
von Ulrike Schwinn, Oracle Deutschland B.V. & Co. KG
Einige Operationen im Datenbankumfeld können nicht nur offline sondern auch online durchgeführt werden. Ein wichtiges Kennzeichen einer Online Operation ist dabei, dass Abfragen und DML Operationen während des Ablaufs der Operation (beispielsweise einer Reorganisation) ohne Unterbrechung weiter laufen können. Je nach einplanbarer Maintenance Zeit ist es daher manchmal durchaus wünschenswert, Operationen ONLINE durchzuführen.
Generell gibt es in jedem Datenbankrelease Erweiterungen bzgl. der Online Operationen. In Oracle Database 12c handelt sich dabei um folgende Neuerungen:
- Löschen eines Index (DROP INDEX ... ONLINE)
- Index als UNUSABLE markieren (ALTER INDEX ... UNUSABLE ONLINE)
- Spalte als UNUSED markieren (ALTER TABLE ... SET UNUSED COLUMN ... ONLINE)
- Löschen eines Constraints (ALTER TABLE ... DROP CONSTRAINT ... ONLINE)
- MOVE einer Tabellen Partition/Subpartition (ALTER TABLE ... MOVE PARTITION ... ONLINE)
- DATAFILE MOVE (ALTER DATABASE MOVE DATAFILE ...)
Die neuen Online Erweiterungen sind dabei grundlegende Bausteine, um weitere Automatismen in der Datenbank zu erlauben oder mehr Unterbrechungsfreiheit innerhalb von Anwendungen zu garantieren.
Einen Überblick über den aktuellen Stand der Online Operationen finden Sie auf OTN oder im Handbuch Oracle Database High Availability Overview
12c Release 1 (12.1) Kapitel 5.3
Bei der Vorstellung der neuen Online Operationen während der ersten 12c Veranstaltungen fand besonders das letzte Kommando "DATAFILE MOVE" besondere Aufmerksamkeit. Aus diesem Grund wird in folgenden Abschnitten eine kleine Einführung dazu gegeben.
Datendatei Operationen in Oracle Database 11g
Kann man Datendateien überhaupt in Oracle Database 11g mit einem Kommando verlagern; und ist dies auch ONLINE möglich? In 11g kann eine Datendatei oder koönnen mehrere Datendateien mit einem Kommando "nur" umbenannt werden. ALTER DATABASE RENAME FILE steht für diese Aktion zur Verfügung. Wichtig zu wissen ist, dass beim ALTER DATABASE RENAME FILE wirklich nur eine Umbenennung der Dateien im Controlfile stattfindet; es werden keine Dateien auf Betriebsystem kopiert oder verlagert. Zuätzlich muss der Status der Datendateien dabei OFFLINE sein; oder die Datenbank muss sich im MOUNT Stadium befinden.
Folgender Code demonstriert ein Beispiel.
Neuerungen in Oracle Database 12c
Mit Oracle Database 12c ist es nun möglich, Datendateien ONLINE umzubenennen und sogar ONLINE zu verlagern. Die Datenbank kann dabei geöffnet sein, und die Datendateien können den Status ONLINE beibehalten. Im Unterschied zur Umbenennung in Oracle Database 11g wird nicht nur der Eintrag im Controlfile geändert, sondern auch eine Kopie bzw. Verlagerung auf Betriebssystem Ebene durchgeführt.
Folgendes Beispiel zeigt eine Verlagerung der Datendatei user1.dbf nach user1neu.dbf. Die "alte" Datei user1.dbf existiert nach der Operation nicht mehr.
Soll die "alte" Datei user1.dbf nicht gelöscht werden, kann man das Schlüsselwort KEEP nutzen.
Hinweis: Dem aufmerksamen Leser ist sicherlich aufgefallen, dass die Syntax kein ONLINE Schlüsselwort erfordert. Das Kommando ist als Online Ausführung implementiert.
In diesem Zusammenhang sind auch Operationen wie folgt möglich:
- Umbennen der Datendateien
- Kopie der Datendatei (Schlüsselwort KEEP)
- Verlagerung der Datendatei und Überschreiben einer existierenden Datei (Schlüsselwort REUSE)
- Verlagerung im ASM Umfeld
Das Ganze funktioniert natürlich auch in einer ASM Umgebung. Folgende Beispiele (Vielen Dank auch an den Kollegen Martin Gosejacob!) belegen diese Tatsache.
Beispiele dazu und zu weiteren Anwendungen finden sich im Handbuch Oracle Database Administrator's Guide
12c Release 1 (12.1) in Kapitel 14
Lizenzierung
Die Nutzung diese Funktion erfordert die Lizenzierung der Enterprise Edition.
Zurück zur Community-Seite
|