Code pour la disponibilité continue

Vos applications bénéficient d'une disponibilité continue lorsque la maintenance planifiée, les interruptions non planifiées et les déséquilibres de charge de la base de données sont masqués pour l'application. Une combinaison des meilleures pratiques d'application, d'une configuration simple et d'Oracle Autonomous AI Database garantit la disponibilité continue de vos applications.

La meilleure approche pour masquer les activités de maintenance planifiées consiste à drainer de manière transparente les tâches de chaque emplacement de charge de travail de base de données avant la fenêtre de maintenance de cet emplacement. Les réserves de connexions et les niveaux intermédiaires d'Oracle, y compris le serveur WebLogic, Oracle Universal Connection Pool (UCP), le groupe de sessions OCI et le fournisseur non géré ODP.NET, prennent en charge l'avis rapide des applications. Par conséquent, ils sont avisés avant que les services de base de données ne soient programmés pour être déplacés, afin de permettre un drainage transparent des tâches avant la maintenance. L'avis rapide des applications déclenche automatiquement la fermeture des connexions inactives et l'ouverture de nouvelles connexions dans le nouvel emplacement des services. Un délai peut être configuré pour permettre aux tâches actives de se terminer dans l'emplacement sur le point d'être arrêté. Les principaux niveaux intermédiaires JDBC de tierce partie, tels qu'IBM WebSphere, présentent le même comportement lorsqu'ils sont configurés avec UCP. Pour les applications basées sur JDBC qui ne peuvent pas utiliser UCP, Oracle fournit des solutions tirant parti des pilotes Oracle et des tests de connexion.

Pour masquer les pannes non planifiées résultant d'un échec de composant ou de communication, Oracle fournit les fonctions suivantes :

La continuité transparente des applications ou la continuité des applications s'exécute également pendant la maintenance planifiée pour les sessions qui n'effectuent pas de drainage (terminent l'opération de base de données courante) pendant l'intervalle de drainage alloué.

Liste de vérification de la configuration de l'application

La disponibilité continue de votre application repose sur les principes suivants :

Conseil : Voir Disponibilité continue des applications dans le document technique ATP-Direct pour en savoir plus sur les meilleures pratiques de mise en œuvre de la disponibilité continue pour les applications utilisant une base de données IA autonome.

Utiliser les services de base de données pour la connexion

Les services de base de données offrent la transparence pour l'infrastructure sous-jacente : l'avis rapide des applications, les données de connexion, la continuité transparente des applications, la continuité des applications, la permutation, les groupes de consommateurs et de nombreuses autres fonctionnalités et opérations sont fondées sur l'utilisation des services.

Une base de données d'IA autonome sur une infrastructure Exadata dédiée offre plusieurs paires de services de base de données prédéfinis à choisir, comme décrit dans Noms de service de base de données prédéfinis pour les bases de données d'IA autonomes. Toutes fournissent la fonction d'avis rapide des applications et le drainage, et la continuité transparente des applications est activée par défaut pour les deux paires consacrées au traitement des transactions. Une API est disponible pour modifier les paramètres de continuité transparente des applications ou de continuité des applications pour tous les services prédéfinis (voir Activer les attributs de service pour le basculement).

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

Oracle recommande la configuration de chaîne de connexion indiquée ci-dessous lors de la connexion à Oracle Autonomous AI Database. Les chaînes de connexion intégrées dans le fichier tnsnames.ora fourni par Oracle sont configurées de cette façon. N'utilisez pas Easy Connect Naming sur le client car ces connexions n'offrent pas la fonctionnalité de haute disponibilité.

Utilisez ce nom de service TNS pour tous les clients Oracle version 12.2 ou ulté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 ce qui suit pour les connexions JDBC à l'aide du 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*)))

Utiliser l'avis rapide des applications

L'avis rapide des applications fournit un avis immédiat à une application en cas de panne ou de reprise de service. Sans cette fonction, les applications peuvent rester en situation de temporisation TCP/IP après des défaillances matérielles et de réseau, et omettre d'effectuer un rééquilibrage lorsque les ressources reprennent. Tous les groupes Oracle et les serveurs d'applications Oracle utilisent l'avis rapide des applications. Les serveurs d'applications JAVA de tierce partie utiliser UCP pour activer l'avis rapide des applications.

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

Pour un service continu pendant la maintenance planifiée, utilisez l'avis rapide des applications avec :

Pour un service continu pendant les pannes non planifiées, utilisez l'avis rapide des applications avec :

Couverture de l'avis rapide des applications

Les événements d'avis rapide des applications sont intégrés avec les éléments suivants :

Pour activer l'avis rapide des applications sur le client

Utilisez l'alias TNS indiqué dans Configurer la chaîne de connexion pour la haute disponibilité. Cette chaîne de connexion est utilisée pour configurer automatiquement l'abonnement au service d'avis Oracle sur le client pour la réception d'avis rapide des applications lors de l'utilisation d'un pilote client Oracle Database 12c ou ultérieur. Le service d'avis fournit un chemin de communication sécurisé entre le niveau de la base de données et le niveau du client, ce qui permet au client d'être informé de la disponibilité des services (arrêt ou démarrage des composants) et de bénéficier de conseils d'équilibrage de la charge lors de l'exécution pour une répartition optimale des tâches pendant le fonctionnement normal.

En fonction du client, activez l'avis rapide des applications dans les propriétés de configuration de l'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 interface d'appel Oracle), la configuration du portefeuille doit respecter des règles particulières, comme décrit dans la section Configurer les clients pour l'avis rapide des applications, y compris les portefeuilles facultatifs.

Utiliser les pratiques recommandées pour activer le drainage

La meilleure pratique pour l'utilisation des applications consiste à extraire les connexions pendant le temps nécessaire, puis à les replacer dans la réserve lorsque l'action courante est terminée. Cette approche permet d'obtenir une performance optimale, pour le rééquilibrage des tâches lors de l'exécution et pour le drainage des tâches pendant les fenêtres de maintenance.

Oracle recommande d'utiliser une réserve de connexions Oracle compatible avec l'avis rapide des applications pour masquer la maintenance planifiée. Les utilisateurs ne subissent aucun impact lorsque votre application utilise une réserve Oracle avec l'avis rapide des applications et qu'elle renvoie les connexions dans la réserve entre les demandes. Il n'est pas nécessaire d'apporter des modifications à l'application pour utiliser la fonction d'avis rapide des applications. Lorsqu'une réserve de connexions Oracle reçoit l'événement correspondant à un temps d'arrêt planifié, elle marque toutes les connexions de l'instance comme devant être drainées. Immédiatement, les connexions archivées sont fermées de sorte qu'elles ne soient pas réutilisées. Comme les connexions en cours d'utilisation sont renvoyées dans la réserve, elles sont fermées. Cela permet de fermer toutes les connexions correctement de manière progressive.

Si vous utilisez un serveur d'applications de tierce partie basé sur Java, la méthode la plus efficace pour effectuer le drainage et le basculement consiste à remplacer la source de données avec réserve de connexions 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 documents techniques d'Oracle et d'autres fournisseurs, tels qu'IBM, décrivent comment utiliser UCP avec ces serveurs d'applications. L'utilisation d'UCP comme source de données permet d'utiliser des fonctions UCP telles que Fast Connection Failover, l'équilibrage de charge lors de l'exécution, la continuité des applications et la continuité transparente des applications avec une certification complète.

Activer la continuité transparente des applications ou la continuité des applications

La continuité transparente des applications assure le suivi et l'enregistrement de l'état des sessions et des transactions afin qu'une session de base de données puisse être récupérée après une panne récupérable. Elle est activée par défaut pour les deux paires de services de base de données prédéfinis consacrés au traitement des transactions.

La continuité des applications est personnalisable, ce qui vous permet de réexécuter les effets secondaires ou d'ajouter des rappels complexes lors du basculement non pris en charge par la continuité transparente. Utilisez la continuité des applications si vous utilisez des pilotes Oracle 12c (pilote léger JDBC ou interface d'appel Oracle), si vous souhaitez effectuer une personnalisation avec des effets secondaires ou des rappels, ou si votre application utilise des états de session (tables temporaires de durée de session) et ne nettoie pas entre les demandes.

Étapes d'utilisation de la continuité transparente des applications

Étapes d'utilisation de la continuité des applications

Contenu connexe