Code pour la disponibilité continue

Vos applications atteignent une disponibilité continue lorsque les coupures imprévues et la maintenance planifiée de la base de données sont masquées pour l'application. Par l'alliance des meilleures pratiques pour les application, de la configuration simple et d'Oracle Autonomous AI Database, vos applications sont disponibles en permanence.

Afin de dissimuler les activités de maintenance planifiées pour vos applications, la meilleure approche consiste à purger de manière transparente le travail de chaque emplacement de charge globale de base de données avant la fenêtre de maintenance de l'emplacement de charge globale. Les pools de connexions et les niveaux intermédiaires d'Oracle, y compris WebLogic Server, Oracle Universal Connection Pool (UCP), le pool de sessions OCI et le fournisseur non géré ODP.NET, tiennent compte de la fonction FAN (Fast Application Notification) et sont donc notifiés avant le déplacement programmé des services de base de données à des fins de purge progressive du travail avant la maintenance. La notification FAN déclenche automatiquement la fermeture des connexions inactives et l'ouverture de nouvelles connexions au nouvel emplacement de service, et accorde un délai configurable nécessaire à l'exécution du travail actif à l'emplacement de service sur le point d'être arrêté. Les principaux niveaux intermédiaires JDBC tiers, tels qu'IBM WebSphere, autorisent le même comportement lorsqu'ils sont configurés avec UCP. Pour les applications JDBC qui ne peuvent pas utiliser UCP, Oracle fournit des solutions à l'aide des pilotes Oracle et des tests de connexion.

Pour masquer les coupures non planifiées résultant d'un échec de composant ou de communication, Oracle propose les outils suivants :

La continuité TAC ou AC est également active pendant la maintenance planifiée pour les sessions sans purge (qui effectuent l'opération de base de données en cours) pendant l'intervalle de purge alloué.

Liste de contrôle de configuration d'application

Pour assurer la disponibilité continue de votre application, suivez les procédures ci-dessous :

A savoir : Reportez-vous à Disponibilité continue pour les applications sur le livre blanc ATP-Direct pour connaître les meilleures pratiques en matière d'implémentation de la disponibilité continue pour les applications utilisant une base de données d'IA autonome.

Connexion à l'aide des services de base de données

Les services de base de données assurent la transparence pour l'infrastructure sous-jacente : la fonction FAN, les données de connexion, la continuité d'application transparente (TAC), la continuité d'application (AC), la permutation, les groupes de destinataires, ainsi que de nombreuses autres fonctionnalités et opérations sont basés sur l'utilisation des services.

Autonomous AI Database on Dedicated Exadata Infrastructure propose plusieurs paires de services d'une base de données prédéfinis à sélectionner, tel que décrit dans Noms de service de base de données prédéfinis pour les bases d'IA autonomes. Elles offrent toutes la fonction FAN et la purge, et la continuité TAC est activée par défaut pour les deux paires destinées au traitement des transactions. Une API est disponible pour modifier les paramètres TAC ou AC sur tous les services prédéfinis (reportez-vous à Activation des attributs de service pour le basculement en cas d'incident).

Configuration de la chaîne de connexion pour la haute disponibilité

Oracle recommande la configuration de chaîne de connexion présentée ci-dessous pour la connexion à Oracle Autonomous AI Database. Les chaînes de connexion imbriquées dans le fichier tnsnames.ora fourni par Oracle sont configurées de cette façon. N'utilisez pas la résolution de noms Easy Connect sur le client car ces connexions ne disposent pas de fonctions de haute disponibilité.

Utilisez le code TNS suivant pour tous les clients Oracle de version 12.2 ou supérieure :

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*)))

Utilisez le code suivant pour les connexions JDBC utilisant le pilote Oracle version 12.1 ou antérieure :

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*)))

Utilisation de la fonction Fast Application Notification (FAN)

La fonction FAN envoie une notification immédiate à une application en cas de coupure ou de reprise du service. Sans la fonction FAN, les applications peuvent dépendre entièrement du délai d'expiration TCP/IP suite à des pannes matérielles et réseau, et omettre le rééquilibrage à la reprise des ressources. Tous les pools Oracle et tous les serveurs d'applications Oracle utilisent la fonction FAN. Les serveurs d'applications Java tiers peuvent utiliser UCP pour activer la fonction FAN.

Aucune modification d'application n'est requise pour utiliser la fonction FAN. Il s'agit uniquement de modifications de configuration.

Pour assurer la continuité du service pendant la maintenance planifiée, utilisez la fonction FAN avec les éléments suivants, au choix :

Pour assurer la continuité du service en cas de coupure non planifiée, utilisez la fonction FAN avec les éléments suivants, au choix :

Couverture FAN

Les événements FAN sont intégrés aux éléments suivants :

Activation de la fonction FAN dans le client

Utilisez l'alias TNS indiqué dans Configuration de la chaîne de connexion pour la haute disponibilité. Cette chaîne de connexion est utilisée pour configurer automatiquement l'abonnement ONS (Oracle Notification Service) sur client pour la réception des événements FAN lors de l'utilisation d'un pilote client Oracle Database 12c ou version ultérieure. ONS fournit un chemin de communication sécurisé entre le niveau base de données et le niveau client permettant au client d'être informé de la disponibilité du service (arrêt ou démarrage des composants), ainsi que des conseils sur l'équilibrage de charge lors de l'exécution afin d'améliorer le placement du travail pendant le fonctionnement normal.

Selon le client, activez la fonction FAN dans les propriétés de configuration d'application comme suit :

Les services de base de données prédéfinis offrent des connexions TCPS qui utilisent l'authentification basée sur un portefeuille TLS. Selon le type d'application (JDBC ou Oracle Call Interface), la configuration du portefeuille doit respecter des règles particulières, tel que décrit dans Configuration de clients pour la fonction FAN, y compris de portefeuilles facultatifs.

Utilisation des pratiques recommandées pour autoriser la purge

Les meilleures pratiques d'utilisation des applications consistent à extraire les connexions au moment où elles sont nécessaires, puis de les réinsérer dans le pool une fois l'action en cours terminée. Ce fonctionnement est important pour obtenir de bonnes performances, pour le rééquilibrage du travail lors de l'exécution et pour purger le travail pendant les fenêtres de maintenance.

Oracle recommande d'utiliser un pool de connexions Oracle tenant compte de la fonction FAN pour masquer la maintenance planifiée. L'impact est nul sur les utilisateurs lorsque l'application emploie un pool Oracle avec la fonction FAN et renvoie les connexions au pool entre les demandes. Vous n'avez pas besoin de modifier l'application pour utiliser la fonction FAN. Lorsqu'un pool de connexions Oracle reçoit l'événement FAN pour le temps d'inactivité planifié, il marque toutes les connexions de l'instance comme étant à purger. Immédiatement, les connexions réinsérées sont fermées afin de ne pas être réutilisées. A mesure que les connexions en cours d'utilisation sont renvoyées au pool, elles sont fermées. Cela permet de fermer progressivement toutes les connexions au fil du temps.

Si vous utilisez un serveur d'applications tiers basé sur Java, la méthode la plus efficace pour réaliser la purge et le basculement consiste à remplacer la source de données en pool par UCP. De nombreux serveurs d'applications prennent en charge cette approche, notamment Oracle WebLogic Server, IBM WebSphere, IBM Liberty, Apache Tomcat, Red Hat WildFly (JBoss), Spring, Hibernate, etc. Les livres blancs Oracle et d'autres fournisseurs, tels qu'IBM, décrivent l'utilisation d'UCP avec ces serveurs d'applications. L'utilisation d'UCP en tant que source de données permet d'employer des fonctionnalités d'UCP telles que Fast Connection Failover, Runtime Load Balancing, la continuité d'application et la continuité d'application transparente avec une certification complète.

Activation de la continuité d'application transparente (TAC) ou de la continuité d'application (AC)

La continuité TAC assure le suivi et l'enregistrement transparents des sessions et de l'état transactionnel afin qu'une session de base de données puisse être récupérée suite à des coupures récupérables. Par défaut, la continuité TAC est activée pour les deux paires de services de base de données prédéfinis assurant le traitement des transactions.

La continuité AC est personnalisable, ce qui permet de choisir de réexécuter les effets secondaires ou d'ajouter des callbacks complexes lors du basculement, ce que la continuité TAC ne permet pas. Recourez à la continuité AC si vous utilisez des pilotes Oracle 12c (JDBC Thin ou Oracle Call Interface), si vous souhaitez une personnalisation avec effets secondaires ou callbacks, ou si vous disposez d'une application avec un état tel que les tables temporaires de durée de session et qui ne procède pas au nettoyage entre les demandes.

Etapes d'utilisation de l'application de continuité transparente

Etapes d'utilisation de la continuité d'application

Contenu connexe