Configurer la continuité des applications dans une base de données d'intelligence artificielle autonome

Pour configurer la continuité des applications, vous devez activer la continuité des applications pour le service de base de données utilisé par votre application et configurer le type de basculement et la temporisation de drainage. En outre, vous devez définir plusieurs paramètres de chaîne de connexion qui activent la haute disponibilité.

Configurer votre service pour activer la continuité des applications

Utilisez DBMS_APP_CONT_ADMIN pour activer la continuité des applications ou la continuité transparente des applications :

  • Continuité de l'application : Définissez cette option de basculement à l'aide de la procédure DBMS_APP_CONT_ADMIN.ENABLE_AC. La procédure ENABLE_AC prend trois paramètres : SERVICE NAME est le nom du service à modifier, FAILOVER_RESTORE, réglé à LEVEL1 pour sélectionner la continuité des applications (AC), et REPLAY_INITIATION_TIMEOUT, est la temporisation de réexécution qui spécifie le nombre de secondes après la soumission d'une demande pour permettre la réexécution de cette demande.

    Par exemple, en tant qu'utilisateur ADMIN, pour activer la continuité des applications pour le service TPURGENT :

    execute DBMS_APP_CONT_ADMIN.ENABLE_AC(
            'databaseid_tpurgent.adb.oraclecloud.com', 'LEVEL1', 600);
  • Transparent Application Continuity (TAC) : Définissez cette option de basculement à l'aide de la procédure DBMS_APP_CONT_ADMIN.ENABLE_TAC. La procédure ENABLE_TAC prend trois paramètres : SERVICE NAME est le nom du service à modifier, FAILOVER_RESTORE, réglé à AUTO pour sélectionner TAC (Transparent Application Continuity) et REPLAY_INITIATION_TIMEOUT est la temporisation de réexécution qui spécifie le nombre de secondes après la soumission d'une demande pour permettre la réexécution de cette demande.

    Par exemple, en tant qu'utilisateur ADMIN, pour activer Transparent Application Continuity pour le service TP avec la temporisation de réexécution réglée à 20 minutes :

    execute DBMS_APP_CONT_ADMIN.ENABLE_TAC(
            'databaseid_tp.adb.oraclecloud.com', 'AUTO', 1200);
    
  • Désactivé : Désactivez le basculement à l'aide de la procédure DBMS_APP_CONT_ADMIN.DISABLE_FAILOVER().

    Par exemple, en tant qu'utilisateur ADMIN, pour désactiver le basculement pour le service TP :

    execute DBMS_APP_CONT_ADMIN.DISABLE_FAILOVER(
            'databaseid_tp.adb.oraclecloud.com');
    

Rechercher le paramètre de nom de service pour la continuité des applications

Selon votre type de charge de travail, utilisez une commande similaire à la suivante pour SELECT à partir de DBA_SERVICES sur votre base de données et identifiez le service pour lequel vous voulez activer la continuité des applications :

  • Entrepôt avec lac de données

    SELECT name, failover_type FROM DBA_SERVICES;
    NAME                                                    FAILOVER_TYPE
    ------------------------------------------------------- -------------
    nvt21_adb1_low.adb.oraclecloud.com                      
    nvt21_adb1_high.adb.oraclecloud.com                     
    nvt21_adb1_medium.adb.oraclecloud.com                   
  • Traitement des transactions ou Base de données JSON

    SELECT name, failover_type FROM DBA_SERVICES;
    NAME                                                    FAILOVER_TYPE
    ------------------------------------------------------- ----------------
    nvt21_adb1_tp.adb.oraclecloud.com                        
    nvt21_adb1_tpurgent.adb.oraclecloud.com                 
    nvt21_adb1_low.adb.oraclecloud.com                       
    nvt21_adb1_high.adb.oraclecloud.com                      
    nvt21_adb1_medium.adb.oraclecloud.com                   

Notez que FAILOVER_TYPE pour le service high n'a pas de valeur et indique que la continuité des applications est désactivée.

Vérifier que la continuité des applications est activée pour un service

Selon votre type de charge de travail, vérifiez la sortie de l'interrogation sur DBA_SERVICES pour vérifier que la continuité des applications est activée.

  • Entrepôt avec lac de données

    SELECT name, failover_type FROM DBA_SERVICES;
    NAME                                                    FAILOVER_TYPE
    ------------------------------------------------------- --------------
    nvt21_adb1_low.adb.oraclecloud.com                      
    nvt21_adb1_high.adb.oraclecloud.com                     AUTO
    nvt21_adb1_medium.adb.oraclecloud.com                   
  • Traitement des transactions ou Base de données JSON

    SELECT name, failover_type FROM DBA_SERVICES;
    NAME                                                    FAILOVER_TYPE
    ------------------------------------------------------- --------------
    nvt21_adb1_tp.adb.oraclecloud.com                       
    nvt21_adb1_tpurgent.adb.oraclecloud.com                 TRANSACTION
    nvt21_adb1_low.adb.oraclecloud.com                       
    nvt21_adb1_high.adb.oraclecloud.com                     AUTO
    nvt21_adb1_medium.adb.oraclecloud.com                   

La valeur FAILOVER_TYPE pour le service high est maintenant AUTO, ce qui indique que Transparent Application Continuity (TAC) est activé et que la valeur FAILOVER_TYPE pour le service tpurgent est maintenant TRANSACTION, ce qui indique que Application Continuity (AC) est activé.

Utiliser l'avis rapide des applications

Lors de la connexion à Autonomous AI Database, la base de données Oracle configure automatiquement l'avis rapide des applications. Pour les déploiements d'application avec Autonomous AI Database, les événements FAN (Fast Application Notification) pour les interruptions non planifiées sont dirigés vers le gestionnaire de connexions (CMAN) et aucune étape de configuration d'application client n'est requise pour utiliser FAN.

La fonction FAN est gérée automatiquement par le pilote client et par le gestionnaire de connexions de base de données d'intelligence artificielle autonome (CMAN) :

  • Pour les événements de maintenance planifiés, l'avis rapide des applications est envoyé en bande, directement aux pilotes. Cela nécessite que les applications utilisent des pools Oracle ou TAC pour les limites des demandes ou utilisent des tests de connexion.
  • Les pilotes client Oracle Database et Oracle drainent les tests de connexion et les limites de demande.

Pour plus d'informations, voir Configuration du client pour la disponibilité continue dans Autonomous AI Database.

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

Pour maintenir la haute disponibilité, Oracle recommande de définir certains paramètres de chaîne de connexion lors de la connexion à Oracle Autonomous AI Database.

Définissez les paramètres CONNECT_TIMEOUT, RETRY_DELAY, RETRY_COUNT et TRANSPORT_CONNECT_TIMEOUT dans la chaîne de connexion 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 préconfigurées avec les valeurs appropriées pour la plupart des applications. Dans certains cas, en fonction des besoins de vos applications, vous devrez peut-être modifier les valeurs préconfigurées pour une chaîne de connexion.

Utilisez ce nom de service TNS pour tous les clients Oracle version 12.2 ou ultérieure :

alias =
(DESCRIPTION =
(CONNECT_TIMEOUT= 90)(RETRY_COUNT=50)
(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=50)
(RETRY_DELAY=3)
(ADDRESS_LIST =  
   (LOAD_BALANCE=on)  
   (ADDRESS = (PROTOCOL = TCP)(HOST=scan-host)(PORT=1521)))
 (CONNECT_DATA=(SERVICE_NAME = service-name)))

Notes pour les chaînes de connexion :

  • Pour les clients JDBC et ODP, le temps d'attente de connexion à la réserve doit être configuré pour être plus long que CONNECT_TIMEOUT dans la chaîne de connexion.

  • N'utilisez pas Easy Connect Naming sur le client car ces connexions n'ont pas la fonctionnalité de haute disponibilité.

Voir Télécharger les données d'identification de client (portefeuilles) pour plus d'informations sur le fichier tnsnames.ora.

Configurer les options client propres au pilote

Selon votre client et votre pilote, vous devez vous assurer que le client est correctement configuré pour utiliser la continuité des applications lors de la connexion à Autonomous AI Database

Configurer le pilote léger JDBC

Affiche les détails permettant d'utiliser la continuité des applications avec la base de données autonome avec un client utilisant le pilote léger JDBC.

Si votre application utilise le pilote léger JDBC, procédez comme suit :

  1. Utiliser le cache d'énoncés JDBC pour la couverture et la performance.

    Pour optimiser la couverture et la performance, utilisez le cache d'énoncés du pilote JDBC à la place du cache d'énoncés du serveur d'applications. Cela permet au pilote de savoir que les énoncés sont fermés et à la mémoire d'être libérée à la fin des demandes.

    Pour utiliser le cache d'énoncés JDBC, utilisez la propriété de connexion oracle.jdbc.implicitStatementCacheSize (OracleConnection.CONNECTION_PROPERTY_IMPLICIT_STATEMENT_CACHE_SIZE). Le cache d'énoncés s'applique à une connexion. La taille du cache correspond à la valeur d'open_cursors. Exemple :

    oracle.jdbc.implicitStatementCacheSize=nnnnnn est généralement compris entre 10 et 100 et égal au nombre de curseurs ouverts que votre application tient à jour.

  2. Régler l'outil de récupération de mémoire.

    Pour de nombreuses applications, le réglage par défaut de l'outil de récupération de mémoire est suffisant. Pour les applications qui retournent et stockent de grandes quantités de données, vous pouvez utiliser des valeurs plus élevées, par exemple 2 Go ou plus. Exemple :

    java -Xms3072m -Xmx3072m 

    Il est recommandé de régler l'allocation de mémoire pour la taille initiale (ms) et la taille maximale (mx) du tas Javas à la même valeur. Cela empêche l'augmentation de l'utilisation des ressources du système et la réduction du tas de mémoire.

  3. Lorsque vous utilisez la réserve universelle de connexions (UCP), désactivez la fonction Fast Connection Failover. Exemple :

    PoolDataSource.setFastConnectionFailoverEnabled(false)

Configurer le pilote Oracle Call Interface (OCI)

Affiche les détails permettant d'utiliser la continuité des applications avec la base de données autonome avec un client utilisant le pilote Oracle Call Interface (OCI).

Si l'application client utilise le pilote OCI (Oracle Call Interface), procédez comme suit :

  • Remplacez OCIStmtPrepare par OCIStmtPrepare2. OCIStmtPrepare() est obsolète depuis 12.2. Toutes les applications doivent utiliser OCIStmtPrepare2(). Transparent Application Continuity (TAC) et Application Continuity (AC) autorisent OCIStmtPrepare mais ne réexécutent pas cet énoncé.

Ne configurez pas les serveurs ONS dans oraaccess.xml :

<ons>
   <servers> 
   <!—Do not enter any values --> 
   </servers> 
</ons>

De plus, pour Autonomous AI Database Serverless, ne configurez pas la section <fan> :

<fan>  
<!-- only possible values are "trace" or "error" -->  
    <subscription_failure_action>
   </subscription_failure_action>  
</fan>

Configurer le pilote du fournisseur non géré ODP.NET

Affiche les détails pour utiliser la continuité des applications avec la base de données d'intelligence artificielle autonome avec un client utilisant le pilote de fournisseur non géré ODP.NET.

Le pilote de fournisseur non géré ODP.NET utilise automatiquement la continuité des applications lorsque la continuité des applications est activée sur le service de base de données que votre application utilise pour se connecter à la base de données d'intelligence artificielle autonome.

Lors de la connexion d'une application ODP.NET à votre base de données Autonomous AI Database Serverless, ne configurez pas les serveurs ONS dans oraaccess.xml :

<ons>
   <servers> 
   <!—Do not enter any values --> 
   </servers> 
</ons>