Migration von Datendateien
Einzelne Oracle Datendateien können mit einem einzigen Befehl verschoben werden.
Mit dem folgenden Befehl wird beispielsweise die Datendatei IOPST.dbf aus dem Dateisystem verschoben /oradata2
Zu Dateisystem /oradata3
.
SQL> alter database move datafile '/oradata2/NTAP/IOPS002.dbf' to '/oradata3/NTAP/IOPS002.dbf'; Database altered.
Das Verschieben einer Datendatei mit dieser Methode kann langsam sein, sollte jedoch normalerweise nicht genügend I/O produzieren, um die täglichen Datenbank-Workloads zu beeinträchtigen. Im Gegensatz dazu kann die Migration über die ASM-Ausbalancierung viel schneller ablaufen, doch dies geschieht auf Kosten der Verlangsamung der gesamten Datenbank, während die Daten verschoben werden.
Die zum Verschieben von Datendateien erforderliche Zeit kann einfach gemessen werden, indem eine Test-Datendatei erstellt und dann verschoben wird. Die verstrichene Zeit für den Vorgang wird in den Sitzungsdaten mit den folgenden Kosten aufgezeichnet:
SQL> set linesize 300; SQL> select elapsed_seconds||':'||message from v$session_longops; ELAPSED_SECONDS||':'||MESSAGE ----------------------------------------------------------------------------------------- 351:Online data file move: data file 8: 22548578304 out of 22548578304 bytes done SQL> select bytes / 1024 / 1024 /1024 as GB from dba_data_files where FILE_ID = 8; GB ---------- 21
In diesem Beispiel handelte es sich bei der verschobenen Datei um die Datendatei 8, deren Größe 21 GB betrug und die Migration ca. 6 Minuten in Anspruch nahm. Der erforderliche Zeitaufwand hängt natürlich von den Funktionen des Storage-Systems, des Storage-Netzwerks und der gesamten Datenbankaktivität zum Zeitpunkt der Migration ab.