Archive:SEP sesam Extension für Oracle
Copyright © SEP AG 1999-2024. Alle Rechte vorbehalten.
Jede Form der Reproduktion der Inhalte dieses Benutzerhandbuches, ganz oder in Teilen, ist nur mit der ausdrücklichen schriftlichen Erlaubnis der SEP AG gestattet. Bei der Erstellung dieses Benutzerhandbuches wurde mit größtmöglicher Sorgfalt gearbeitet, um korrekte und fehlerfreie Informationen bereit stellen zu können. Trotzdem kann die SEP AG keine Gewähr für die Richtigkeit der Inhalte dieses Benutzerhandbuches übernehmen.
Einleitung
Das SEP sesam Online Modul für Oracle/RMAN bietet eine Media Management Library (MML) zur Datensicherung von Oracle Datenbanken auf Sesam Server. Die API der MML ist von Oracle dazu bestimmt, dem Recovery Manager (RMAN) mitzuteilen, dass die Daten an eine externe Backup Software weitergeleitet und dort gelagert werden. SEP sesam verwaltet dann das gesamte Handling von Backup-Medien wie z.B. das Laden der korrekten Bänder, während vom RMAN die Backup- und Restore-Vorgänge ausgelöst werden. Der RMAN entscheidet welche Daten gesichert oder rückgesichert werden. Dieses Dokument bietet Informationen über die Sesam-spezifischen Teile von Oracle Sicherungen. Es handelt sich hierbei nicht um ein Oracle/RMAN Administrationshandbuch. Bitte lesen Sie die RMAN Dokumentation, um sich mit Oracles Sicherungs- und Rücksicherungs- Konzepten und Tools vertraut zu machen.
Systemvoraussetzungen
- Unterstütze Versionen
- SEP sesam ab Version 3.4 (inkl. DB-Online-Module für Oracle 8/9/10/11/12)
- Standard Sesam Backup Client installiert
- Dateisystem-Sicherungen müssen mit diesem SEP sesam Client funktionieren
- Für Oracle Online Sicherungen muss die Datenbank im Archiv-Logmodus laufen
Bitte konsultieren Sie das Oracle Administrationshandbuch. Zur Installation gehen wir von der folgenden Umgebung aus.
$ORACLE_SID=mydb $ORACLE_BASE=/opt/oracle $ORACLE_HOME=/opt/oracle/product/oracle $ORACLE_HOME/bin ist im Such-Pfad (PATH-Variable)
Bitte passen Sie die Pfade und Variablen entsprechend Ihren Gegebenheiten an.
Prüfen ob die Datenbank sich im Archivelogmodus befindet
- Starten Sie sqlplus aus der Konsole und verbinden Sie sich als sysdba auf die Datenbank:
#> sqlplus "/as sysdba"
- Prüfen Sie ob die Archivelog funktion aktiviert ist:
#> select name, log_mode from v$database; NAME LOG_MODE --------- ------------ MYDB ARCHIVELOG
Wird hier ARCHIVELOG gezeigt so muss kein weiterer Schritt vorgenommen werden, ist hier aber NOARCHIVELOG zu sehen muss der Modus aktiviert werden:
- Herunterfahren der Datenbank:
#> shutdown immediate;
- Starten der Datenbank in den mount Modus:
#> startup mount;
- Aktivieren des Archivelog-Modus:
#> alter database archivelog;
- Datenbank öffnen:
#> alter database open;
Prüfen ob die RMAN Controlfile AUTOBACKUP Option aktiviert ist
Disaster Recovery |
Diese Option sollte verwendet werden wenn es nötig ist, eine Datenbank unter Umständen auf einem anderen System wiederherzustellen. |
Verwendet die Datenbank ein Controlfile um die angewendeten Sicherungen zu verwalten, sollte die Option aktiviert werden. Dies kann man mit RMAN prüfen:
RMAN> show controlfile autobackup; RMAN configuration parameters for database with db_unique_name XE are: CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
Um die Autobackup-Option zu aktivieren nutzen Sie:
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
Mit Aktivierung dieser Option weisen Sie RMAN an, ein zusätzliches Sicherungssaveset auf dem Backup Server zu erzeugen, welches ausschließlich das vom System verwendete Controlfile enthält.
Installation unter Linux oder UNIX
- Zuerst stellen Sie sicher, dass der normale Sesam Backup Client bereits installiert ist.
- Dateisystem-Sicherungen sollten von diesem Sesam Client funktionieren
- Einloggen als Oracle-User
- Erstellen Sie ein neues Verzeichnis namens sob in $ORACLE HOME
- Erstellen Sie einen symbolischen Link in $ORACLE HOME/lib zum Library File libobk.so aus /opt/sesam/bin/sesam. Wenn die Datei in $ORACLE_HOME/lib bereits existiert, muss diese zuerst umbenannt werden.
oracle@oraclesrv:~> cd $ORACLE_HOME oracle@oraclesrv:/product/oracle> mkdir sob oracle@oraclesrv:/product/oracle> cd sob oracle@oraclesrv:/product/oracle/sob> ln -s /opt/sesam/bin/sesam/libobk.so /product/oracle/sob/libobk.so oracle@oraclesrv:/product/oracle/sob> ln -s /opt/sesam/bin/sesam/libobk.so /product/oracle/lib/libobk.so
(Hinweis: Ab Oracle 9i darf der Oracle-Kernel nicht mehr verlinkt werden. Dieser Schritt ist hier jedoch auch nicht beschrieben.)
Installationsverifizierung unter Linux oder UNIX
Die Installation kann nun mit dem Oracle Tool sbttest überprüft werden
oracle@oraclesrv:~/product/10g/lib> sbttest test Die sbt Funktionshinweise werden aus der libobk.so Library geladen. -- sbtinit erfolgreich -- sbtinit (2nd time) erfolgreich Hinweis: Diese SBT Library verwendet nicht SBT Version 2.0 sbtinit: Mediamanager hat Version 2.3.1.1 Return code -1 from sbtopen for output, bsercoer = 7012, bsercerrno = 0 sbtopen: Invalid argument(s)
Lassen Sie sich nicht von dem Fehler "Invalid argument(s)" verunsichern. Der Aufruf prüft nur, ob die Library erfolgreich geladen werden kann.
Installation unter Windows
- Stellen Sie sicher, dass der normale Sesam Backup Client bereits installiert ist
- Benennen Sie eine bereits existierende Datei orasbt.dll im <ORACLE HOME>\bin Verzeichnis um.
- orasbt.dll ermöglicht die Datenverschlüsselung seit der SEP sesam Version 4.4.2. Deshalb ist es notwendig die Sesam-Dateien msvcr90.dll, msvcr100.dll, cm_crypt.dll, libeay32.dll, ssleay32.dll und md5.dll aus <SESAM_INSTALL>\bin\sesam nach <ORACLE HOME>\bin zu kopieren.
Vollständiger Funktionstest über das sbttest Programm
Über das Programm sbttest können Sie die vollständige Funktionalität von libobk.so testen ohne laufende Datenbanken zu stören. sbttest ist nur vefügbar ab Oracle Version 10g unter Windows. Hierfür müssen die folgenden Umgebungsvariablen gesetzt werden:
- SESAM_SERVER Name des SEP sesam Servers
- SESAM_JOB Name eines bereits konfigurierten Auftrags im Sesam Server mit Auftragstyp Oracle
- SESAM_POOL Name eines bereits konfigurierten Medienpools im Sesam Server
oracle@oraclesrv:~/product/10g/lib> export SESAM_SERVER=backsrv oracle@oraclesrv:~/product/10g/lib> export SESAM_JOB=oracle_test oracle@oraclesrv:~/product/10g/lib> export SESAM_POOL=DISK oracle@oraclesrv:~/product/10g/lib> sbttest test1 -trace sbttest.log The sbt function pointers are loaded from libobk.so library. -- sbtinit succeeded -- sbtinit (2nd time) succeeded Note: This SBT library does not handle version 2.0 of SBT. sbtinit: Media manager is version 2.3.1.1 sbtopen for output successful sbtwrite successful, wrote 100 buffers sbtclose successful after sbtwrite sbtinfo successful file t1 is on volume 5:3 sbtopen for input successful file was created by this program; seed=27600, bufsize=16384, bufcount=100 sbtread successful, read 100 buffers sbtclose successful after sbtread sbtremove successful *** The SBT API test was successful ***
Sollte der Test nicht erfolgreich sein können Sie die Sesam-spezifischen Fehlerprotokollmeldungen im sbttest.log finden.
Konfiguration
RMAN Sicherung
Dieses Kapitel beschreibt nur die SEP sesam spezifischen Teile von Oracle RMAN. Es handelt sich hierbei nicht um ein RMAN Administrationshandbuch. Es ist dringend notwendig, zum Einrichten einer korrekten Sicherungsstrategie die RMAN Dokumentation zu konsultieren. Das folgende Beispielskript führt ein volles Datenbankbackup durch:
connect target run { allocate channel ch1 type 'SBT' parms 'ENV=(SESAM_SERVER=backupsrv,SESAM_JOB=oracle_full,SESAM_POOL=DISK)'; backup filesperset 100 format '0%d_%u.dat' (database); }
Das Skript macht folgendes:
1. Einloggen in die Zieldatenbank (Zu sichernde Datenbank)
2. Öffnen eines Backupkanals ch1 mit den folgend aufgeführten Parametern. (Bitte beachten Sie: Für parallele Sicherungen müssen mehrere Kanäle zugeordnet werden)
- SEPsesam spezifische Parameter
SESAM_SERVER | Hostname des SEP sesam Servers (*), Angabe eines Portbereichs möglich (z.B.: bcksrv:11001@11003-11007) |
SESAM_JOB | Auftragsname für die Oracle Sicherung (*). Der Auftrag muss zuvor auf dem Sesam Server, mit Auftragstyp Oracle, erstellt werden |
SESAM_POOL | Poolname (*) |
SESAM_DRIVE | Laufwerksnummer |
SESAM_TAPE_SERVER | Hostname des SEP sesam Device Servers, Angabe eines Portbereichs möglich (z.B.: bcksrv:11001@11003-11007) |
SOB_TRACE | Tracelevel (max. 3) |
SOB_LOGFILE | Name des Logfiles. Wenn kein Logfile bestimmt ist werden Fehlerprotokollmeldungen ins sbtio.log geschrieben |
- RMAN spezifische Parameter
SBT_LIBRARY=<path> | Pfad zur libobk.so. Insbesondere auf AIX Systemen wichtig, wenn die Library nicht automatisch gefunden wird. Beispiel: allocate channel t1 type ’SBT’ parms='SBT_LIBRARY=/opt/sesam/bin/sesam/libobk.so ENV=(...)'. Siehe [[1] Oracle Documentation] |
- (*) = Pflichtfelder
- Formatkennung. Die Formatbestimmung muss in einer einzigartigen ID resultieren. Oracle und SEP sesam verwenden diese ID, um bei einer Rücksicherung das richtige Saveset zu ermitteln. Oracle garantiert, dass die Kombination von %d%u einzigartig ist.
3. 100 Dateien in einem Saveset zusammenfassen
4. Freigabe des Backup Kanals
Wenn dieses Skript mit rman cmdfile ora_full.rman ausgeführt wird, erscheint die folgende Ausgabe:
oracle@oraclesrv:\~/product/oracle/bin> rman cmdfile ora_full.rman Recovery Manager: Release 12.1.0.1.0 - Production on Mon Jul 7 16:40:37 2014 Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved. RMAN> connect target 2> run 3> { 4> allocate channel ch1 type 'SBT' parms 5> 'ENV=(SESAM_SERVER=backupsrv,SESAM_JOB=oracle_full,SESAM_POOL=DISK)'; 6> backup 7> filesperset 5 8> format '0%d_%u.dat' 9> (database); 10> 11> } 12> connected to target database: ORCL (DBID=1379831420) using target database control file instead of recovery catalog allocated channel: ch1 channel ch1: SID=47 device type=SBT_TAPE channel ch1: MMS Version 4.2.1.102 Starting backup at 07-JUL-14 channel ch1: starting full datafile backup set channel ch1: specifying datafile(s) in backup set input datafile file number=00003 name=/app/oradata/orcl/sysaux01.dbf input datafile file number=00001 name=/app/oradata/orcl/system01.dbf input datafile file number=00002 name=/app/oradata/orcl/example01.dbf input datafile file number=00004 name=/app/oradata/orcl/undotbs01.dbf input datafile file number=00006 name=/app/oradata/orcl/users01.dbf channel ch1: starting piece 1 at 07-JUL-14 channel ch1: finished piece 1 at 07-JUL-14 piece handle=0ORCL_0gpcqdk7.dat tag=TAG20140707T164039 comment=API Version 1.1,MMS Version 4.2.1.102 channel ch1: backup set complete, elapsed time: 00:00:55 Finished backup at 07-JUL-14 Starting Control File and SPFILE Autobackup at 07-JUL-14 piece handle=c-1379831420-20140707-03 comment=API Version 1.1,MMS Version 4.2.1.102 Finished Control File and SPFILE Autobackup at 07-JUL-14 released channel: ch1 Recovery Manager complete.
SEP sbc Oracle Client Extension
Der SEP sesam Client beinhaltet den sbc Oracle Client. Dieses Modul ist ein Shellskript, welches von SEP sesam als SEP sesam Befehlstermin aufgerufen werden kann. Bitte werfen Sie einen Blick in das SEP sesam Administrationshandbuch für weitere Informationen. Dieses Programm erstellt ein RMAN Skript mit den gegebenen Argumenten und führt RMAN mit dem generierten Skript aus.
Verwendung:
oracle@orax10:~/product/10.2/db_1/sob> ./sbc_oracle_rman.sh Usage: ./sbc_oracle_rman.sh -b|r <-l level> -T <TargetDBS> -R <Catalog> -S <SesamServer> \ -j <SesamJob> -m <Mediapool> -o <option> -p <Number of streams> <TableSpace> Arguments: -b: Backup operation. Standardmäßig ist dies eine full, online, single channel Sicherung -r: Restore operation. Standardmäßig ist dies eine full, online, single channel Rücksicherung. HINWEISE: Vor der Rücksicherung muss die Datenbank in den benötigten Zustand gebracht werden, z.B. "SHUTDOWN; STARTUP MOUNT;" Nach der Rücksicherung kann ein "ALTER DATABASE OPEN RESETLOGS;" notwendig sein. -l <copy|full|diff|incr|arch>: Backup level copy, full, diff, incr und Archivelog Der Backup level kann mit archivelog backup kombiniert werden, e.g. -l copy_arch -o {option}: Die folgenden Optionen werden unterstützt: delete Lösche archivelogs nach der Sicherung delete_later Lösche archivelogs nach 3 erfolgreichen Sicherungen offline VORSICHT: Diese Option führt automatisch einen SHUTDOWN der Datenbank vor der Sicherung und einen STARTUP nach der Sicherung! controlfile Restore der controlfile mit rman catalog controlfile_DBID={DBID} Restore der controlfile ohne rman catalog. Benötigt DBID recover Recover nach restore until={YYYYMMDD-HH:MM:SS} Point-in-time recover mit Bis-Zeitpunkt -T <Target database connect string>: Default: ORACLE_SID -R <Recovery catalog connect string>: Default: NoCatalog -C <SesamServer>: SEP sesam Server Host Name -S <TapeServer>: Tape Server host Name -j <SesamJob>: SEP sesam Job Name unter dem die Sicherung läuft -v [0|1]: debug on (set -x) -m <pool name>: SEP sesam Medienpool der für die Sicherung genutzt wird -p <number> bestimmt die Anzahl der Sicherungskanäle <TableSpace> bestimmt einen einzelnen tablespace für die Sicherung oder Rücksicherung. Falls nicht gegeben wird die komplette DB gesichert/rückgesichert
Beispiele:
- Level 0 Sicherung von SID orcl auf SEP sesam server smsrv zum bereits konfigurierten Auftrag orax10_DB-orcl zum Medienpool VTD1 mit Recovery Catalog RCVCAT
/opt/oracle/product/10.2/db_1/sob/sbc_oracle_rman.sh -b -l copy -T orcl -R sys/password@RCVCAT -C smsrv -j orax10_DB-orcl -m VTD1
- Archivelog-Sicherung von SID prod auf SEP sesam server backupsrv zum bereits konfigurierten Auftrag dbsrv_ora-prod zum Medienpool DAY unter Verwendung von SEP sesam Laufwerk 5 und ohne Verwendung eines Oracle Recovery Catalogs
/opt/oracle/product/10.2/db_1/sob/sbc_oracle_rman.sh -b -l arch -T prod -C backupsrv -j dbsrv_ora-prod -m DAY -d 5
- Full Rücksicherung der Datenbank prod mit automatischer Wiederherstellung vom SEP sesam Server amarcv und SEP sesam Auftrag dbsrv_ora-prod vom Medienpool DISK
1. Zunächst muss die Datenbank mit den Oracle Management Tools heruntergefahren werden
SQL> shutdown immediate
2. Datenbank mounten
SQL> startup mount
3. Rücksicherung der Datenbank
# /opt/oracle/product/10.2/db_1/sob/sbc_oracle_rman.sh -r -T prod -o recover -C smsrv -j orax10_DB-prod -m DISK
4. Öffnen der neuen Version der Datenbank
SQL> alter database open;
- Point-In-Time-Recovery von Zeitpunkt 2. Februar 2011 der Datenbank fanta mit automatischer Wiederherstellung. Verbindung zum voreingestellten SEP sesam Auftrag dbserver_ora-fanta in der SEP sesam GUI unter Verwendung des Recovery Catalog RCAT
1. Zunächst muss die Datenbank mit den Oracle Management Tools heruntergefahren werden
SQL> shutdown immediate
2. Datenbank mounten
SQL> startup mount
3. Rücksicherung der Datenbank
# /opt/oracle/product/10.2/db_1/sob/sbc_oracle_rman.sh -r -T fanta -R sys/password@RCAT -o recover,until=20110202-16:31:00 -C sesamsrv -j dbserver_ora-fanta -m Month
4. Öffnen der neuen Version der Datenbank
SQL> alter database open resetlogs;
Verschiedenes
Recovery Catalog mit SEP sesam abgleichen (CROSSCHECK)
Der Recovery Catalog sollte regelmäßig mit SEP sesam abgeglichen werden, da die Medien gemäß der Medienpool-EOLs freigegeben werden. Das bedeutet, dass SEP sesam die Sicherungen nach der EOL-Zeit des verwendeten Medienpools zum Überschreiben freigibt, RMAN allerdings die evtl. bereits überschriebene Sicherung als vorhanden im Recovery Catalog führt.
Für den Abgleich steht das RMAN Kommando CROSSCHECK zur Verfügung, z.B. crosscheck backup device type 'SBT';, welches in einem "ALLOCATE CHANNEL FOR MAINTENANCE" ausgeführt werden muss.
Das Kommando synchronisiert die vorhandenen Sicherungen in SEP Sesam mit dem Recovery Catalog. Nach der Ausführung können die "expired" Sicherungssätze mit "LIST BACKUP" eingesehen und mit "DELETE ... EXPIRED BACKUP ..." entfernt werden.
Beispiel:
allocate channel for maintenance type 'SBT' parms 'ENV=(SESAM_SERVER=sesam,SESAM_JOB=job,SESAM_POOL=pool)'; crosscheck backup; delete expired backup;
Vermeidung des Klartext-Passworts
Wenn das Sesam Skript sbc_oracle_rman.sh/.cmd/.bash aufgerufen wird muss entweder ein Passwort zur Authentifizierung übergeben werden oder das Passwort wird im Script gesetzt.
Um dies zu vermeiden kann anstelle des Sesam Befehlstermins ein Aufruf eines RMAN Backup Skripts über den Oracle Enterprise Manager erfolgen. Dabei müssen die 'PARMS' entsprechend gesetzt werden (SESAM_SERVER, etc.). Der Backup kann dann auch über den Oracle Enterprise Manager Zeitplaner ausgeführt werden. Die Sicherung sollte zeitlich entsprechend der Sesam Backupstrategien für Ihre Umgebung ausgeführt werden.
Wird eine Recovery Catalog Datenbank verwendet so erfolgt die Authentifizierung an dieser Datenbank, dass Passwort für die Authentifizierung an der zu sichernden Datenbank muss dann nicht übergeben werden. In einem solchen Fall wird der sbc_oracle_rman.sh/.cmd/.bash mit dem Passwort des RMAN Benutzers für die Recovery Catalog Datenbank aufgerufen.
Troubleshooting
- Ein Test mit sbttest auf AIX benötigt die Angabe des kompletten Pfades zur Library mit dem Argument -libname, z.B.,
sbttest test1 -libname /opt/sesam/bin/sesam/libobk.so
oder ...-libname $ORACLE_HOME/lib/libobk.so
. - Das RMAN Kommando auf AIX benötigt die Angabe des kompletten Pfades zur Library im Skript mit PARMS SBT_LIBRARY={full_path_to_libobk.so}. Siehe auch RMAN specific parameters.
- Bei der Ausführung von sbttest ist jeweils ein unterschiedliches Argument für backup_file_name anzugeben. Falls sbttest mit dem gleichen backup_file_name Argument aufgerufen wird gibt SEP sesam den Fehler Duplicate key zurück weil der backup_file_name bereits in die SEP sesam Tabelle results eingetragen wurde.
- Auf AIX ist die Shell bash üblicherweise nicht verfügbar. Deshalb muss die erste Zeile in sbc_oracle_rman.sh zu #!/bin/sh angepasst werden.
- Falls die ORACLE_HOME und ORACLE_SID Parameter nicht in der Benutzerumgebung (Environment) gesetzt sind müssen diese angegeben werden. Zum Beispiel durch hinzufügen der Zeilen
export ORACLE_HOME=/u01/app/oracle/product/10gR2/db_1
undexport ORACLE_SID=PROD_DB
oder mit oraenv. Beispiel:
export ORACLE_SID=TEST
export ORAENV_ASK=NO
. oraenv
Weiterführende Links/Literatur
Für weitere Informationen zu diesem Thema empfehlen wir die folgenden Bücher:
- Download SEP sesam Extension for Oracle
- SEP Oracle Whitepaper
- SEP sesam Oracle Administration Guide (PDF)
- Oracle8i Backup & Recovery
from Rama Velpuri, Anand Adkoli, George Williams 1st Edition, November 2000 Osborne - McGraw-Hill, ISBN: 0072127171 - Oracle9i RMAN Backup & Recovery
from Robert G. Freeman, Matthew Hart Configure and Use Oracle Recovery Manager Tutorial for Users, Intermediate and Advanced Level Osborne - McGraw-Hill, ISBN: 0-07-222662-5