Tipps & Tricks: März 2008 Bereich: DBA, B&R Erstellung: 03/2008 MM Versionsinfo: 10.2.0.4, 11.1.0.6 Letzte Überarbeitung: 06/2009 MM Nützliches zur Archivierung in 10g Sie haben Oracle 10g (oder höher) im Einsatz und (hoffentlich) die Archivierung eingeschaltet? Dann haben Sie gemeinsam mit einem (hoffentlich) vorhandenen Backup - schon einmal die Grundlage für eine mögliche Wiederherstellung Ihrer Datenbank in einem (hoffentlich niemals) auftretenden Fehlerfall geschaffen. Aber sind Sie sich auch sicher, dass Sie dazu alles richtig konfiguriert haben und nicht Gefahr laufen, dass Ihnen plötzlich Ihre Datenbank stehen bleibt? Falls ja, dann können Sie an dieser Stelle mit dem Lesen des Monatstipps abbrechen und sich lieber einen anderen unserer (interessanten :-)) Beiträge ansehen. Falls nein, dann haben wir vielleicht noch ein paar nützliche Informationen bezüglich Ihrer Archivierung und der Nutzung der Flash Recovery Area. Überprüfung der Archivierung Die beste Variante zur Überprüfung der Archivierung bietet SQL*Plus. Hierzu ist eine Anmeldung als SYSDBA notwendig: CONNECT sys/<pwd> as sysdba ARCHIVE LOG LIST Datenbank-Log-Modus Archive-Modus Automatische Archivierung Aktiviert Archivierungsziel USE_DB_RECOVERY_FILE_DEST Älteste Online-Log-Sequenz 85 Nächste zu archivierende Log-Sequenz 87 Aktuelle Log-Sequenz 87 Die Ausgabe besagt, dass die Archivierung eingeschaltet ist und als Archivierungsziel die Flash Recovery Area verwendet wird. Auf welches Verzeichnis das Ziel USE_DB_RECOVERY_FILE_DEST verweist, erhält man über einen der folgenden Befehle: SHOW PARAMETER db_recovery_file_dest; NAME -------------------------db_recovery_file_dest db_recovery_file_dest_size VALUE -------------------------------------------C:\oracle\product\10.2.0/flash_recovery_area 2G SELECT * FROM v$recovery_file_dest; NAME SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NOF -------------------------------- ----------- ---------- ----------------- --Muniqsoft GmbH Schulungszentrum, Grünwalder Weg 13a, 82008 Unterhaching, Tel. 089 / 679090-40 IT-Consulting & Support, Witneystraße 1, 82008 Unterhaching, Tel. 089 / 6228 6789-0 Seite 1 von 4 C:\oracle\product\10.2.0/flash_ 2147483648 806454784 11396608 7 Die weiteren Spalten der View V$RECOVERY_FILE_DEST haben im Einzelnen folgende Bedeutung: SPACE_LIMIT: Gesamtgröße der Flash Recovery Area SPACE_USED: Größe des bereits belegten Speicherplatzes SPACE_RECLAIMABLE: Speicherplatz, der durch Löschen von obsoleten (also veralteten) Dateien wieder gewonnen werden könnte NUMBER_OF_FILES: Anzahl, der über die Flash Recovery Area verwalteten Dateien Achtung: Die Größe der Flash Recovery Area ist bei einer Default Installation auf 2GB begrenzt!! Sind diese 2GB bzw. das Gesamtlimit erreicht und es kann nicht weiter archiviert werden, bleibt Ihnen die Datenbank unweigerlich stehen. Sie müssen dazu Dateien aus der Flash Recovery Area löschen bzw. die zulässige Gesamtgröße erhöhen. In der Alert-Datei erhalten Sie eine entsprechende Fehlermeldung: Errors in file c:\oracle\admin\o10g\bdump\o10g_arc1_3832.trc: ORA-19815: WARNING: db_recovery_file_dest_size of 2147483648 bytes is 100.00% used, and has 0 remaining bytes available. Thu Jan 31 14:16:48 2008 ******************************************************************** You have following choices to free up space from flash recovery area: 1. Consider changing RMAN RETENTION POLICY. If you are using Data Guard, then consider changing RMAN ARCHIVELOG DELETION POLICY. 2. Back up files to tertiary device such as tape using RMAN BACKUP RECOVERY AREA command. 3. Add disk space and increase db_recovery_file_dest_size parameter to reflect the new space. 4. Delete unnecessary files using RMAN DELETE command. If an operating system command was used to delete files, then use RMAN CROSSCHECK and DELETE EXPIRED commands. ******************************************************************** Thu Jan 31 14:16:48 2008 Errors in file c:\oracle\admin\o10g\bdump\o10g_arc1_3832.trc: ORA-19809: limit exceeded for recovery files ORA-19804: cannot reclaim 13220864 bytes disk space from 2147483648 limit ARC1: Error 19809 Creating archive log file to 'C:\ORACLE\FLASH_RECOVERY_AREA\O10G\ARCHIVELOG\2008_01_31\O1_MF_1_95_U_.ARC' ARCH: Archival stopped, error occurred. Will continue retrying Thu Jan 31 14:16:49 2008 Errors in file c:\oracle\admin\o10g\bdump\o10g_arc1_3832.trc: ORA-16038: log 1 sequence# 95 cannot be archived ORA-19809: limit exceeded for recovery files ORA-00312: online log 1 thread 1: 'C:\ORACLE\ORADATA\O10G\REDO01.LOG' Thu Jan 31 14:16:49 2008 ARCH: Archival stopped, error occurred. Will continue retrying Thu Jan 31 14:16:49 2008 Errors in file c:\oracle\admin\o10g\bdump\o10g_arc0_288.trc: ORA-16014: log 1 sequence# 95 not archived, no available destinations ORA-00312: online log 1 thread 1: 'C:\ORACLE\ORADATA\O10G\REDO01.LOG' All online logs needed archiving Muniqsoft GmbH Schulungszentrum, Grünwalder Weg 13a, 82008 Unterhaching, Tel. 089 / 679090-40 IT-Consulting & Support, Witneystraße 1, 82008 Unterhaching, Tel. 089 / 6228 6789-0 Seite 2 von 4 Löschen von veralteten Backups bzw. Dateien Das Löschen von Dateien aus der Flash Recovery Area allein auf Betriebssystemebene ist leider nicht mehr ausreichend. Der Speicherplatz, den die gelöschten Dateien belegt haben wird nicht automatisch freigegeben. Sie müssen hierzu das Oracle Tool "Recovery Manager" (RMAN) verwenden. Erst durch das Löschen über den RMAN werden die Dateien aus den Controldateien ausgetragen und der Speicherplatz wieder nutzbar. Dazu empfehlen wir folgendes Vorgehen: Anmeldung über den RMAN an der Datenbank: C:\> RMAN target sys/<pwd>@<tns_alias> Überprüfung der erzeugten archivierten Redolg-Dateien und der erzeugten RMAN-Backups. Ist die Überprüfung für eine Datei nicht erfolgreich, ist diese auf Betriebssystemebene nicht mehr gefunden worden: RMAN> crosscheck archivelog all; RMAN> crosscheck backup; Die nicht erfolgreich überprüften Dateien müssen nun endgültig gelöscht werden: RMAN> delete expired archivelog all; RMAN> delete expired backup; Möglicherweise gibt es weitere Dateien, die zwar physisch noch vorhanden, aber selbst im Fehlerfall nicht mehr erforderlich sind und somit den Status OBSOLETE haben. Diese Dateien lassen sich ebenfalls ganz einfach löschen: RMAN> report obsolete; RMAN> delete obsolete; Die Überprüfung des Speicherplatzes ergibt dann folgendes Ergebnis: SELECT * FROM v$recovery_file_dest; NAME SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NOF -------------------------------- ----------- ---------- ----------------- --C:\oracle\product\10.2.0/flash_ 2147483648 795058176 0 5 Anmerkungen Grundsätzlich ist die Idee eines zentralen Verzeichnisses, das wichtige Dateien für Backup und Recovery Vorgänge übersichtlich verwaltet nicht uninteressant. Man darf als DBA dabei aber nie den administrativen Aufwand außer Acht lassen, der dadurch entsteht. Sicherlich lässt sich auch dies über eine entsprechende RMAN-Konfiguration weitestgehend automatisieren. Die dafür nötigen Skripte werden Ihnen in einem späteren Tipp des Monats vorgestellt. Also regelmäßig wieder reinklicken :-) Wollen Sie auf die Nutzung der Flash Recovery Area komplett verzichten, setzen Sie sich einfach einen (oder mehrere) der LOG_ARCHIVE_DEST_n-Parameter auf das gewünschte Verzeichnis. Aber auch hier müssen Sie natürlich für ausreichenden Speicherplatz sorgen. Muniqsoft GmbH Schulungszentrum, Grünwalder Weg 13a, 82008 Unterhaching, Tel. 089 / 679090-40 IT-Consulting & Support, Witneystraße 1, 82008 Unterhaching, Tel. 089 / 6228 6789-0 Seite 3 von 4 Falls Sie jedoch das in 10g eingeführte FLASHBACK DATABASE-Feature nutzen wollen, kommen Sie um die Flash Recovery Area nicht herum, da die gesammelten Änderungen in Form von .FLB-Dateien nur dort abgelegt werden können. Zum Schluss sind noch ein paar interessante Abfragen hinsichtlich der Archivierung und der Flash Recovery Area zusammengestellt: SELECT dest_id, dest_name, status, destination, log_sequence FROM v$archive_dest; SELECT name, dest_id, sequence#, first_time, next_time FROM v$archived_log; SELECT * FROM v$flash_recovery_area_usage; Muniqsoft GmbH Schulungszentrum, Grünwalder Weg 13a, 82008 Unterhaching, Tel. 089 / 679090-40 IT-Consulting & Support, Witneystraße 1, 82008 Unterhaching, Tel. 089 / 6228 6789-0 Seite 4 von 4