Archivierung in ein Remote-Verzeichnis

06.
Oktober
2012
Veröffentlicht von: Matthias Meyer

Sie betreiben Ihre Oracle Datenbank unter Windows und Ihnen geht der lokale Speicherplatz allmählich aus? Trotzdem soll natürlich weiterhin archiviert werden und auf die regelmäßigen RMAN-Backups wollen Sie verständlicherweise auch nicht verzichten. Haben Sie sich nicht schon häufiger gefragt, ob es keine Möglichkeit gibt, die Archivelogs und die RMAN Backupsets direkt auf einem Remote-Rechner zu erzeugen?

Anschließend erhalten Sie die folgenden Windows-Meldungen

Dem Konto .\schulung wurde die Berechtigung zum Anmelden als Dienst zugewiesen.

Der neue Anmeldename wird erst wirksam, wenn der Dienst beendet und neu gestartet wurde.

Danach starten Sie den Dienst neu. Achten Sie darauf, dass alle gestarteten Oracle Dienste unter dem selben Account laufen. Hier sind das die Dienste "OracleService<sid>" und "Oracle<Home>TNSListener".

Schritt 4: Setzen der Parameter db_recovery_file_dest bzw. log_archive_dest_<n>

Im letzten Schritt definieren Sie Ihr Remote-Verzeichis als neues Zielverzeichnis für die Archivelogs und/oder Backupsets. Bei der Pfadangabe sind allerdings nur UNC-Pfade erlaubt. Die Verwendung von Laufwerksbuchstaben wird bei Remote-Verzeichnissen nicht unterstützt.

Das Zielverzeichnis kann sowohl über die Flash bzw. Fast Recovery Area gesetzt werden, als auch direkt über einen der log_archive_dest<n> Parameter. Zulässig sind folgende Beispiele:

SQL> ALTER SYSTEM SET log_archive_dest_2='location=\\remoteserver\temp\FRA';
System wurde geändert.

SQL> ALTER SYSTEM SWITCH LOGFILE;
System wurde geändert.

SQL> ALTER SYSTEM SET db_recovery_file_dest='\\remoteserver\temp\FRA';
System wurde geändert.

SQL> ALTER SYSTEM SET log_archive_dest_1='location=use_db_recovery_file_dest';
System wurde geändert.

SQL> ALTER SYSTEM SWITCH LOGFILE;
System wurde geändert.

SQL> SELECT name FROM v$archived_log;

NAME
---------------------------------------------------------------------------------
...
C:\ORACLE\FAST_RECOVERY_AREA\O11G\ARCHIVELOG\2012_08_24\O1_MF_1_137_83G8X0SD_.ARC
\\remoteserver\TEMP\FRA\ARC0000000138_0756558819.0001
\\remoteserver\TEMP\FRA\O11G\ARCHIVELOG\2012_08_24\O1_MF_1_139_83G9R8FY_.ARC
\\remoteserver\TEMP\FRA\ARC0000000139_0756558819.0001

Falls Sie die Fast Recovery Area auch für Ihre RMAN Backups verwenden, lassen sich somit auch die Backupsets direkt auf einem Remote-Server erzeugen, ohne dass Sie irgendetwas an Ihren Backup-Skripten verändern müssen.

Nicht zulässig ist folgende Angabe (trotz eingerichteter Netzlaufwerksverbindung Z:)

SQL> ALTER SYSTEM SET log_archive_dest_2='location=z:\FRA';
ALTER SYSTEM SET log_archive_dest_2='location=z:\FRA'
*
FEHLER in Zeile 1:
ORA-02097: Parameter kann nicht verändert werden, da angegebener Wert ungültig ist
ORA-16032: Zielzeichenfolge von Parameter LOG_ARCHIVE_DEST_2 kann nicht übersetzt werden
ORA-09291: sksachk: Ungültiges Verzeichnis für Archivierungsziel angegeben
OSD-04018: Auf das angegebene Verzeichnis oder Gerät kann nicht zugegriffen werden.
O/S-Error: (OS 3) Das System kann den angegebenen Pfad nicht finden.

SQL> ALTER SYSTEM SET db_recovery_file_dest='z:\FRA';
ALTER SYSTEM SET db_recovery_file_dest='z:\FRA'
*
FEHLER in Zeile 1:
ORA-02097: Parameter kann nicht verändert werden, da angegebener Wert ungültig ist
ORA-01261: Zielfolge für Parameter db_recovery_file_dest kann nicht übersetzt werden
ORA-01263: Für Datei-Zielverzeichnis angegebener Name ist ungültig
OSD-04018: Auf das angegebene Verzeichnis oder Gerät kann nicht zugegriffen werden.
O/S-Error: (OS 3) Das System kann den angegebenen Pfad nicht finden.

 

Hinweise

Sind die oben beschriebenen Schritte 1-3 vorgenommen worden, so lassen sich ebenfalls Control- und Online Redo Log-Dateien sowie das SPFILE remote verwenden. 

-- Beispiel für Controldateien
SQL> ALTER SYSTEM set control_files=
     'C:\ORACLE\ORADATA\O11G\CONTROL01.CTL',
     'C:\ORACLE\FAST_RECOVERY_AREA\O11G\CONTROL02.CTL',
     '\\remoteserver\temp\FRA\CONTROL03.CTL' SCOPE=SPFILE;

-- Beispiel für Redo Logs
SQL> ALTER DATABASE ADD LOGFILE MEMBER '\\remoteserver\temp\FRA\REDO01B.RDO'
     TO GROUP 1;

Soll das SPFILE remote genutzt werden, verschieben Sie es in das Remote-Verzeichnis und erstellen Sie eine INIT<sid>.ORA Datei mit folgendem Inhalt:

*.spfile='\\remoteserver\temp\FRA\spfile<sid>.ora'

Auch Datendateien lassen sich auf diese Weise remote anlegen, allerdings kam es bei unseren Tests zu wiederkehrenden Fehlermeldungen in der Alertdatei.

-- Anlegen eines neuen Tablespaces
SQL> CREATE TABLESPACE remote_tbs DATAFILE '\\remoteserver\temp\FRA\tbs01.dbf'
     SIZE 100M;

-- Auszug aus der Alertdatei
...
Errors in file C:\ORACLE\diag\rdbms\o11g\o11g\trace\o11g_m001_3996.trc:
Error in computing freespace for file 000007FF546180B0 \\remoteserver\TEMP\FRA\TBS01.DBF
ORA-27037: Dateistatus nicht abrufbar
OSD-04011: GetFileInformationByHandle() failure, Datei-Info kann nicht abgerufen werden
O/S-Error: (OS 161) Der angegebene Pfadname ist ungültig.

Dies hatte zwar keine (merkbare) Auswirkung auf die Verfügbarkeit der Datendatei und deren Inhalt, aber besonders beruhigend ist diese Fehlermeldung auch nicht.


Abschluss

Das Ablegen von Oracle Dateien auf einem Remote-Rechner ist also keine Hexerei und mit wenigen Schritten durchführbar.

Allerdings ist zu beachten, dass Sie in all diesen Fällen auf eine permanent bestehende (und auch schnelle) Netzwerkverbindung angewiesen sind, ansonsten hängt Ihr Datenbanksystem oder stürzt im schlimmsten Fall sogar ab.

 

Viele weitere interessante Informationen rund um die Administration von Oracle Datenbanken erhalten Sie in unseren Opens internal link in current windowDBA-Kursen. Schauen Sie doch mal vorbei.

DBA Backup & Recovery

Jede Menge Know-how für Sie!

In unserer Know-How Datenbank finden Sie mehr als 300 ausführliche Beiträge zu den Oracle-Themen wie DBA, SQL, PL/SQL, APEX und vielem mehr.
Hier erhalten Sie Antworten auf Ihre Fragen.