|
Standby Datenbank in "5 Minuten"
von Sebastian Solbach, ORACLE Deutschland GmbH
Mit Oracle 11g und den neuen Funktionalitäten im RMAN und Data Guard ist der Aufbau einer Standby Datenbank
fast eine Sache von wenigen Minuten. Zumindest was die eigentliche Arbeit am Rechner anbelangt - die Zeit zum
Kopieren der Daten ist hierbei natürlich nicht eingerechnet. Denn eine Datenbank muss natürlich in Gänze kopiert
werden; Dass dies bei einer Terabyte Datenbank nicht in Minuten passiert, sollte ersichtlich sein.
Nichts desto trotz hat sich gerade im Bereich RMAN viel getan: So dient als Ausgangsbasis für einen Klon der
Datenbank nicht mehr ein existierendes Backup sondern die Produktive Source Datenbank selber. Eine Kopie kann
direkt über das Netzwerk entstehen.
Dieser Tipp beschreibt in Kürze die einfachen Schritte zum Klonen des Oracle Homes, der Erstellung einer 11g
Standby Datenbank inkl. Konfiguration des Data Guard Brokers - das alles ohne Einsatz von Oracle Enterprise
Manager Grid Control. Mit EM ist die ganze Funktionalität seit 10.2.0.5 auch graphisch unterstützt, aber
in manchen Fällen hat auch das manuelle Vorgehen seinen Reiz.
Das Vorgehen besteht aus mehreren Schritten, bei denen natürlich je nach Bedarf einzelne Schritte weggelassen
werden können.
- Klonen Oracle Software
- Vorbereitung der Source Datenbank fürs Klonen
- Anlegen der Standby Redologs für Standby Datenbanken
- Anpassung der Netzwerkkonfiguration fürs Klonen & DataGuard Broker
- Zielvorbereitungen fürs Klonen
- RMAN Duplikate
- Kleinere Nacharbeiten
- Data Guard Broker Konfiguration
- Test
Besteht z.B. auf dem Zielrechner die Oracle Software Installation schon, so kann der erste Schritt ausgelassen
werden. Möchte man nur eine Kopie der Datenbank ohne eine Standby Umgebung aufzubauen, müssen nur Schritt
1,2,4,5,6 durchgeführt werden.
Vorbemerkung:
Folgende Umgebungsvariablen und Namen werden in den Beispielen verwendet:
| Name | Variable | Wert |
| Oracle Home | $ORACLE_HOME | /opt/oracle/product/db |
| Oracle Base | $ORACLE_BASE | /opt/oracle |
| Oracle Inventory | $INVENTORY | /opt/oracle/oraInventory |
| Servername Primär Datenbank | dgstg |
| Servername Standby Datenbank | dgmuc |
| Name Primär Datenbank | stg |
| Name Standby Datenbank | muc |
| Datendateien stg | /opt/oracle/oradata/stg |
| Datendateien muc | /opt/oracle/oradata/muc |
Ausgangslage: Auf dem Server dgstg läuft eine 11g (11.1.0.7) Oracle Datenbank mit der SID stg.
Schritt 1: Klonen der Oracle Software
Die Oracle Software lässt sich mit Hilfe des Oracle Universal Installers (OUI) Klonen und auf dem Standby
Rechner installieren. Dies hat den großen Vorteil, dass alle installierten Patches gleich mit
gekloned werden und man nicht zusätzlich prüfen muss, ob auf dem Standby Rechner derselbe Softwarestand vorliegt.
Dies ist eine Vorraussetzung für Data Guard.
Das Vorgehen beim Klonen von Oracle Homes ist, die Software zu taren oder zu zippen und die Software
auf dem Standby Rechner zu entpacken. Allerdings sollten beim Klonen von Oracle Homes mit installierten
Oracle Datenbanken die Enterprise Manager Konfigurations- und Log-files nicht transportiert werden.
Diese Verzeichnisse können gleich beim Packen weggelassen werden, indem man eine Exclude Filelist
angibt:
Im Beispiel sind dies in der exclude Liste:
Nun kann die Software auf den Standby Rechner kopiert werden (hier im Beispiel mit TAR und
gleichzeitigem UNTAR). Das /opt/oracle Verzeichnis sollte auf dem Zielrechner bereits exsistieren
und der Oracle User sollte Schreibberechtigung besitzen:
Auf dgmuc wird nun das Oracle Inventory von der kopierten Software erstellt.
Vorher kopieren wir noch 2 Template Files - dies ist im Moment noch bei 11.1.0.7 notwendig:
Damit wäre die Oracle Software gekloned und einsatzbereit.
Schritt 2: Vorbereitungen auf der Source Datenbank stg - Archive Logging & Flashback
Damit überhaupt eine Online Sicherung gemacht werden kann, muss sich die Source Datenbank im
Archivelogmodus befinden. Ebenso ist es seit 10g sinnvoll in Standby Umgebungen Flashback
Logging zu aktivieren. Dies erlaubt u.a. eine leichte Reinstanziierung der Standby Datenbank
(ohne erneutes RMAN Backup/Klon) und Daten schneller und leichter
zu Recovern als über ein Point in Time Recovery.
Schritt 3: Anlegen der Standby Redo Logs
Seit 11g ist der LGWR (Logwriter) der Default Transportmechanismus bei Standby Datenbanken.
Dieser benötigt für Funktionalitäten wie "Zero Data Loss" sog. Standby Redologs.
Diese sollten sowohl auf der Primär Seite, wie auch auf der Standby Seite angelegt werden.
Für die Berechnung der Anzahl an Standby Redologs gilt folgendes:
(Maximale Anzahl an Logfiles pro Thread (Instanz) +1) * Maximale Anzahl an Threads (Instanzen)
Sie werden mit der Syntax:
alter database add standby logfile thread X group Y size ZZ; angelegt.
Die Größe eines Standby Redologs richtet sich dabei nach der Größe der normalen Redologs.
Schritt 4: Anpassung der listener.ora/tnsnames.ora für RMAN Copy & Data Guard Broker
Bei der Standard Netzwerkkonfiguration registriert sich die Datenbank mit ihren Services beim Listener,
sobald diese gestartet wird. Allerdings hat man somit keinen Zugriff von extern auf die Datenbank,
falls die Datenbank nicht gestartet ist, oder noch gar nicht existiert - wie in unserem Fall.
Aus diesem Grund passen wir die Netzwerkkonfiguration für den Data Guard Broker
und für den RMAN Klon an:
LISTENER.ORA auf dgstg:
LISTENER.ORA auf dgmuc:
TNSNAMES.ORA
Vergessen Sie bitte nicht, den Listener auf dem Source Rechner (dgstg) durchzustarten.
Schritt 5: Vorbereitung des Zielknoten (dgmuc) für das Kloning
Zu den Vorbereitungen auf dem Zielrechner gehört das Anlegen von Verzeichnissen.
Einige Verzeichnisse werden nicht automatisch beim Datenbankklonen von RMAN angelegt.
Ebenfalls muss im Vorfeld das Passwortfile der neuen Datenbank existieren und diese sollte manuell
in /etc/oratab eingetragen werden.
Schritt 6: Klonen der Oracle Datenbank mit RMAN Duplicate
Der folgende Schritt klont die Oracle Datenbank direkt übers Netz mit Hilfe des RMAN Duplicate Kommandos:
Selbstverständlich können Sie hier weitere SPFile Änderungen einfließen lassen (z.B. Änderung der SGA Größe).
Falls NAME_CONVERT nicht verwendet wird, muss explizit NOFILENAMECHECK hinzufügt werden, da RMAN
einen Sicherheitscheck eingebaut hat, der das Kopieren in dieselben Dateinamen verhindern soll und somit
das Überspielen existierender Dateien. NAME_CONVERT ist besonder bei der Verwendung von ASM
('+DATA','+STDDATA') oder dem Klonen auf demselben Host hilfreich.
Beachten Sie bitte: Sollte die Standby Datenbank später zu einer Logical Standby werden, verzichten Sie besser auf die CONVERT
Parameter, da diese mit Logical Standby nicht unterstüzt sind.
Schritt 7: Kleinere Nacharbeiten auf der Standby
Hierzu gehört die Aktivierung des Data Guard Brokers auf der Primär und Standby Datenbank, sowie
das Einschalten von Flashback auf der Standby. Die Aktivierung von Flashback wird nicht
automatisch auf der Standby Seite durchgeführt.
Schritt 8: Einrichten von Data Guard
Default einer Data Guard Broker Konfiguration ist der ASYNC Logwriter Transport
Mechanismus und der "Maximum Performance" Protection Modus. Für meine Konfiguration ändere
ich den Transport Modus auf SYNC und verwende den "Maximum Availability" Modus.
Danach ist die Standby Umgebung erfolgreich aufgesetzt und konfiguriert.
Bleibt nur noch das Testen:
Schritt 9: Testen !
Bitte beachten Sie, dass zum Verbinden mit dem Data Guard Broker CLI immer der Connect String
DG_xxx verwendet wird und niemals nur ein / . Dies ist zwingend notwendig,
da der Data Guard Broker beim Umschalten/Failover die Datenbanken durchstartet. Bei einem Connect über
/ verliert der DG Broker dabei die Verbindung zur Datenbank. Infolgedessen ist der eigentliche Vorgang
zwar erfolgreich (z.B. das Umschalten), die ehemalige Produktivdatenbank aber noch nicht als neue
Standby Datenbank gestartet.
Nützliche Links und Referenzen
Oracle Universal Installer and OPatch User's Guide - 6 Cloning Oracle Software
Oracle Data Guard Concepts and Administration - 3 Creating a Physical Standby Database
Oracle Data Guard Concepts and Administration - F Creating a Standby Database with Recovery Manager
Data Guard Redo Transport & Network Configuration
Data Guard Redo Apply & Media Recovery
MAA Best Practices
Zurück zur Community-Seite
|