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