Benutzer-Werkzeuge

Webseiten-Werkzeuge


dba:backup_probleme_loesen

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)

!ACHTUNG!
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;
Möglichst NIE von RMAN geschriebene Dateien einfach per HAND löschen! Dann muss auch umständlich von Hand der Katalog gepflegt werden! Immer anders herum vorgehen, einfach RMAN die Daten löschen lassen!

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.

Achtung! Das alte Verzeichnis muss noch solange existieren, wie dort Sicherungen aus der aktuellen Policy liegen! Je nach Einstellungen werden die Daten nach und nach vom alten Sicherungsort für die Backupsets gelöscht
RMAN> CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT "/u02/opt/oracle/flash_recovery_area/#ORADBSID#/backupset\#ORADBSID#_%U";
Achtung! Auf die Archivelogs und die Autobackups achten! Je nach Bedarf können diese Daten ebenfalls verlegt werden.

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
Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
"Autor: Gunther Pipperr"
dba/backup_probleme_loesen.txt · Zuletzt geändert: 2013/11/28 19:06 von Gunther Pippèrr