Oracle • SAP • Archive Log
Zusätzliche Oracle Archive Log Destination
Es gibt Tätigkeiten, bei denen sehr viel mehr Archive Logs geschrieben werden, als beim herkömmlichen Tagesbetrieb.
Beispiele im SAP-Kontext:
- Erstellen Shadow Instanz
- Update / Upgrade
- SGEN
- Löschen von Daten nach Archivierungsläufen
- Mandantenkopien
- etc.
Dabei kann es vorkommen, dass das Archivverzeichnis nicht groß genug ausgelegt ist, für den normalen Betrieb aber vollkommen ausreicht.
Eine Option könnte sein, das Filesystem zu vergrößern. Aber leider lassen sich Filesysteme nicht immer verkleinern. Das würde bedeuten, dass im Anschluss der archivelogintensiven Tätigkeit ein viel zu großes Filesystem vorhanden ist, welches nicht ausgenutzt wird.
Eine Lösung könnte sein ein neues Filesystem anzulegen, welches wieder gelöscht wird, oder ein schon vorhandenes temporär zu nutzen und dieses der Oracle Datenbank zur Verfügung zu stellen.
Lösung:
Wenn LOG_ARCHIVE_DEST_1 nicht verfügbar (z.B. voll), dann soll unter LOG_ARCHIVE_DEST_2 weitergeschrieben werden.
Zusätzliche Archive Log Destination anlegen
> mkdir X:\oracle\SID\oraarch col DEST_NAME format a20 col STATUS format a10 col ERROR format a20 col DESTINATION format a50 col RECOVERY_MODE format a13 col DATABASE_MODE format a13 set lines 200 set pages 100 SQL> alter system set LOG_ARCHIVE_DEST_2 = 'LOCATION=X:\oracle\SID\oraarch\SIDarch'; SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=F:\oracle\SID\oraarch\SIDarch MAX_FAILURE=1 NOREOPEN ALTERNATE=LOG_ARCHIVE_DEST_2'; SQL> alter system set LOG_ARCHIVE_DEST_STATE_2 = ALTERNATE;
Überprüfung:
SQL> SELECT dest_name, status, destination FROM v$archive_dest where STATUS != 'INACTIVE'; DEST_NAME STATUS DESTINATION -------------------- ---------- ----------------------------------------- LOG_ARCHIVE_DEST_1 VALID F:\oracle\SID\oraarch\SIDarch LOG_ARCHIVE_DEST_2 ALTERNATE X:\oracle\SID\oraarch\SIDarch SQL> select dest_name,database_mode,recovery_mode,error from v$archive_dest_status where STATUS != 'INACTIVE'; DEST_NAME DATABASE_MODE RECOVERY_MODE ERROR -------------------- ------------- ------------- -------------------- LOG_ARCHIVE_DEST_1 OPEN IDLE LOG_ARCHIVE_DEST_2 OPEN IDLE
Nach dem Update wird die Einstellung wieder rückgängig gemacht.
Zusätzliche Oracle Archive Log Destination löschen
col DEST_NAME format a20 col STATUS format a10 col ERROR format a20 col DESTINATION format a50 col RECOVERY_MODE format a13 col DATABASE_MODE format a13 set lines 200 set pages 100 SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2= ENABLE; SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='';
Überprüfung
SQL> SELECT dest_name, status, destination FROM v$archive_dest where STATUS != 'INACTIVE'; DEST_NAME STATUS DESTINATION -------------------- ---------- ----------------------------- LOG_ARCHIVE_DEST_1 VALID F:\oracle\SID\oraarch\SIDarch SQL> select dest_name,database_mode,recovery_mode,error from v$archive_dest_status where status != 'INACTIVE'; DEST_NAME DATABASE_MODE RECOVERY_MODE ERROR -------------------- ------------- ------------- ---------------- LOG_ARCHIVE_DEST_1 OPEN IDLE