Code für kontinuierliche Verfügbarkeit

Ihre Anwendungen erreichen kontinuierliche Verfügbarkeit, wenn geplante Wartungsvorgänge, ungeplante Ausfälle und unausgewogenes Belastungen der Datenbank vor der Anwendung verborgen werden. Eine Kombination aus Best Practices für die Anwendung, einfacher Konfiguration und Oracle Autonomous AI Database stellt sicher, dass Ihre Anwendungen kontinuierlich verfügbar sind.

Die beste Methode zum Verbergen geplanter Wartungsaktivitäten vor Ihren Anwendungen besteht darin, die Arbeit von jedem Datenbank-Workload-Speicherort vor dem Wartungsfenster für diesen Workload-Speicherort transparent per Drain zu entfernen. Die Verbindungspools und Mid-Tiers von Oracle, einschließlich WebLogic Server, Oracle Universal Connection Pool (UCP), OCI Session Pool und nicht verwalteter ODP.NET-Provider sind Fast Application Notification-(FAN-)fähig und werden daher benachrichtigt, bevor Datenbankservices verschoben werden, um ein ordnungsgemäßes Draining der Arbeit vor der Wartung zu ermöglichen. Die FAN-Benachrichtigung löst automatisch das Schließen inaktiver Verbindungen und das Öffnen neuer Verbindungen am neuen Serviceort aus und ermöglicht so eine konfigurierbare Zeit für den Abschluss aktiver Arbeiten an dem Serviceort, der in Kürze heruntergefahren wird. Die wichtigsten JDBC-Mid-Tiers von Drittanbietern, wie IBM WebSphere, ermöglichen bei Konfiguration mit UCP dasselbe Verhalten. Für JDBC-basierte Anwendungen, die UCP nicht verwenden können, stellt Oracle Lösungen mit Oracle-Treibern und Verbindungstests bereit.

Um ungeplante Ausfälle aufgrund eines Komponenten- oder Kommunikationsfehlers zu verbergen, stellt Oracle Folgendes bereit:

TAC oder AC wird auch während der geplanten Wartung für Sessions ausgeführt, die während des zugewiesenen Drain-Intervalls keinen Drain-Vorgang (Abschluss des aktuellen Datenbankvorgangs) ausführen.

Checkliste für Anwendungskonfiguration

Mithilfe der folgenden Richtlinien können Sie die Anwendung kontinuierlich zur Verfügung stellen:

Tipp: In Continuous Availability for Applications on ATP-Direct Whitepaper finden Sie Informationen zu den Best Practices bei der Implementierung einer kontinuierlichen Verfügbarkeit für Anwendungen, die eine autonome KI-Datenbank verwenden.

Mit Datenbankservices verbinden

Datenbankservices bieten Transparenz für die zugrunde liegende Infrastruktur: FAN, Verbindungsdaten, Transparent Application Continuity (TAC), Application Continuity (AC), Switchover, Consumer-Gruppen und viele andere Features und Vorgänge basieren auf der Verwendung von Services.

Autonomous AI Database on Dedicated Exadata Infrastructure bietet mehrere Paare vordefinierter Datenbankservices zur Auswahl, wie unter Vordefinierte Datenbankservicename für autonome KI-Datenbanken beschrieben. Alle stellen FAN und Draining bereit, und für die beiden Transaktionsverarbeitungspaare ist TAC standardmäßig aktiviert. Zum Ändern der TAC- oder AC-Einstellungen für alle vordefinierten Services ist eine API verfügbar (siehe Serviceattribute für Failover aktivieren).

Verbindungszeichenfolge für High Availability konfigurieren

Oracle empfiehlt die unten gezeigte Konfiguration der Verbindungszeichenfolge für den Verbindungsaufbau mit Oracle Autonomous AI Database. In der von Oracle bereitgestellten Datei tnsnames.ora eingebettete Verbindungszeichenfolgen werden auf diese Weise konfiguriert. Verwenden Sie nicht die Easy Connect-Benennung für den Client, da diese Verbindungen keine High-Availability-Funktionen haben.

Verwenden Sie diesen TNS für alle Oracle-Clients ab Version 12.2:

alias =
(DESCRIPTION =
(CONNECT_TIMEOUT= 120)(RETRY_COUNT=20)(RETRY_DELAY=3)(TRANSPORT_CONNECT_TIMEOUT=3)
 (ADDRESS_LIST =
   (LOAD_BALANCE=on)
   (ADDRESS = (PROTOCOL = TCP)(HOST=*scan-host*)(PORT=1521)))
 (CONNECT_DATA=(SERVICE_NAME = *service-name*)))

Verwenden Sie Folgendes für JDBC-Verbindungen mit Oracle-Treiberversion 12.1 oder niedriger.

alias =
(DESCRIPTION =
(CONNECT_TIMEOUT= 15)(RETRY_COUNT=20)(RETRY_DELAY=3)
(ADDRESS_LIST =
  (LOAD_BALANCE=on)
  (ADDRESS = (PROTOCOL = TCP)(HOST=*scan-host*)(PORT=1521)))
(CONNECT_DATA=(SERVICE_NAME = *service-name*)))

Fast Application Notification (FAN) verwenden

FAN benachrichtigt eine Anwendung sofort, wenn ein Service ausfällt oder wiederaufgenommen wird. Ohne FAN können Anwendungen nach Hardware- und Netzwerkausfällen mit TCP/IP-Timeout hängen bleiben und beim Wiederaufnehmen von Ressourcen das Rebalancing versäumen. Alle Oracle-Pools und Oracle-Anwendungsserver verwenden FAN. JAVA-Anwendungsserver von Drittanbietern können UCP verwenden, um FAN zu aktivieren.

Für die Verwendung von FAN sind keine Anwendungsänderungen erforderlich. Hierbei handelt es sich lediglich um Konfigurationsänderungen.

Für einen kontinuierlichen Service während einer geplanten Wartung verwenden Sie FAN mit:

Für einen kontinuierlichen Service bei ungeplanten Ausfällen verwenden Sie FAN mit:

FAN-Abdeckung

FAN-Ereignisse sind in folgende Komponenten integriert:

So aktivieren Sie FAN im Client

Verwenden Sie den TNS-Alias, der unter Verbindungszeichenfolge für High Availability konfigurieren angezeigt wird. Mit dieser Verbindungszeichenfolge wird das Oracle Notification Service-(ONS-)Abonnement auf dem Client automatisch für den FAN-Ereignisempfang konfiguriert, wenn Sie einen Clienttreiber von Oracle Database 12c oder höher verwenden. ONS stellt einen sicheren Kommunikationspfad zwischen der Database Tier und der Clienttier bereit, über den der Client über die Serviceverfügbarkeit (Stoppen oder Starten von Komponenten) benachrichtigt werden kann, sowie einen Load-Balancing-Hinweis zur Laufzeit für eine bessere Arbeitsplatzierung während des normalen Betriebs.

Aktivieren Sie FAN abhängig vom Client wie folgt in den Eigenschaften der Anwendungskonfiguration:

Die vordefinierten Datenbankservices bieten TCPS-Verbindungen, die eine TLS-Wallet-basierte Authentifizierung verwenden. Je nach Anwendungstyp (JDBC oder Oracle Call Interface) muss die Wallet-Konfiguration bestimmte Regeln befolgen, wie unter Clients für FAN mit optionalen Wallets konfigurieren beschrieben.

Empfohlene Vorgehensweisen zum Zulassen von Draining verwenden

Als Best Practice für die Anwendungsnutzung wird empfohlen, Verbindungen für die benötigte Zeit auszuchecken und sie nach Abschluss der aktuellen Aktion wieder in den Pool einzuchecken. Das ist wichtig für eine gute Performance, für das Rebalancing von Arbeit zur Laufzeit und während Wartungsfenstern für das Draining der Arbeit.

Oracle empfiehlt die Verwendung eines FAN-bewussten Oracle-Verbindungspools zum Ausblenden der geplanten Wartung. Es ergeben sich keine Auswirkungen für Benutzer, wenn eine Anwendung einen Oracle-Pool mit FAN verwendet und zwischen Anforderungen Verbindungen zum Pool zurückgibt. Sie müssen keine Anwendungsänderungen vornehmen, um FAN zu verwenden. Wenn ein Oracle-Verbindungspool das FAN-Ereignis für eine geplante Ausfallzeit empfängt, werden alle Verbindungen auf der Instanz zum Draining markiert. Eingecheckte Verbindungen werden sofort geschlossen, damit sie nicht wiederverwendet werden. Da genutzte Verbindungen in den Pool zurückgegeben werden, werden sie geschlossen. Dadurch können alle Verbindungen im Laufe der Zeit ordnungsgemäß geschlossen werden.

Wenn Sie einen Java-basierten Anwendungsserver eines Drittanbieters verwenden, besteht die effektivste Methode für Draining und Failover darin, die gepoolte Datenquelle durch UCP zu ersetzen. Viele Anwendungsserver unterstützen diesen Ansatz, darunter Oracle WebLogic Server, IBM WebSphere, IBM Liberty, Apache Tomcat, Red Hat WildFly (JBoss), Spring, Hibernate und andere. Whitepaper von Oracle und anderen Providern, wie IBM, beschreiben die Verwendung von UCP mit diesen Anwendungsservern. Mit UCP als Datenquelle können UCP-Features wie Fast Connection Failover, Runtime Load Balancing, Application Continuity und Transparent Application Continuity mit vollständiger Zertifizierung verwendet werden.

Transparent Application Continuity (TAC) oder Application Continuity (AC) aktivieren

TAC überwacht Session- und Transaktionsstatus transparent und zeichnet sie auf, sodass eine Datenbanksession nach behebbaren Ausfällen wiederhergestellt werden kann. Für die beiden Transaktionsverarbeitungspaare vordefinierter Datenbankservices ist TAC standardmäßig aktiviert.

AC ist anpassbar, sodass Sie bei einem Failover wahlweise Nebeneffekte wiedergeben oder komplexe Callbacks hinzufügen können, die TAC nicht zulässt. Verwenden Sie AC, wenn Sie Oracle 12c-Treiber (JDBC Thin oder Oracle Call Interface) verwenden, Nebeneffekte oder Callbacks anpassen möchten oder eine Anwendung verwenden, die Status wie temporäre Sessiondauertabellen verwendet und Anforderungen nicht bereinigt.

Schritte für die Verwendung von Transparent Application Continuity

Schritte für die Verwendung von Application Continuity

Verwandte Inhalte