51
Andreas Haak, Seniorberater DOAG Webinar am 14.12.2012 Verfügbarkeit durch Oracle Data Guard und automatisches Failover © OPITZ CONSULTING GmbH 2012 Seite 1 DOAG Webinar – Verfügbarkeit durch Oracle Data Guard und automatisches Failover OPITZ CONSULTING Deutschland GmbH Bad Homburg, den 14.12.2012 Seite 1

Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

Embed Size (px)

Citation preview

Page 1: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 2: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 3: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 4: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 5: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 6: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 7: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 8: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 9: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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)

Page 10: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 11: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 12: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 13: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 14: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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)

Page 15: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

3 Übersicht Fast-Start-Failover (FSFO)

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

Page 16: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

Ü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

Page 17: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 18: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 19: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 20: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 21: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

4 Parametrisierung Fast-Start-Failover

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

Page 22: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 23: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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 )

Page 24: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 25: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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;

Page 26: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 27: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 28: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 29: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 30: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 31: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 32: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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]

Page 33: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 34: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 35: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 36: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 37: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 38: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 39: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

!

Page 40: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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.

Page 41: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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;

Page 42: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

5 Client Failover

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

Page 43: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 44: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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;

/

Page 45: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 46: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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;

/

Page 47: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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;

/

Page 48: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 49: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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

Page 50: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

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)

Page 51: Verfügbarkeit durch Oracle Data Guard und … der Primary DB als Standby DB RMAN> duplicate target database for standby from active database nofilenamecheck; Konfiguration TNS (Listener,

Diskussion

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