Oracle-Backup: inkrementell aktualisierte Vollsicherungen auf Disk

Wer eine Lösung sucht um bei Oracle 10 – Backups z.B. Lizenzkosten für den Sicherungsagenten zu sparen könnte sich ggf. mit nachfolgender Lösung anfreunden.

Listpreise für EMC Networker module for Oracle / Stand Mai 2008:

  • Linux: 1.479€
  • Windows: 1.709€
  • Unix: 8.304€

Ziel

  • ein Vollbackup auf Disk soll jederzeit verfügbar sein
  • die Sicherung soll online durchgeführt werden, also ohne DB-Shutdown
  • möglichst kurze Sicherungszeit
  • Archivelogs werden noch jedem Vollbackup aufgeräumt
  • o.g. DB-Backup wird mit herkömmlicher Filesystemsicherung auf Tape abgezogen und x Tage aufbewahrt

Vorgehensweise

Prüfen, ob Block change tracking eingeschaltet ist:

oragridctl@server:~> sqlplus ‘/ as sysdba’

SQL*Plus: Release 10.2.0.3.0 – Production on Tue Jul 1 18:43:33 2008

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

Verbunden mit:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 – 64bit Production
With the Partitioning, OLAP and Data Mining options

SQL> select status from v$block_change_tracking;

STATUS
———-
ENABLED

Ansonsten Block Change Tracking einschalten:

SQL> alter database enable block change tracking using file ‘/oradata/backup/griddb/blkchangetrck_rman.f’;

RMAN-Voreinstellungen prüfen:

oragridctl@server:~> rman target=/

Recovery Manager: Release 10.2.0.3.0 – Production on Tue Jul 1 18:49:03 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

connected to target database: GRIDDB (DBID=2069196047)

RMAN> show all;

using target database control file instead of recovery catalog
RMAN configuration parameters are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO ‘/oradata/backup/griddb/%F’;
CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COPY PARALLELISM 1;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT   ‘/oradata/backup/griddb/%U’;
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM ‘AES128′; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘/oraapps/griddb/dbs/snapcf_griddb.f’; # default

Backupskript /nsr/scripts/backup_griddb.sh erstellen:

#/bin/bash

echo “***************************”
echo “Backup der GRIDDB-Datenbank”
echo “***************************”

# Umgebung setzen
PATH=/oraapps/griddb/bin/:$PATH
ORACLE_HOME=/oraapps/griddb
ORACLE_SID=griddb
JAVA_HOME=$ORACLE_HOME/jdk
NLS_DATE_FORMAT=’DD.MM.YYYY HH24:MI:SS’
export PATH ORACLE_HOME ORACLE_SID JAVA_HOME NLS_DATE_FORMAT

# rman-Skript starten
rman target=/<<EOF

# Aus Performance-Gruenden unter Oracle 10.2.x Optimizer umstellen
sql “alter session set optimizer_mode=rule”;

# Einstellungen setzen
CONFIGURE CONTROLFILE AUTOBACKUP ON;

# Einstellungen anzeigen
show all;

# inkrementell aktualisiertes Backup auf Disk starten
RECOVER COPY OF DATABASE WITH TAG ‘incr_update’;
BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG ‘incr_update’ DATABASE;

# Aufraeumen
report obsolete;
delete noprompt obsolete;

# verfuegbare Backups anzeigen
list backup summary;
list backup;

# verfuegbare Kopien anzeigen
list tag ‘incr_update’ copy;

# Inkarnation anzeigen
list incarnation;

# rman-Skript beenden
quit
EOF

echo “***************************”

# Log per Mail verschicken
mail -s “Backup GRIDDB” “
backuplogs@xyz.de” < /nsr/applogs/backup_griddb.log

cron-Job einrichten:

oragridctl@server:~> crontab -e

# *     *   *   *    *  command to be executed
# -     -    -    -    -
# |     |     |     |     |
# |     |     |     |     +—– day of week (0 – 6) (Sunday=0)
# |     |     |     +——- month (1 – 12)
# |     |     +——— day of month (1 – 31)
# |     +———– hour (0 – 23)
# +————- min (0 – 59)

# Backup GRIDDB
0 21 * * * /nsr/scripts/backup_griddb.sh > /nsr/applogs/backup_griddb.log

Beispiel-Log der Sicherung: backup-log

Filesystem-Sicherung einrichten (Bsp. EMC Networker):

Backup-Client erstellen, dabei Gruppe zuweisen, Browse/Retention-Policy, Paralelism und Directive

Die Directive muß noch erstellt werden. Hier werden alle Files ausgeklammert, die nicht gesichert werden sollen:

<< /oradata >>
+skip: *.dbf
+skip: control*.ctl redo*.log

<< /oradata/backup/griddb >>
logasm: blkchangetrck_rman.f

<< /oraapps/gridapps/oms10g/j2ee/OC4J_EM/log >>
+logasm: .?* *
<< /oraapps/gridapps/oms10g/Apache/Apache/logs >>
+logasm: .?* *
<< /oraapps/gridapps/oms10g/j2ee/OC4J_EMPROV/log >>
+logasm: .?* *
<< /oraapps/gridapps/oms10g/j2ee/home/log >>
+logasm: .?* *
<< /oraapps/gridapps/oms10g/webcache/logs >>
+logasm: .?* *
<< /oraapps/griddb/network/log >>
+logasm: .?* *

<< /usr/local/nagios/var >>
 +logasm: .?* *

<< / >>
 skip: mnt
 +skip: core
<< /tmp >>
 skip: .?* *
<< /nsr >>
 allow
<< /nsr/logs >>
 logasm: .
<< /var >>
 +logasm: .?* *
<< /var/crash >>
 forget
 +skip: .?* *
<< /var/mail >>
 forget
 +mailasm: .?* *
<< /var/spool/mail >>
 forget
 +mailasm: .?* *

<< /dev/ >>
 +skip: .?* *
<< /sys/ >>
 +skip: .?* *
<< /proc/ >>
 +skip: .?* *

Funktionsweise

  • Jede Nacht um 21:00 wird per cron das Backup-Skript gestartet
  • Beim ersten Aufruf wird festgestellt, daß noch keine Level 0 Sicherung erstellt wurde und diese somit erzwungen
  • Beim zweiten Aufruf wird erstmals eine Level 1 Sicherung erstellt
  • Ab dem dritten Aufruf wird die vorhergehende Level 1 Sicherung mit der Level 0 Sicherung verschmolzen
  • Nach der DB-Sicherung werden überflüssige Sicherungen aufgeräumt
  • Per Backup-Software wird das Filesystem anschließend auf Tape gesichert (die offenen Dateien der DB werden dabei ausgeschlossen)

Restore/Recover

  • für länger zurück liegende Backups muß erst der gewünschte Stand vom Band zurückgesichert werden, anschließend die DB herunterfahren, Controlfile aus Sicherung zurückkopieren und Restore starten, ggf. Archivelogs nachfahren
  • der letzte Stand der Sicherung steht für ein restore immer auf Disk bereit

empfohlene Lektüre

Oracle Database 10g / RMAN Backup & Recovery von Oracle Press

This entry was posted in Backup, EMC, Oracle and tagged . Bookmark the permalink.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

*

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>