
Das IT-Magazin der ORDIX AG mit Fachbeiträgen zu Datenbanken, Unix und Java/XML.
Ein Oracle Managed File wird, je nach Bedarf, automatisch von einer Instanz erstellt beziehungsweise gelöscht. Es ist somit möglich, Datenbankdateien ohne Angabe des darunterliegenden Filesystems anzulegen. Nicht mehr verwendete Daten-, Online Redolog- und Control-Dateien werden neben Verwaltungsaufgaben (Austragen aus dem Data Dictionary, Control-File) auch automatisch physikalisch gelöscht.
Die Dateinamen werden eindeutig generiert, so dass beim Erstellen von Daten-, Online Redolog- und Control-Dateien eine bereits existierende Datei nicht überschrieben werden kann. Der Administrator braucht nur das Verzeichnis anzugeben, in dem sich die Dateien befinden.
Wir setzen die dynamischen Initialisierungsparameter in der init.ora:
DB_CREATE_FILE_DEST=<Verzeichnis der Datendateien> DB_CREATE_ONLINE_LOG_DEST_n=<Verzeichnis der Online Redolog- und Control-Dateien>
Die Zahl n gibt an, wie oft die Online Redolog_Datei bzw. Control-Datei gespiegelt werden soll. Eine Spiegelung ist der bevorzugte Fall, da eine gute Aufteilung der Datenbankdateien erfolgt.
Mit Hilfe des ALTER SYSTEM SET Befehls lassen sich diese Parameter dynamisch ändern und bei Verwendung eines spfile (binäre init.ora) auch direkt hier eintragen. Die angegebenen Verzeichnisse müssen bereits existieren, da die Oracle Instanz keine Verzeichnisse erstellt.
Die OMF-Dateien entsprechen der Oracle Flexible Architecture (OFA), die Namensgebung ist abhängig von der jeweiligen Betriebssystemplattform. Unter Solaris sehen die Dateinamen beispielsweise wie in Abb. 1 gezeigt aus.
Die Buchstaben bedeuten:
%u
ein String von 8 Zeichen (Eindeutigkeit)
%t
Name des Tablespaces
%g
Gruppen-Nummer der Online Redolog-Datei
ora_
identifiziert diese Datei als ein OMF
Die Dateien werden in den in der init.ora (bzw. spfile) angegebenen Verzeichnissen angelegt und bekommen den im Kasten dargestellten Namen. Raw Devices sind bei OMF nicht möglich.
|
|||||||||||||||
| Abb. 1: OMF Namensvergabe unter Solaris. |
Die Größe der Datendateien beträgt standardmäßig 100 MB. Die automatische Erweiterung (AUTOEXTENDED Klause) ist auf UNLIMITED gesetzt. Da das Tablespace standardmäßig ab Oracle 9i lokal verwaltet wird, reduziert sich die Syntax bei der Tablespaceerstellung:
CREATE TABLESPACE <Tablespacename> [DATAFILE [SIZE <n> [K|M] [,SIZE <n> [K|M]]];
Den kompletten Vorgang möchten wir nun anhand eines Beispiels verdeutlichen: Die Oracle 9i Datenbank ordix wurde bisher noch nicht mit OMF verwaltet. Wir wollen einen neuen Tablespace develop erstellen, der mit Hilfe von Oracle Managed Files verwaltet werden soll.
Wir setzen zunächst den dynamischen Initialisierungsparameter. Die Instanz legt alle Datenbankdateien in diesem Verzeichnis an. Anschließend erstellen wir mit Hilfe des folgenden Befehls das Tablespace develop mit zwei Datendateien der Anfangsgröße von 500 MB. Wir überprüfen dies, indem wir die Data Dictionary View DBA_DATA_FILES abfragen.
ALTER SYSTEM SET DB_CREATE_FILE_DEST = ‘/oradata/ordix’; CREATE TABLESPACE develop DATAFILE SIZE 500M,SIZE 500M; SELECT file_name FROM dba_data_files WHERE tablespace_name =’DEVELOP’; FILE_NAME —————————————————————— /ORADATA/ORDIX/ORA_DEVELOP_YC7VMN00.DBF /ORADATA/ORDIX/ORA_DEVELOP_YC7VMN01.DBF
Möchten wir eine Datendatei einem bereits existierenden Tablespace manuell hinzufügen, so geben wir die folgende Syntax ein:
ALTER TABLESPACE <Tablespacename> ADD DATAFILE [SIZE <n> [K|M] [,SIZE <n> [K|M]];
OMF Datendateien können wir auf herkömmliche Weise in normale Datendateien umbenennen. Ein Umbenennen von normalen Datendateien in OMF Datendateien ist hingegen nicht möglich.
Das heißt, zunächst wird das entsprechende Tablespace OFFLINE gesetzt und die gewünschte Datei mit Betriebssystemmitteln kopiert. Das Umbenennen erfolgt mit Hilfe des folgenden Befehls. Danach wird das Tablespace wieder ONLINE gesetzt.
ALTER TABLESPACE <Tablespacename> RENAME DATAFILE <OMF_Dateiname> TO <Dateiname>
Löschen wir ein OMF Tablespace, so entfernt die Instanz automatisch auch alle dazugehörigen Datendateien auf Betriebssystemebene. Dazu wird der folgende Befehl verwendet:
DROP TABLESPACE <Tablespacename>;
Wird auf die einfache Administration Wert gelegt, (und weniger auf eine gestreute Verteilung im Filesystem und auf den Sicherheitsaspekt) d. h. Online Redolog-Dateien und Control-Dateien befinden sich in demselben Verzeichnis, so ist dieses Feature unter 9i für kleine Datenbanken zu empfehlen.
Zukünftig wird uns dieses Feature oft bei Installationsskripten begegnen, denn so können Skripte ausgeliefert werden, die komplett unabhängig vom Betriebssystem erstellt werden können und somit nicht mehr angepasst werden müssen.
Stephan Sippel (info@ordix.de).