Inhaltsverzeichnis
Probleme beim Sichern der DB lösen
In regelmäßigen Abständen sind die Logfile der Sicherung zu überprüfen. (siehe: /opt/oracle/admin/<sid>\backup\backup_<tag>.log)
NIE Dateien die RMAN angelegt hat, einfach per Komandozeile löschen! Die Dateien sind dann noch weiterhin im Katalog vorhanden und es kann zu Fehlern beim Backup/Recovery kommen!
Mit dem Script am Ende der Seite regelmäßig prüfen, ob die Flash Recovery Area nicht vollläuft!
Fehler - Fehlende Archivelog
Falls per Hand ein archiviertes Redolog gelöscht wird bzw. nicht mehr vom RMAN auffindbar ist, werden die Archive nicht mehr in ein Backupset gesichert und automatisch von der Festplatte gelöscht. Es besteht die Gefahr, dass die Platte voll läuft.
Fehlermeldungen: RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03002: failure OF backup command AT 08/26/2006 14:48:03 RMAN-06059: expected archived LOG NOT found, lost OF archived LOG compromises recoverability ORA-19625: Fehler beim Identifizieren von Datei /opt/oracle/flash_recovery_area/#ORADBSID#/ARCHIVE\#ORADBSID#_1_73.DBF ORA-27041: Íffnen der Datei nicht m÷glich OSD-04002: Datei kann nicht ge÷ffnet werden O/S-Error: (OS 3) Das System kann den angegebenen Pfad nicht finden.
1.Prüfen, ob diese Datei noch evtl. in einem anderen Verzeichnis existiert, dort ablegen und erneut mit RMAN eine Sicherung durchführen.
2.Falls Datei nicht mehr auffindbar:
Mit den Befehlen „crosscheck backup“ und „crosscheck archivelog all“ kann der Catalog von RMAN geprüft werden. Alle nicht auffindbaren Dateien werden auf „expiered“ gesetzt und müssen per Hand einzeln mit „change archivelog <Nr> delete“ oder komplett mit „delete expiered“ gelöscht werden. Beispiel:
start RMAN
$ export ORACLE_HOME=/opt/oracle/product/10.2.0/db_1 $ export ORACLE_SID=#ORADBSID# $ rman rman> connect target / Befehle absetzen: RMAN> crosscheck backup; RMAN> crosscheck archivelog all; RMAN> delete expired backup; RMAN> delete expired archivelog all;
oder bei Problemen mit dem automatischen Löschen:
RMAN> change archivelog <nr die fehlt> delete;
Falls die Fehlermeldung kommt, dass der Header der Datei defekt sei oder Ähnliches, ist gelegentlich das Archive oder das Backupset auf der Platte einfach wirklich defekt. Dann die bemängelte Datei auf Kommando Ebene löschen und nochmals probieren.
Plattenplatz wird zu klein
A) Sicherungsfenster verkleinern
Falls der Plattenplatz auf Dauer nicht ausreicht, kann auch das Sicherungsfenster verkleinert werden, zum Beispiel auf 5 Tage.
RMAN>CONFIGURE RETENTION POLICY TO REDUNDANCY 2;
Nun löscht man die Backups die nicht mehr für das Sicherungsfenster benötigt werden.
RMAN> DELETE obsolete;
Alternativ:
Je nach Sicherungsstrategie können noch bereits gesicherte
DELETE archivelog from sequence 1000 thread 1 backed up 1 times to device type SBT_TAPE;
B) Backupsets auf neues Laufwerk um verlagern
Natürlich kann die Sicherung der Backupsets auch auf ein anderes Laufwerk verlegt werden. Dazu wird einfach das Format der Backupsets neu gesetzt.
RMAN> CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT "/u02/opt/oracle/flash_recovery_area/#ORADBSID#/backupset\#ORADBSID#_%U";
Autobackup verlegen:
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u02/opt/oracle/flash_recovery_area/#ORADBSID#/backupset\#ORADBSID#_%F';
Archivelogs verlegen:
An der DB anmelden:
$ export ORACLE_HOME=/opt/oracle/product/10.2.0/db_1 $ export ORACLE_SID=#ORADBSID# $ sqlplus /nolog
sql> CONNECT / AS sysdba Archivlog Parameter LOG_ARCHIVE_DEST='/opt/oracle/flash_recovery_area/ptmp\archivelog' auf ein neues Verzeichnis setzen und diese auch IN der init.ora festschreiben (DB verwendet SPFILE!). Prüfen: sql> show parameter LOG_ARCHIVE_DEST NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_archive_dest string /opt/oracle/flash_recovery_area/#ORADBSID#/archive Setzen: sql> ALTER system SET LOG_ARCHIVE_DEST='/u02/opt/oracle/flash_recovery_area/#ORADBSID#/archivelog' scope=both; System wurde geõndert.
Prüfen:
sql> show parameter LOG_ARCHIVE_DEST NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ log_archive_dest string /u02/opt/oracle/flash_recovery_area/#ORADBSID#/a rchive sql>ALTER system switch logfile; System wurde geõndert.
Nun muss im neuen Verzeichnis auch eine Datei auftauchen! Überprüfen, ob im alten Verzeichnis noch Archive registriert sind!
SQL>column name format a40 SQL> SQL> SELECT recid,SEQUENCE#,name,TO_CHAR(next_time,'dd.mm.yyyy hh24:mi'),status FROM v$archived_log ORDER BY SEQUENCE# DESC; RECID SEQUENCE# NAME TO_CHAR(NEXT_TIME) STATUS --------------------------------------- ----------------------------------- 11 82 /opt/oracle/flash_recovery_area/#ORADBSID#/ARCHIVELOG\ 26.08.2006 15:04 A #ORADBSID#_1_82.DBF 10 81 /opt/oracle/flash_recovery_area/#ORADBSID#/ARCHIVELOG\ 26.08.2006 14:58 A #ORADBSID#_1_81.DBF ......
Falls JA, mit RMAN wegsichern!
RMAN> backup archivelog ALL DELETE input;
Die Dateien sollten von der Platte gelöscht werden. Erneut prüfen, ob alle SCN'S auch in einem Backupset vorkommen:
RMAN>show backup .... Liste mit archivierten Logs IN Backup-Satz 11 Thrd Seq Niedrige SCN Niedrige Zeit Nõchste SCN Nõchste Zeit ---- ------- ---------- ------------- ---------- --------- 1 81 58867 26.08.09 59195 26.08.09 1 82 59195 26.08.09 59464 26.08.09 ...
Größe Recovery Area überwachen
- reco.sql
SET linesize 130 pagesize 300 recsep OFF ttitle "Report Recovery Dest Parameter" SKIP 1 - center "Sizes in MB" SKIP 2 show parameter reco column LIMIT format a10 column used format a10 column RECLAIMABLE format a10 column NUMBER_OF_FILES format a6 heading "Files" column Used format a6 SELECT TO_CHAR(ROUND(SPACE_LIMIT/1024/1024,2))||'M' AS LIMIT ,TO_CHAR(ROUND(SPACE_USED/1024/1024,2))||'M' AS used ,TO_CHAR(ROUND(SPACE_RECLAIMABLE/1024/1024,2))||'M' AS RECLAIMABLE ,TO_CHAR(NUMBER_OF_FILES) AS NUMBER_OF_FILES ,TO_CHAR(ROUND((SPACE_USED*100)/SPACE_LIMIT,2),'09D00') AS Used FROM V$RECOVERY_FILE_DEST / ttitle off