RMAN Errors 2

It's allways the same error you get... 


Löscht man auf Filesystem-Ebene (z.B. mit rm), so bekommt Oracle davon nichts mit und irgendwann ist die db_recovery_file_dest_size überschritten.
Daher:

Zum Löschen RMAN benutzen:

rman target system/,,, (oder als oracle einfach rman target /)
> delete noprompt archivelog until time 'SYSDATE-1/24';
> exit;
Diese Kommandos kann man auch in ein File schreiben und täglich mit
rman target / cmdfile <filename>
ausführen.
Am Saubersten ist es wohl, nach jedem Backup-Lauf mit einem "DELETE OBSOLETE" im RMAN alle nicht mehr benötigten Dateien löschen zu lassen. Was "obsolete" ist, bestimmt per default die "RETENTION POLICY", die im RMAN konfiguriert werden kann. In der FlashRecoveryArea löscht Oracle nach Maßgabe der "RETENTION POLICY" automatisch, wenn Platz gebraucht wird.

Hat man doch einmal nur auf Filesystemebene gelöscht ...

... führt man im RMAN zunächst
> crosscheck archivelog all
aus. Dadurch markiert RMAN die manuell gelöschten Logs als "EXPIRED", da er sie nicht mehr auf der Platte findet. Ergebnis solle ein bereinigter Catalog sein. Er korrigiert allerdings den Wert für den freien Platz in der FlashRecoveryArea nicht. Dazu ist noch ein
> DELETE EXPIRED ARCHIVELOG ALL;
erforderlich. Siehe auch hier und folgender Kommentar von Marc:

Mit "CROSSCHECK ARCHIVELOG ALL" markiert er (RMAN) die manuell gelöschten Logs als "EXPIRED", da er sie nicht mehr auf der Platte findet, korrigiert aber den Wert für den freien Platz in der FlashRecoveryArea nicht. Man muss danach nochmal explizit im RMAN die Logs "löschen" - auch wenn sie physisch ja schon weg sind. Aber nur so wird auch der Wert für den freien Platz wieder korrigiert:
RMAN> CROSSCHECK ARCHIVELOG ALL;
RMAN> DELETE EXPIRED ARCHIVELOG ALL;

No comments:

Post a Comment