01.01.2013 Aufrufe

RAC und Standby Datenbanken: - Trivadis

RAC und Standby Datenbanken: - Trivadis

RAC und Standby Datenbanken: - Trivadis

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

| DOAG Konferenz 2003 | Dr. Martin W<strong>und</strong>erli | <strong>Trivadis</strong> AG |<br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong> <strong>Datenbanken</strong>:<br />

Dienste <strong>und</strong> Daten hochverfügbar<br />

www.trivadis.com


©<br />

Agenda<br />

A. Positionierung im Oracle HA Umfeld<br />

B. Kombination aus <strong>RAC</strong> <strong>und</strong> <strong>Standby</strong> <strong>Datenbanken</strong><br />

C. Fazit: <strong>RAC</strong> <strong>und</strong> <strong>Standby</strong> <strong>Datenbanken</strong><br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

2


©<br />

High Availability Optionen von Oracle<br />

� Verhinderung von Ausfallzeiten mit Oracle9i Release 2:<br />

Ungeplante Downtime<br />

Geplante Downtime<br />

System<br />

Fehler<br />

Datenfehler<br />

Desaster<br />

Menschliches<br />

Versagen<br />

System<br />

Wartung<br />

Datenbank<br />

Wartung<br />

Real Application Clusters (<strong>RAC</strong>)<br />

Fast Restart<br />

RMAN, Data Guard<br />

<strong>RAC</strong>, Data Guard<br />

Log Miner, RMAN, Data Guard<br />

Dynamic Reconfiguration,<br />

Data Guard, <strong>RAC</strong><br />

Online Redefinition,<br />

Partitioning<br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

3


©<br />

Dienst vs. Datenverfügbarkeit<br />

� Verfügbarkeit des Dienstes<br />

– Real Application Clusters<br />

– Failover Cluster Systeme (SUN Cluster, Veritas Cluster, etc.)<br />

– (Data Guard)<br />

� Verfügbarkeit der Daten<br />

– Raid Systeme<br />

– Data Guard<br />

� Konsequenz:<br />

– Es müssen – gerade bei sehr hohen Verfügbarkeitsanforderungen –<br />

oftmals Kombinationen der HA Optionen eingesetzt werden<br />

– Zum Beispiel <strong>RAC</strong> System mit einer Data Guard Konfiguration zur<br />

Absicherung<br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

4


©<br />

Was ist <strong>RAC</strong>? – Verfügbarkeit des Dienstes<br />

� Shared Disk Architektur<br />

Data<br />

A-Z<br />

� Relativ problemlos beim Ausfall eines Knotens,<br />

problematisch der Abgleich der Instanz Caches<br />

� Client Connects können (automatisch) über Instanzen<br />

verteilt werden <strong>und</strong> sich bei Knotenausfall neu verbinden<br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

5


©<br />

Real Application Clusters:<br />

Die wichtigsten Neuerungen gegenüber Oracle8i OPS<br />

� Cache Fusion (write/write Conflicts)<br />

� Server Parameter File Support (spfile)<br />

� Global Service Daemon<br />

� Server Side Load Balancing<br />

Data<br />

A-Z<br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

6


©<br />

Was ist Data Guard? – Verfügbarkeit der Daten<br />

� Data Guard verwaltet <strong>Standby</strong> <strong>Datenbanken</strong><br />

� <strong>Standby</strong> <strong>Datenbanken</strong> Gr<strong>und</strong>konzepte:<br />

Primary Site<br />

Primary<br />

Database<br />

Online<br />

Log Files Local<br />

Archiving<br />

Remote<br />

Archiving<br />

Log Transport<br />

<strong>Standby</strong> Site<br />

Online<br />

Log Files<br />

<strong>Standby</strong><br />

Database<br />

Archived<br />

Log Files<br />

� Knoten können weit entfernt plaziert werden, sind sonst unabhängig<br />

� Konzept erlaubt Schutz vor User-/Adminfehlern durch verzögertes Nachführen<br />

der <strong>Standby</strong> Datenbank<br />

� Aktivieren der <strong>Standby</strong> Datenbank erfordert manuellen Eingriff<br />

Log Apply<br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

7


©<br />

Data Guard <strong>und</strong> <strong>Standby</strong> 9i:<br />

Die wichtigsten Neuerungen gegenüber <strong>Standby</strong> 8i<br />

� Automatisches Close Gap<br />

� Switchover (Rollentausch)<br />

� Bis zu 9 <strong>Standby</strong> <strong>Datenbanken</strong> pro Primary<br />

� Verzögertes Applizieren von Redo Logs<br />

� Protection Levels<br />

� Logische <strong>Standby</strong><br />

Datenbank (Datenbank<br />

während Nachfahren zum<br />

Lesen offen)<br />

Data<br />

A-Z<br />

Primary <strong>Standby</strong><br />

Data<br />

A-Z<br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

8


©<br />

Zusammenfassung<br />

� Wir unterscheiden zwischen Daten- <strong>und</strong><br />

Dienst(hoch)verfügbarkeit<br />

� <strong>RAC</strong> addressiert in erster Linie die Hochverfügbarkeit des<br />

Dienstes (Skalierungsaspekte wurden hier nicht betrachtet,<br />

dürfen aber in einer Gesamtbetrachtung aber natürlich nicht<br />

fehlen)<br />

� Data Guard addressiert primär die Hochverfügbarkeit der<br />

Daten<br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

9


©<br />

Agenda<br />

A. Positionierung im Oracle HA Umfeld<br />

B. Kombination aus <strong>RAC</strong> <strong>und</strong> <strong>Standby</strong> <strong>Datenbanken</strong><br />

C. Fazit: <strong>RAC</strong> <strong>und</strong> <strong>Standby</strong> <strong>Datenbanken</strong><br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

10


©<br />

Wie spielen <strong>RAC</strong> <strong>und</strong> Dataguard zusammen? (1)<br />

� Architektur im Vergleich<br />

– <strong>RAC</strong><br />

- (Shared) Disk =<br />

Single Point of Failure<br />

– Data Guard/<strong>Standby</strong><br />

- Downtime bei Ausfall des<br />

Primary Node<br />

Data<br />

A-Z<br />

Data<br />

A-Z<br />

Data<br />

A-Z<br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

11


©<br />

Wie spielen <strong>RAC</strong> <strong>und</strong> Dataguard zusammen? (2)<br />

� Variante 1 erlaubt No-Data-<br />

Loss Szenarien<br />

� Variante 2 ist billiger<br />

� Die üblichen <strong>Standby</strong><br />

Operationen sind bei<br />

beiden Varianten möglich<br />

1)<br />

2)<br />

Data<br />

A-Z<br />

Data<br />

A-Z<br />

Data<br />

A-Z<br />

Data<br />

A-Z<br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

12


©<br />

Wie spielen <strong>RAC</strong> <strong>und</strong> Dataguard zusammen? (3)<br />

� Sie spielen eigentlich noch nicht so zusammen…<br />

� Data Guard kennt keinen <strong>RAC</strong>:<br />

create<br />

create<br />

configuration<br />

configuration<br />

'TriRep'<br />

'TriRep'<br />

as<br />

as<br />

primary<br />

primary<br />

site<br />

site<br />

is<br />

is<br />

'donar_site'<br />

'donar_site'<br />

resource<br />

resource<br />

is<br />

is<br />

'PREP_donar'<br />

'PREP_donar'<br />

hostname<br />

hostname<br />

is<br />

is<br />

'donar'<br />

'donar'<br />

...<br />

...<br />

� Daher muss man alles manuell konfigurieren:<br />

– FAL Konfiguration (Close Gap)<br />

– <strong>Standby</strong> Archive Destination Konfiguration<br />

– Log Archive Destination Konfiguration<br />

– usw.<br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

13


©<br />

<strong>RAC</strong> <strong>und</strong> Single Instance: Demo Hardware<br />

� 3 Knoten: castor, pollux, venus<br />

� Pentium II 750, 384 MByte RAM, SLES-8<br />

mit aktuellem Online Update (Service<br />

Pack 3), OCFS Support <strong>und</strong> Tools<br />

1.0.9.-9 von www.ocfs.org<br />

� Shared Disk: Firewire attached 80 GByte,<br />

PCMCIA Firewire Karten<br />

� Netzwerk: Cluster Interconnect mit zwei 100 MBit PCMCIA Karten,<br />

Client Netzwerk über interne Netzwerkkarte der Notebooks<br />

� Allgemeine Hinweise zu einem Firewire basierten Cluster auf<br />

www.trivadis.com (DOAG Vortrag November 2002)<br />

Data<br />

A-Z<br />

Data<br />

A-Z<br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

14


©<br />

Demo Setup<br />

Client<br />

Connects<br />

Archive<br />

Transport<br />

Client<br />

Connects<br />

Archive<br />

Transport<br />

1528<br />

1521<br />

1528<br />

1521<br />

Castor<br />

Pollux<br />

Cluster Interconnect<br />

Netzwerk<br />

Archive<br />

Transport<br />

1521<br />

Venus<br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

15


©<br />

Setup: Backup der Primary Datenbank<br />

� Der Setup beginnt am einfachsten mit einer Primary <strong>RAC</strong> Datenbank<br />

� Für die <strong>Standby</strong> Datenbank kann ein Server Managed (RMAN) oder User<br />

Managed Backup verwendet werden. Bei RAW Devices auf der <strong>RAC</strong> Datenbank ist<br />

ein Server Managed Backup eigentlich zwingend<br />

� Initiale Komponenten für <strong>Standby</strong> Datenbank:<br />

– Online- oder Offline Backup der Primary Datenbank<br />

– <strong>Standby</strong> Controlfile<br />

– Archiviertes Online Redo Log<br />

– Admin Baum plus spfile<br />

� Alle 4 Komponenten auf den Single Node kopieren<br />

� Falls ausser dem Backup auch die RDBMS Software von einem der <strong>RAC</strong> Knoten<br />

auf den Singel Node kopiert wird, die <strong>RAC</strong> Option auf dem Single Node<br />

deinstallieren<br />

� Ansonsten beim Start der Instanz:<br />

Connect to DIAG Service failed!<br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

16


©<br />

Setup: Netzwerkkonfiguration (1)<br />

� Direkte Verbindungen:<br />

DB9A.trivadistraining.COM<br />

DB9A.trivadistraining.COM<br />

=<br />

=<br />

(DESCRIPTION<br />

(DESCRIPTION<br />

=<br />

=<br />

(ADDRESS<br />

(ADDRESS<br />

=<br />

=<br />

(PROTOCOL<br />

(PROTOCOL<br />

=<br />

=<br />

TCP)(HOST<br />

TCP)(HOST<br />

=<br />

=<br />

castor)(PORT<br />

castor)(PORT<br />

=<br />

=<br />

1521))<br />

1521))<br />

(CONNECT_DATA<br />

(CONNECT_DATA<br />

=<br />

=<br />

(SID<br />

(SID<br />

=<br />

=<br />

DB9A)<br />

DB9A)<br />

))<br />

))<br />

DB9B.trivadistraining.COM<br />

DB9B.trivadistraining.COM<br />

=<br />

=<br />

(DESCRIPTION<br />

(DESCRIPTION<br />

=<br />

=<br />

(ADDRESS<br />

(ADDRESS<br />

=<br />

=<br />

(PROTOCOL<br />

(PROTOCOL<br />

=<br />

=<br />

TCP)(HOST<br />

TCP)(HOST<br />

=<br />

=<br />

pollux)(PORT<br />

pollux)(PORT<br />

=<br />

=<br />

1521))<br />

1521))<br />

(CONNECT_DATA<br />

(CONNECT_DATA<br />

=<br />

=<br />

(SID<br />

(SID<br />

=<br />

=<br />

DB9B)<br />

DB9B)<br />

))<br />

))<br />

DB9venus.trivadistraining.COM<br />

DB9venus.trivadistraining.COM<br />

=<br />

=<br />

(DESCRIPTION<br />

(DESCRIPTION<br />

=<br />

=<br />

(ADDRESS<br />

(ADDRESS<br />

=<br />

=<br />

(PROTOCOL<br />

(PROTOCOL<br />

=<br />

=<br />

TCP)(HOST<br />

TCP)(HOST<br />

=<br />

=<br />

venus)(PORT<br />

venus)(PORT<br />

=<br />

=<br />

1521))<br />

1521))<br />

(CONNECT_DATA<br />

(CONNECT_DATA<br />

=<br />

=<br />

(SID<br />

(SID<br />

=<br />

=<br />

DB9)<br />

DB9)<br />

))<br />

))<br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

17


©<br />

Setup: Netzwerkkonfiguration (2)<br />

� Verbindungen zu <strong>RAC</strong>:<br />

DB9<strong>RAC</strong>.trivadistraining.com<br />

DB9<strong>RAC</strong>.trivadistraining.com<br />

=<br />

=<br />

(DESCRIPTION<br />

(DESCRIPTION<br />

=<br />

=<br />

(FAILOVER=ON)<br />

(FAILOVER=ON)<br />

(LOADBALANCE=ON)<br />

(LOADBALANCE=ON)<br />

(ADDRESS_LIST<br />

(ADDRESS_LIST<br />

=<br />

=<br />

(ADDRESS<br />

(ADDRESS<br />

=<br />

=<br />

(PROTOCOL<br />

(PROTOCOL<br />

=<br />

=<br />

TCP)(HOST<br />

TCP)(HOST<br />

=<br />

=<br />

castor)(PORT<br />

castor)(PORT<br />

=<br />

=<br />

1521))<br />

1521))<br />

(ADDRESS<br />

(ADDRESS<br />

=<br />

=<br />

(PROTOCOL<br />

(PROTOCOL<br />

=<br />

=<br />

TCP)(HOST<br />

TCP)(HOST<br />

=<br />

=<br />

pollux)(PORT<br />

pollux)(PORT<br />

=<br />

=<br />

1521))<br />

1521))<br />

)<br />

)<br />

(CONNECT_DATA<br />

(CONNECT_DATA<br />

=<br />

=<br />

(SERVICE_NAME<br />

(SERVICE_NAME<br />

=<br />

=<br />

DB9.trivadistraining.com)<br />

DB9.trivadistraining.com)<br />

(FAILOVER_MODE<br />

(FAILOVER_MODE<br />

=<br />

=<br />

(TYPE<br />

(TYPE<br />

=<br />

=<br />

SELECT)<br />

SELECT)<br />

(METHOD<br />

(METHOD<br />

=<br />

=<br />

BASIC)<br />

BASIC)<br />

(RETRIES<br />

(RETRIES<br />

=<br />

=<br />

3600)<br />

3600)<br />

(DELAY<br />

(DELAY<br />

=<br />

=<br />

1)<br />

1)<br />

)<br />

)<br />

)<br />

)<br />

)<br />

)<br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

18


©<br />

Setup: Netzwerkkonfiguration (3)<br />

� TNS Eintrag für Clients:<br />

DB9.trivadistraining.com<br />

DB9.trivadistraining.com<br />

=<br />

=<br />

(DESCRIPTION<br />

(DESCRIPTION<br />

=<br />

=<br />

(FAILOVER=ON)<br />

(FAILOVER=ON)<br />

(LOADBALANCE=ON)<br />

(LOADBALANCE=ON)<br />

(ADDRESS_LIST<br />

(ADDRESS_LIST<br />

=<br />

=<br />

(ADDRESS<br />

(ADDRESS<br />

=<br />

=<br />

(PROTOCOL<br />

(PROTOCOL<br />

=<br />

=<br />

TCP)(HOST<br />

TCP)(HOST<br />

=<br />

=<br />

castor)(PORT<br />

castor)(PORT<br />

=<br />

=<br />

1528))<br />

1528))<br />

(ADDRESS<br />

(ADDRESS<br />

=<br />

=<br />

(PROTOCOL<br />

(PROTOCOL<br />

=<br />

=<br />

TCP)(HOST<br />

TCP)(HOST<br />

=<br />

=<br />

pollux)(PORT<br />

pollux)(PORT<br />

=<br />

=<br />

1528))<br />

1528))<br />

(ADDRESS<br />

(ADDRESS<br />

=<br />

=<br />

(PROTOCOL<br />

(PROTOCOL<br />

=<br />

=<br />

TCP)(HOST<br />

TCP)(HOST<br />

=<br />

=<br />

venus)<br />

venus)<br />

(PORT<br />

(PORT<br />

=<br />

=<br />

1528))<br />

1528))<br />

)<br />

)<br />

(CONNECT_DATA<br />

(CONNECT_DATA<br />

=<br />

=<br />

(SERVICE_NAME<br />

(SERVICE_NAME<br />

=<br />

=<br />

DB9.trivadistraining.com)<br />

DB9.trivadistraining.com)<br />

(FAILOVER_MODE<br />

(FAILOVER_MODE<br />

=<br />

=<br />

(TYPE<br />

(TYPE<br />

=<br />

=<br />

SELECT)<br />

SELECT)<br />

(METHOD<br />

(METHOD<br />

=<br />

=<br />

BASIC)<br />

BASIC)<br />

(RETRIES<br />

(RETRIES<br />

=<br />

=<br />

720)<br />

720)<br />

(DELAY<br />

(DELAY<br />

=<br />

=<br />

5)<br />

5)<br />

)<br />

)<br />

)<br />

)<br />

)<br />

)<br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

19


©<br />

Setup: Netzwerkkonfiguration (4)<br />

� Listener (Beispiel castor):<br />

LISTENER<br />

LISTENER<br />

=<br />

=<br />

(DESCRIPTION<br />

(DESCRIPTION<br />

=<br />

=<br />

(ADDRESS<br />

(ADDRESS<br />

=<br />

=<br />

(PROTOCOL<br />

(PROTOCOL<br />

=<br />

=<br />

TCP)(HOST<br />

TCP)(HOST<br />

=<br />

=<br />

castor)(PORT<br />

castor)(PORT<br />

=<br />

=<br />

1521)))<br />

1521)))<br />

SID_LIST_LISTENER<br />

SID_LIST_LISTENER<br />

=<br />

=<br />

(SID_LIST<br />

(SID_LIST<br />

=<br />

=<br />

(SID_DESC<br />

(SID_DESC<br />

=<br />

=<br />

(SID_NAME<br />

(SID_NAME<br />

=<br />

=<br />

DB9A)(O<strong>RAC</strong>LE_HOME<br />

DB9A)(O<strong>RAC</strong>LE_HOME<br />

=<br />

=<br />

/u00/app/oracle/product/9.2.0)<br />

/u00/app/oracle/product/9.2.0)<br />

)<br />

)<br />

)<br />

)<br />

LISTENER_DB9<br />

LISTENER_DB9<br />

=<br />

=<br />

(DESCRIPTION<br />

(DESCRIPTION<br />

=<br />

=<br />

(ADDRESS<br />

(ADDRESS<br />

=<br />

=<br />

(PROTOCOL<br />

(PROTOCOL<br />

=<br />

=<br />

TCP)(HOST<br />

TCP)(HOST<br />

=<br />

=<br />

castor)(PORT<br />

castor)(PORT<br />

=<br />

=<br />

1528)))<br />

1528)))<br />

SID_LIST_LISTENER_DB9<br />

SID_LIST_LISTENER_DB9<br />

=<br />

=<br />

(SID_LIST<br />

(SID_LIST<br />

=<br />

=<br />

(SID_DESC<br />

(SID_DESC<br />

=<br />

=<br />

(SID_NAME<br />

(SID_NAME<br />

=<br />

=<br />

DB9A)(O<strong>RAC</strong>LE_HOME<br />

DB9A)(O<strong>RAC</strong>LE_HOME<br />

=<br />

=<br />

/u00/app/oracle/product/9.2.0)<br />

/u00/app/oracle/product/9.2.0)<br />

)<br />

)<br />

)<br />

)<br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

20


©<br />

Setup: Beide <strong>Datenbanken</strong><br />

� Sinnvolle Settings im (<strong>Standby</strong>-) Datenbank Umfeld<br />

alter<br />

alter<br />

database<br />

database<br />

force<br />

force<br />

logging;<br />

logging;<br />

alter<br />

alter<br />

database<br />

database<br />

add<br />

add<br />

supplemental<br />

supplemental<br />

log<br />

log<br />

data;<br />

data;<br />

alter<br />

alter<br />

system<br />

system<br />

set<br />

set<br />

log_archive_format='DB9_%t_%s.arc'<br />

log_archive_format='DB9_%t_%s.arc'<br />

scope=spfile;<br />

scope=spfile;<br />

� Vor Setup-Backup der Primary oder für <strong>Standby</strong> nach dem 1.<br />

Switchover durchzuführen<br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

21


©<br />

Setup: Modifikation Primary<br />

� Anpassungen am SPFILE<br />

– Setup des Close Gap Features falls die Datenbank zur <strong>Standby</strong> wird<br />

alter<br />

alter<br />

system<br />

system<br />

set<br />

set<br />

fal_server='DB9venus.trivadistraining.com';<br />

fal_server='DB9venus.trivadistraining.com';<br />

alter<br />

alter<br />

system<br />

system<br />

set<br />

set<br />

fal_client='DB9B.trivadistraining.com';<br />

fal_client='DB9B.trivadistraining.com';<br />

– Wer empfängt die archivierten Redo Logs?<br />

alter<br />

alter<br />

system<br />

system<br />

set<br />

set<br />

log_archive_dest_2='SERVICE=DB9venus.trivadistraining.com<br />

log_archive_dest_2='SERVICE=DB9venus.trivadistraining.com<br />

OPTIONAL<br />

OPTIONAL<br />

REOPEN=60';<br />

REOPEN=60';<br />

– Anmeldung bei allen Listenern (hier castor, pollux analog):<br />

alter<br />

alter<br />

system<br />

system<br />

set<br />

set<br />

local_listener='(ADDRESS_LIST=<br />

local_listener='(ADDRESS_LIST=<br />

(ADDRESS=(PROTOCOL=TCP)(HOST=castor)(PORT=1521))<br />

(ADDRESS=(PROTOCOL=TCP)(HOST=castor)(PORT=1521))<br />

(ADDRESS=(PROTOCOL=TCP)(HOST=castor)(PORT=1528))<br />

(ADDRESS=(PROTOCOL=TCP)(HOST=castor)(PORT=1528))<br />

)';<br />

)';<br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

22


©<br />

Setup: Aufbau Single Node <strong>Standby</strong> (1)<br />

� Backup auspacken, admin Baum installieren, spfile File<br />

plazieren <strong>und</strong> Link aus $O<strong>RAC</strong>LE_HOME/dbs erstellen<br />

� Anpassungen am SPFILE<br />

– Es ist keine Cluster Datenbank<br />

alter<br />

alter<br />

system<br />

system<br />

reset<br />

reset<br />

cluster_database_instances<br />

cluster_database_instances<br />

scope=spfile<br />

scope=spfile<br />

sid='*';<br />

sid='*';<br />

alter<br />

alter<br />

system<br />

system<br />

reset<br />

reset<br />

cluster_database<br />

cluster_database<br />

scope=spfile<br />

scope=spfile<br />

sid='*';<br />

sid='*';<br />

– Setup des Close Gap Features<br />

alter<br />

alter<br />

system<br />

system<br />

set<br />

set<br />

fal_server='DB9<strong>RAC</strong>.trivadistraining.com';<br />

fal_server='DB9<strong>RAC</strong>.trivadistraining.com';<br />

alter<br />

alter<br />

system<br />

system<br />

set<br />

set<br />

fal_client='DB9venus.trivadistraining.com';<br />

fal_client='DB9venus.trivadistraining.com';<br />

– Falls die Datenbank zur Primary wird: Wer empfängt die archivierten<br />

Redo Logs?<br />

alter<br />

alter<br />

system<br />

system<br />

set<br />

set<br />

log_archive_dest_2='SERVICE=DB9B.trivadistraining.com<br />

log_archive_dest_2='SERVICE=DB9B.trivadistraining.com<br />

OPTIONAL<br />

OPTIONAL<br />

REOPEN=60';<br />

REOPEN=60';<br />

– Anmeldung bei allen Listenern<br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

23


©<br />

Setup: Aufbau Single Node <strong>Standby</strong> (2)<br />

� <strong>Standby</strong> initial starten:<br />

startup<br />

startup<br />

nomount<br />

nomount<br />

alter<br />

alter<br />

database<br />

database<br />

mount<br />

mount<br />

standby<br />

standby<br />

database;<br />

database;<br />

recover<br />

recover<br />

automatic<br />

automatic<br />

standby<br />

standby<br />

database;<br />

database;<br />

recover<br />

recover<br />

managed<br />

managed<br />

standby<br />

standby<br />

database<br />

database<br />

disconnect;<br />

disconnect;<br />

� Don't panic:<br />

SQL><br />

SQL><br />

recover<br />

recover<br />

managed<br />

managed<br />

standby<br />

standby<br />

database<br />

database<br />

disconnect;<br />

disconnect;<br />

Media<br />

Media<br />

recovery<br />

recovery<br />

complete.<br />

complete.<br />

� Alles ist ok:<br />

Starting<br />

Starting<br />

datafile<br />

datafile<br />

5<br />

5<br />

recovery<br />

recovery<br />

in<br />

in<br />

thread<br />

thread<br />

1<br />

1<br />

sequence<br />

sequence<br />

88<br />

88<br />

Datafile<br />

Datafile<br />

5:<br />

5:<br />

'/u00/oradata/DB9/users01DB9'<br />

'/u00/oradata/DB9/users01DB9'<br />

Media<br />

Media<br />

Recovery<br />

Recovery<br />

Waiting<br />

Waiting<br />

for<br />

for<br />

thread<br />

thread<br />

1<br />

1<br />

seq#<br />

seq#<br />

88<br />

88<br />

Sun<br />

Sun<br />

Apr<br />

Apr<br />

6<br />

6<br />

13:49:47<br />

13:49:47<br />

2003<br />

2003<br />

Completed:<br />

Completed:<br />

ALTER<br />

ALTER<br />

DATABASE<br />

DATABASE<br />

RECOVER<br />

RECOVER<br />

managed<br />

managed<br />

standby<br />

standby<br />

database<br />

database<br />

d<br />

d<br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

24


©<br />

Setup: File Locations<br />

� In unserem Beispiel: <strong>RAC</strong> Datenbankdateien unter<br />

/u11/oradata/DB9 (OCFS), Single Node Datenbankdateien<br />

unter /u00<br />

� Andere Lokation der Controlfiles muss explizit im spfile<br />

definiert werden<br />

� Pfad Mapping muss auf <strong>Standby</strong> <strong>und</strong> auf Primary definiert<br />

sein (wegen Rollenwechsel aka Switchover)<br />

alter<br />

alter<br />

system<br />

system<br />

set<br />

set<br />

db_file_name_convert="u11","u00"<br />

db_file_name_convert="u11","u00"<br />

scope=spfile;<br />

scope=spfile;<br />

alter<br />

alter<br />

system<br />

system<br />

set<br />

set<br />

log_file_name_convert="u11","u00"<br />

log_file_name_convert="u11","u00"<br />

scope=spfile;<br />

scope=spfile;<br />

alter<br />

alter<br />

system<br />

system<br />

set<br />

set<br />

db_file_name_convert="u00","u11"<br />

db_file_name_convert="u00","u11"<br />

scope=spfile;<br />

scope=spfile;<br />

alter<br />

alter<br />

system<br />

system<br />

set<br />

set<br />

log_file_name_convert="u00","u11"<br />

log_file_name_convert="u00","u11"<br />

scope=spfile;<br />

scope=spfile;<br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

25


©<br />

Switchover<br />

� Da Data Guard mit <strong>RAC</strong> nicht klarkommt: Back to the roots<br />

of Oracle9i Release 1!<br />

� D.h. auf Primary:<br />

alter<br />

alter<br />

database<br />

database<br />

commit<br />

commit<br />

to<br />

to<br />

switchover<br />

switchover<br />

to<br />

to<br />

physical<br />

physical<br />

standby;<br />

standby;<br />

--<br />

--<br />

nur<br />

nur<br />

einmal<br />

einmal<br />

shutdown<br />

shutdown<br />

immediate<br />

immediate<br />

startup<br />

startup<br />

nomount<br />

nomount<br />

alter<br />

alter<br />

database<br />

database<br />

mount<br />

mount<br />

standby<br />

standby<br />

database;<br />

database;<br />

recover<br />

recover<br />

managed<br />

managed<br />

standby<br />

standby<br />

database<br />

database<br />

disconnect;<br />

disconnect;<br />

--<br />

--<br />

falls<br />

falls<br />

es<br />

es<br />

sich<br />

sich<br />

um<br />

um<br />

die<br />

die<br />

--<br />

--<br />

recoverng<br />

recoverng<br />

instance<br />

instance<br />

handelt<br />

handelt<br />

� D.h. auf <strong>Standby</strong>:<br />

alter<br />

alter<br />

database<br />

database<br />

commit<br />

commit<br />

to<br />

to<br />

switchover<br />

switchover<br />

to<br />

to<br />

primary;<br />

primary;<br />

shutdown<br />

shutdown<br />

immediate<br />

immediate<br />

startup<br />

startup<br />

� Client Listener nicht vergessen zu stoppen bzw. zu starten!<br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

26


©<br />

Agenda<br />

A. Positionierung im Oracle HA Umfeld<br />

B. Kombination aus <strong>RAC</strong> <strong>und</strong> <strong>Standby</strong> <strong>Datenbanken</strong><br />

C. Fazit: <strong>RAC</strong> <strong>und</strong> <strong>Standby</strong> <strong>Datenbanken</strong><br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

27


©<br />

Fazit: <strong>RAC</strong> <strong>und</strong> <strong>Standby</strong> <strong>Datenbanken</strong><br />

� Schöner wäre: <strong>RAC</strong> <strong>und</strong> Data Guard<br />

� Nicht so tragisch, da ein DBA, der <strong>RAC</strong> <strong>und</strong><br />

Dataguard/<strong>Standby</strong> beherrscht, in der Regel kein Problem<br />

mit sqlplus hat ☺<br />

Das Ziel muss aber sein: Data Guard ist <strong>RAC</strong>-aware<br />

(zumindest dgmgrl)<br />

� Gr<strong>und</strong>sätzlich funktioniert das System wie erwartet<br />

� Mit zwei <strong>RAC</strong> <strong>Datenbanken</strong> hätte man sogar No-Data-Loss<br />

Fähigkeiten (Einschränkung laut Oracle Manual)<br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

28


©<br />

Ausblick auf Oracle 10 g<br />

� Ab dem nächsten Oracle Release kommt Data Guard mit<br />

<strong>RAC</strong> <strong>Datenbanken</strong> klar: Der Hostname wird in der<br />

Configuration nicht mehr benötigt<br />

CREATE CREATE CONFIGURATION CONFIGURATION 'Galaxy' 'Galaxy' AS AS<br />

PRIMARY PRIMARY DATABASE DATABASE IS IS 'DB9' 'DB9'<br />

CONNECT CONNECT IDENTIFIER IDENTIFIER IS IS DB9<strong>RAC</strong>.trivadis.com;<br />

� Wann kommt der nächste Oracle Release? ☺<br />

<strong>RAC</strong> <strong>und</strong> <strong>Standby</strong><br />

29

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!