Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate...

Preview:

Citation preview

Andreas Haak, Seniorberater

DOAG Webinar am 14.12.2012

Verfügbarkeit durch Oracle Data Guard und automatisches Failover

© OPITZ CONSULTING GmbH 2012 Seite 1DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

OPITZ CONSULTING Deutschland GmbH

Bad Homburg, den 14.12.2012

Seite 1

Motivation

� Kundenanforderung: � „Die Anwendung muss hochverfügbar sein“� „Es darf im Fehlerfall kein Datenverlust entstehen“

� Definitionen � Verfügbarkeit� Ausfallzeit

© OPITZ CONSULTING GmbH 2012 Seite 2DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

� Ausfallzeit� Toleranz des Datenverlustes

� Lösungen von Oracle ( RAC, Data Guard, Streams, Golden Gate )

� Häufig vernachlässigt: � Oracle Client Failover

� Managability Overhead

Inhalt

1. Einführung: Verfügbarkeit und Oracle Data Guard

2. Übersicht: Funktionsweise von Oracle Data Guard

3. Übersicht: Fast-Start-Failover (FSFO)

© OPITZ CONSULTING GmbH 2012 Seite 3DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

4. Parametrisierung FSFO

5. Monitoring Data Guard und Maintenance FSFO

6. Client Failover

1 Einführung: Verfügbarkeit und Oracle Data Guard

© OPITZ CONSULTING GmbH 2012 Seite 4DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

Guard

Was bedeutet Hochverfügbarkeit ?

� Definition der Verfügbarkeitsklassen (https://www.bsi.bund.de)

VK Bezeichnung Mind. Verfügbarkeit

Ausfall / Monat

Ausfall / Jahr

0 Ohne zug. Verfügbarkeit

1 Normale Verfügbarkeit 99,0 % < 8 h < 88 h

© OPITZ CONSULTING GmbH 2012 Seite 5DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

2 Erhöhte Verfügbarkeit 99,9 % < 44 min < 9 h

3 Hochverfügbarkeit 99,99 % < 5 min < 53 min

4 Höchstverfügbarkeit 99,999 % < 26 s < 6 min

5 Disaster Tolerant 99,9999 % < 2,6 s < 32 s

bei 7*24 h Betrieb

Definitionen und Begriffe

� Voraussetzung / Bewertung� SLA (Service Level Agreement) mit geplanten Ausfallzeiten

� Technische Kenngrößen zur Bestimmung der Architektur

© OPITZ CONSULTING GmbH 2012 Seite 6DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

� RTO (Recovery Time Objective)

Max. Wiederanlaufzeit nach einem Ausfall

� RPO (Recovery Point Objective)

Max. tolerierbarer Datenverlust

Definitionen und Begriffe

� Weitere Kenngrößen zur Bestimmung der Architektur

� MO (Manageability Overhead)

Aufwände bei Wartung und Administration

© OPITZ CONSULTING GmbH 2012 Seite 7DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

� TCO (Total Cost of Ownership)

Einmalige und laufende Investitionskosten

� ROI (Return on Investment)Abschätzung der mittel- und langfristigen finanziellen Effizienz

High Availability Overview 11g Release 2 (E17157-08)

HA Lösung R T O

RPO

MO

ROI

Features

Cold Cluster • Autom. Verlagerung der Instanz und Applikationen• Rolling Upgrade für Clusterware

RAC • Workload Management und Skalierbarkeit• Rolling Upgrades für HW, OS, Clusterware, CPUs

Extended RAC • Vorteile von RAC + zusätzliche Datenspiegelung in

© OPITZ CONSULTING GmbH 2012 Seite 8DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

Extended RAC • Vorteile von RAC + zusätzliche Datenspiegelung in

2 getrennte Lokationen

Data Guard • Rolling Upgrades für HW, OS, DB, Patches• Read Only Snapshot DB, Active Data Guard, Logical Standby

Data Guard und Cold

Cluster

• Vorteile von Cold Cluster und Data Guard

RAC & Data Guard • Vorteile von RAC und Data Guard

• „Die empfohlene MAA Architektur“

Streams / Golden Gate • Asynchrone und bidirektionale Replikation• Heterogene Plattformen, verschiedene CharacterSets, Fine Control und Data Sharing

Fazit

� Vorteile von Oracle Data Guard hinsichtlich RPO (tolerierbarer Datenverlust ) und MO (MangeabilityOverhead)

� Vorteile von RAC hinsichtlich RTO

© OPITZ CONSULTING GmbH 2012 Seite 9DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

� Empfohlene MAA Architektur RAC ( 2–n Knoten) plus mind. eine Standby DB (Data Guard)

� Literatur: � Oracle® Database High Availability Overview

11g Release 2 (11.2)� Oracle® Database High Availability Best Practices

11g Release 2 (11.2)

2 Übersicht: Funktionsweise von Oracle Data Guard

© OPITZ CONSULTING GmbH 2012 Seite 10DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

Oracle Data Guard

Funktionsprinzip Phys. Oracle Data Guard

SGAStandbyPrimary LNS

Sync/Async Redo Transport (10g/11g)

Commit

MRP

© OPITZ CONSULTING GmbH 2012 Seite 11DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

RedoBuffer

StandbyDB

PrimaryDB

ORL

LNS(11.1)

LGWR

LGWR

RFS MRP

LGWR

Standby RL

ARC

Archived RL

Arch / Redo Transport 9i/10g

Data Guard – Protection Modes

� Maximum Performance (default)

� Maximum Availability

Synchronerja

Asynchroner Mode

© OPITZ CONSULTING GmbH 2012 Seite 12DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

SynchronerLogtransport

Standby DB erreichbar ?

ja

neinNetTimeout(default 60)

Asynchroner ModeTransaktionen laufenweiter

Data Guard – Protection Modes

� Maximum Protection

SynchronerLogtransport

Mind. 1 Standby DB erreichbar ?

ja

nein

NetTimeout(default 60)

© OPITZ CONSULTING GmbH 2012 Seite 13DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

nein(default 60)

Primary DB

Shutdown Primary DB

ja

nein

t < ReOpensecs

Aufbau eine Data Guard Umgebung

� Cloning der Primary DB als Standby DB� RMAN> duplicate target database for standby from active database nofilenamecheck;

� Konfiguration TNS (Listener, tnsnames)

� Data Guard Parametrisierung mittels� SQLPLUS

© OPITZ CONSULTING GmbH 2012 Seite 14DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

� SQLPLUS

� ODER Data Guard Broker

� ODER Oracle Enterprise Grid Control

� Start Standby DB Instanz und Mount der DB

� Start des MRP (Managed Recovery Prozess)

3 Übersicht Fast-Start-Failover (FSFO)

© OPITZ CONSULTING GmbH 2012 Seite 15DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

Übersicht Fast-Start-Failover (FSFO)

Observer dgmgrl> start observer

© OPITZ CONSULTING GmbH 2012 Seite 16DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

Primary Target Standby

Redo Transport

Bystanders 2-n

Ausfall der Primary DB

Observer Failover gemäßFastStartFailoverThreshold

© OPITZ CONSULTING GmbH 2012 Seite 17DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

Primary Target Standby

Redo Transport

Bystanders 2-n

Neue Primary DB nach Failover

Observer

© OPITZ CONSULTING GmbH 2012 Seite 18DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

Primary

Redo Transport

Primary Bystanders 2-n

Manueller Startup mount und Reinstate durch den Observer

Observer

SQL> startup mount

1

2

© OPITZ CONSULTING GmbH 2012 Seite 19DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

Primary

Redo Transport

Primary Bystanders 2-n

Zustand nach dem Reinstate durch den Observer

Observer

© OPITZ CONSULTING GmbH 2012 Seite 20DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

PrimaryTarget Standby

Redo Transport

Bystanders 2-n

4 Parametrisierung Fast-Start-Failover

© OPITZ CONSULTING GmbH 2012 Seite 21DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

Voraussetzungen für FSFO

� Funktionierende Data Guard Umgebung (Primary und Target Standby DB) mit DG Broker

� Force Logging aktiviert

© OPITZ CONSULTING GmbH 2012 Seite 22DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

� Flashback auf Primary und Target Standby DB aktiviert

� Separate Hardware für den Observer (Unix oder Windows)

� Auf der Observer Seite ist der Oracle Client unter der gleichen Version installiert

Schritte zum FSFO in der Praxis

� Cloning der Primary DB und Aufsetzen Oracle DG

� Protection Mode =� Max. Performance oder max. Availability (unter 11g)

� Max. Availability (unter 10g)

© OPITZ CONSULTING GmbH 2012 Seite 23DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

� Tests von Switchover, Failover und Reinstate

� Installation des Oracle Clients mit Oracle NET

� Konfiguration tnsnames.ora auf dem Client (für mindestens Primary und Target Standby )

Schritte zum FSFO in der PraxisDGMGRL> edit database 'OC11G_BCK' set property FastStartFailoverTarget = 'OC11G';DGMGRL> edit database 'OC11G' set property FastStartFailoverTarget = 'OC11G_BCK';

DGMGRL> edit configuration set property FastStartFailoverThreshold = '60';

DGMGRL> edit configuration set property FastStartFailoverLagLimit = '60';

DGMGRL> show configuration verbose;

Configuration - oc11

Protection Mode: MaxPerformance

© OPITZ CONSULTING GmbH 2012 Seite 24DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

Protection Mode: MaxPerformanceDatabases:

OC11G_BCK - Primary databaseOC11G - Physical standby database

Properties:FastStartFailoverThreshold = ‘60'OperationTimeout = '30'FastStartFailoverLagLimit = ‘60'CommunicationTimeout = '180'FastStartFailoverAutoReinstate = 'TRUE'FastStartFailoverPmyShutdown = 'TRUE'BystandersFollowRoleChange = 'ALL'

Fast-Start Failover: DISABLED

Schritte zum FSFO in der Praxis

� Auf dem Oracle Client den Observer starten

DGMGRL> enable fast_start failover;Error: ORA-16651: requirements not met for enabling fast-start failover

© OPITZ CONSULTING GmbH 2012 Seite 25DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

� start_OC11_Observer.bat

� Dann FSFO einschalten

Enabled

dgmgrl -echo sys/<PW>@OC11G "start observerFILE=C:\oracle\product\11.2.0\dg_observer\OC11G.dat" >> C:\oracle\product\11.2.0\dg_observer\dg_observer.log

Dgmgrl> enable fast_start failover;

Beispiel einer Statusanzeige

DGMGRL> show configuration verbose;Configuration - oc11Protection Mode: MaxAvailabilityDatabases:

OC11G - Primary databaseOC11G_BCK - (*) Physical standby database

(*) Fast-Start Failover targetProperties:

FastStartFailoverThreshold = '60'OperationTimeout = '30'FastStartFailoverLagLimit = '60'CommunicationTimeout = '180'

© OPITZ CONSULTING GmbH 2012 Seite 26DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

CommunicationTimeout = '180'FastStartFailoverAutoReinstate = 'TRUE'FastStartFailoverPmyShutdown = 'TRUE'BystandersFollowRoleChange = 'ALL'

Fast-Start Failover: ENABLEDThreshold: 60 secondsTarget: OC11G_BCKObserver: NLWHG109Lag Limit: 60 seconds (not in use)Shutdown Primary: TRUEAuto-reinstate: TRUE

Configuration Status:SUCCESS

Test Failover nach Aktivierung von FSFO

� Automatisches Failover testen� Zum Beispiel durch Stop der Primary DB:

� Nach 60 Sekunden (FastStartFailoverThreshold=60) im Observer

Log:

SQL> shutdown abort;

22:47:03.23 Sonntag, 7. August 2011

© OPITZ CONSULTING GmbH 2012 Seite 27DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

� ‚tail –f‘ auf die Alert Log Datei der (Target Standby DB)

� Nach Failover � sqlplus system@OC11G_BCK und sqlplus system@OC11GPROD

� Dgmgrl> show configuration verbose;

22:47:03.23 Sonntag, 7. August 2011Fast-Start Failover zu Datenbank "OC11G_BCK" wird eingeleitet...Failover wird JETZT vorgenommen. Bitte warten...Failover erfolgreich. Neue Primär-Datenbank ist "OC11G_BCK"22:47:13.98 Sonntag, 7. August 2011

Test Reinstate nach Aktivierung von FSFO

� Reinstate der ehemaligen Primary DB zur Standby DB� Ehemalige Primary Instanz starten und mounten

� Der DG Observer leitet ein Reinstate ein

SQL> startup mount;

Instanz "OC11G" wird gestartet...

© OPITZ CONSULTING GmbH 2012 Seite 28DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

� ‚tail –f‘ auf die Alert Log Datei der (neue Target Standby DB)

� Nach Failover � Auf Primary: SQL> alter system switch logfile;

� Dgmgrl> show configuration verbose;

Instanz "OC11G" wird gestartet...ORACLE-Instanz hochgefahren.Datenbank mounted.Datenbank "OC11G" wird weiterhin neu instanziiert...Neuinstanziierung von Datenbank "OC11G" erfolgreich

Was ist ein Reinstate ?

SQL> startup mount;

Dgmgrl> reinstate database „OC11G“;

OC11G_BCKOC11GPrimary (ALT) Primary

SQL> selectSTANDBY_BECAME_PRIMARY_SCNfrom v$database;

© OPITZ CONSULTING GmbH 2012 Seite 29DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

SQL> flashback database to SCNTO <SCN> ;

from v$database;

SQL> alter database convert toPHYSICAL STANDBY

Shutdown und Startup mount;

SQL> alter database recover managedstandby database (…)

OC11GStandby OC11G_BCK PrimarySync

FSFO Relevante Parameter (11.2) - 1Parameter Typ Default Empfehlung Literaturhinweise

db_flashback_retention_target SQL 1440 >=60 565535.1

FastStartFailoverTarget DG NULL Target Standby

(TNS)

Oracle 11g Dokumentation

FastStartFailoverThreshold DG 30 >=10 + mind 20 bei RAC

1319917.1

© OPITZ CONSULTING GmbH 2012 Seite 30DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

RAC

FastStartFailoverLagLimit DG 30 Business

Relevant

Oracle 11g Dokumentation

OperationTimeout DG 30 >=30, bei RAC

ggf. höher

1322877.1, 1315368.1

CommunicationTimeout DG 180 default Oracle 11g Dokumentation

FastStartFailoverAutoReinstate DG TRUE default Oracle 11g Dokumentation

FastStartFailoverPmyShutdown DG TRUE default Oracle 11g Dokumentation

FSFO Relevante Parameter (11.2) - 2 Parameter Typ Default Empfehlung Literaturhinweise

BystandersFollowRoleChange DG ALL default Oracle 11g Dokumentation

Corrupted Controlfile DG YES default Oracle 11g Dokumentation

JS *)

Corrupted Dictionary DG YES default Oracle 11g Dokumentation

JS *)

© OPITZ CONSULTING GmbH 2012 Seite 31DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

Inaccessible Logfile DG NO ggf. YES Oracle 11g Dokumentation

JS *)

Datafile Offline DG YES default Oracle 11g Dokumentation

JS *)

Stuck Archiver DG NO NO Oracle 11g Dokumentation

JS *)

*) „Guide to Guide to Oracle Data Guard Fast-Start Failover by John Smiley

Weitere Literaturempfehlungen

� Guide to Oracle Data Guard Fast-Start Failover� http://www.oracle.com/technetwork/articles/smiley-fsfo-084973.html

� JD Edwards EnterpriseOne Oracle 11gR2 Database Data Guard with RAC [1315368.1]

© OPITZ CONSULTING GmbH 2012 Seite 32DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

� Best Practices for Corruption Detection, Prevention, and Automatic Repair - in a Data Guard Configuration [1302539.1]

� Best Practice - Oracle GoldenGate and Oracle Data Guard - Switchover/Failover Operations [1323670.1]

4 Monitoring Data Guard und Maintenance FSFO

© OPITZ CONSULTING GmbH 2012 Seite 33DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

Maintenance FSFO

Health Checks der DG Umgebung - 1

� Monitoring der Alert Logdatei und der Broker Logs von Primary und Standby DB

� Monitoring des Observer Logs und Observer Prozesses

� Stati in V$DATABASESQL> select SWITCHOVER_STATUS, FS_FAILOVER_STATUS,

FS_FAILOVER_CURRENT_TARGET, FS_FAILOVER_OBSERVER_PRESENT

© OPITZ CONSULTING GmbH 2012 Seite 34DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

FS_FAILOVER_CURRENT_TARGET, FS_FAILOVER_OBSERVER_PRESENT

from v$database;

� Auf PrimarySWITCHOVER_STATUS FS_FAILOVER_STATUS

TO STANDBY SYNCHRONIZED OC11G YES

� Auf StandbySWITCHOVER_STATUS FS_FAILOVER_STATUS

NOT ALLOWED SYNCHRONIZED OC11G YES

Health Checks der DG Umgebung - 2

� Status des Managed Recovery Prozesses auf StandbySQL> SELECT PROCESS FROM V$MANAGED_STANDBY WHERE PROCESS LIKE 'MRP%’;process

-------

MRP0

© OPITZ CONSULTING GmbH 2012 Seite 35DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

SQL> select pid, process, status,thread#

2 from v$managed_standby where PROCESS like 'MRP%';

PID PROCESS STATUS THREAD#

---------- --------- ------------ ----------

4543 MRP0 APPLYING_LOG 1

Health Checks der DG Umgebung - 3

� Status des Redo Applies auf Standby

SQL> select NAME, VALUE, UNIT, TIME_COMPUTED from v$dataguard_stats

2 where name in ('transport lag', 'apply lag');

NAME VALUE UNIT TIME_COMPUTED

------------- -------------------- ---------------------------

transport lag +00 00:00:00 day(2) to second(0) interval 08/14/2011

© OPITZ CONSULTING GmbH 2012 Seite 36DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

transport lag +00 00:00:00 day(2) to second(0) interval 08/14/2011 15:19:01

apply lag +00 00:00:00 day(2) to second(0) interval 08/14/2011 15:19:01

� Weitere Skripte zum Herunterladen und Testen� http://www.dataguardbook.com/downloads

Maintenance FSFO

� Szenario: Stop von Standby DB und Observer:

� Nach 60 Sekunden (hier FastStartFailoverThreshold)SQL> select sysdate from dual;

select sysdate from dual

*

© OPITZ CONSULTING GmbH 2012 Seite 37DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

ERROR at line 1:

ORA-03135: connection lost contact

Process ID: 20684

Session ID: 49 Serial number: 13

Maintenance FSFO

� Das Alert Log zeigt die folgenden Einträge:

It is likely an automatic failover has already occurred. Primary isshutting down.

Errors in file/opt/oracle/diag/rdbms/oc11g_bck/OC11G_BCK/trace/OC11G_BCK_lgwr_4425.trc:

ORA-16830: Primärdatenbank länger von Fast-Start Failover-Partnern isoliert als FastStartFailovehreshold-Sekunden: Datenbank wird heruntergefahren

© OPITZ CONSULTING GmbH 2012 Seite 38DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

heruntergefahren

Sun Aug 14 15:36:39 2011

System state dump requested by (instance=1, osid=4425 (LGWR)), summary=[abnormal instance termination].

System State dumped to trace file/opt/oracle/diag/rdbms/oc11g_bck/OC11G_BCK/trace/OC11G_BCK_diag_4400.trc

LGWR (ospid: 4425): terminating the instance due to error 16830

Dumping diagnostic data in directory=[cdmp_20110814153639], requested by(instance=1, osid=4425 (LGWR)), summary=[abnormal instance termination].

Instance terminated by LGWR, pid = 4425

Versuchter Restart der Primary Instanz

� Es wird versucht die DB normal wieder hochzufahren:SQL> startup

ORACLE instance started.

Total System Global Area 318046208 bytes

Fixed Size 1343916 bytes

Variable Size 176164436 bytes

Database Buffers 134217728 bytes

© OPITZ CONSULTING GmbH 2012 Seite 39DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

Database Buffers 134217728 bytes

Redo Buffers 6320128 bytes

Database mounted.

ORA-16649: possible failover to another database prevents this databasefrom being opened

!

Versuchter Restart der Primary Instanz

� Notlösung (Standby und Observer nicht mehr erreichbar):

DGMGRL> disable fast_start failover;

Error: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor

Failed.

DGMGRL> disable fast_start failover force;

© OPITZ CONSULTING GmbH 2012 Seite 40DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

DGMGRL> disable fast_start failover force;

Disabled.

SQL> alter database open;

Database altered.

Korrekte Vorgehensweise bei Maintenance � Stop Observer

DGMGRL> stop observer;

� Disable FSFODGMGRL> disable fast_start failover;

� Maintenance

© OPITZ CONSULTING GmbH 2012 Seite 41DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

� Maintenance� Z.B. Switchover, Änderung Protection Mode, Änderung Target Stdby, …

� Start Observer� Auf Oracle Client: dgmgrl -echo sys/<PW>@OC11G "start observer ….

� Enable FSFODGMGRL> enable fast_start failover;

5 Client Failover

© OPITZ CONSULTING GmbH 2012 Seite 42DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

Automatische Service Verlagerung

� Service relocation

� Switchover des DB Services, an den sich die Clients verbinden

(bei Bedarf auch Switchover des IP/DNS Alias)

� Client notification

© OPITZ CONSULTING GmbH 2012 Seite 43DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

� Client notification� Benachrichtigung an den Client

� Efficient reconnection� Schneller Reconnect des Clients an die neue Primary DB

Service relocation und Client notification

� Separater Service für Transparent Application Failover (TAF)

begin

DBMS_SERVICE.CREATE_SERVICE(service_name => 'OC11GPROD'

,network_name => 'OC11GPROD' ���� TNS Name

,aq_ha_notifications => true ���� Sende HA Event zum Client

© OPITZ CONSULTING GmbH 2012 Seite 44DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

,aq_ha_notifications => true

,failover_method => 'BASIC' ����TAF Failover Methode

,failover_type => 'SELECT' ����Versuche Neustart des Selects

,failover_retries => 180 ����Versuche Neustart des Selects

,failover_delay => 1); ����Delay zwischen Reconnects

end;

/

Client TNS Konfiguratrion

� TAF Konfiguration � Beispiel tnsnames.oraOC11GPROD =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL= TCP)(Host= sles10sp2.vmware)(Port= 1521))

© OPITZ CONSULTING GmbH 2012 Seite 45DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

(ADDRESS = (PROTOCOL= TCP)(Host= sles10sp2bck.vmware)(Port= 1521))

)

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME=OC11GPROD)

)

)

� Beispiel sqlnet.oraSQLNET.OUTBOUND_CONNECT_TIMEOUT=3

Automatischer Service beim Start

� Automatischer Start per Trigger beim Open der DB

CREATE OR REPLACE TRIGGER manage_OCIservice_START after STARTUP ON DATABASE

DECLARE

role VARCHAR(30);

BEGIN

© OPITZ CONSULTING GmbH 2012 Seite 46DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

BEGIN

SELECT DATABASE_ROLE INTO role FROM V$DATABASE;

IF role = 'PRIMARY' THEN

DBMS_SERVICE.START_SERVICE('OC11GPROD');

END IF;

END;

/

Automatische Verlagerung beim Failover/Switchover

� Automatischer Start per Trigger beim RoleChange

CREATE OR REPLACE TRIGGER manage_OCIservice_RC after DB_ROLE_CHANGE ON DATABASE

DECLARE

role VARCHAR(30);

BEGIN

© OPITZ CONSULTING GmbH 2012 Seite 47DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

BEGIN

SELECT DATABASE_ROLE INTO role FROM V$DATABASE;

IF role = 'PRIMARY' THEN

DBMS_SERVICE.START_SERVICE('OC11GPROD');

END IF;

END;

/

Service Status der Instanzen

� Beim Einsatz der genannten Trigger wird auch der Instanzparameter service_names automatisch gesetzt

� Auf Primary (=OC11G):SQL> show parameter serviceNAME TYPE VALUE------------------------------------ ----------- ------------------------------

© OPITZ CONSULTING GmbH 2012 Seite 48DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

------------------------------------ ----------- ------------------------------service_names string OC11G, OC11GPROD

� Auf Standby (=OC11G_BCK):SQL> show parameter serviceNAME TYPE VALUE------------------------------------ ----------- ------------------------------service_names string OC11G_BCK

Literatur zum Client Failover unter 11.2

� Oracle MAA Paper „Client Failover Best Practices for Highly

Available Oracle Databases: Oracle Database 11g Release 2”

� http://www.oracle.com/technetwork/database/features/availability/maa-wp-11gr2-client-failover-173305.pdf

� Zu Fast-Application Notfication (FAN)

© OPITZ CONSULTING GmbH 2012 Seite 49DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

� Zu Fast-Application Notfication (FAN)Oracle® Database Administrator's Guide 11g Release 2 (11.2):

Enabling Clients for Fast Connection Failover

Einschränkungen für TAF� TAF funktioniert für

� OCI Connections

� JDBC Connections über Oracle Clients („JDBC thick driver“)

� Client Applikation muss FAN (Fast-Application-Notification) Messages empfangen und auswerten.(���� ID 276225.1, 297490.1 und dortige Referenzen)

© OPITZ CONSULTING GmbH 2012 Seite 50DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

(���� ID 276225.1, 297490.1 und dortige Referenzen)

� Alternative zu TAF ist Fast-Connection-Failover (FCF)� Unterstützt für JDBC thin und thick driver

� Basiert auf dem Oracle Notification Service ONS

� ONS wird mit der Clusterware installiert und konfiguriert

� (����ID 759895.1, ID 566573.1 und dortige Referenzen)

Diskussion

© OPITZ CONSULTING GmbH 2012 Seite 51DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover

Recommended