Configuration de la continuité d'application sur Autonomous Database
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 le délai d'expiration de la purge. En outre, vous devez définir plusieurs paramètres de chaîne de connexion qui permettent la haute disponibilité.
- Configuration de votre service pour activer la continuité des applications
UtilisezDBMS_APP_CONT_ADMIN
pour activer la continuité des applications ou la continuité transparente des applications : - Utilisation de la fonction FAN (Fast Application Notification)
Lors de la connexion à Autonomous Database, la base de données Oracle configure automatiquement la fonction FAN. Pour les déploiements d'application avec Autonomous 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 la fonction FAN. - Configuration de 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 Database. - Configuration des options client propres au pilote
En fonction de votre client et de votre pilote, vous devez vous assurer que le client est correctement configuré pour utiliser la continuité des applications lors de la connexion à Autonomous Database
Rubrique parent : Utilisation de la continuité d'application sur Autonomous Database
Configuration de 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édureENABLE_AC
prend trois paramètres :SERVICE NAME
est le nom de service à modifier,FAILOVER_RESTORE
, défini surLEVEL1
pour sélectionner Application Continuity(AC) etREPLAY_INITIATION_TIMEOUT
, le délai d'expiration de réexécution qui indique le nombre de secondes après la soumission d'une demande pour autoriser 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);
-
Continuité transparente des applications (TAC) : définissez cette option de basculement à l'aide de la procédure
DBMS_APP_CONT_ADMIN.ENABLE_TAC
. La procédureENABLE_TAC
prend trois paramètres :SERVICE NAME
est le nom de service à modifier,FAILOVER_RESTORE
, défini surAUTO
pour sélectionner Transparent Application Continuity (TAC) etREPLAY_INITIATION_TIMEOUT
est le délai d'expiration de réexécution qui indique le nombre de secondes après la soumission d'une demande pour autoriser la réexécution de cette demande.Par exemple, en tant qu'utilisateur ADMIN, pour activer la continuité d'application transparente pour le service
TP
avec le délai d'expiration de réexécution défini sur 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
, procédez comme suit :execute DBMS_APP_CONT_ADMIN.DISABLE_FAILOVER( 'databaseid_tp.adb.oraclecloud.com');
Recherche du paramètre de nom de service pour la continuité des applications
Selon le type de charge globale, utilisez une commande semblable à la suivante pour SELECT
à partir de DBA_SERVICES
sur la base de données et identifiez le service dans lequel activer la continuité des applications :
-
Entrepôt 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 aucune valeur et indique que la continuité des applications est désactivée.
Vérifier que la continuité d'application est activée pour un service
Selon le type de charge globale, vérifiez la sortie de l'interrogation sur DBA_SERVICES
pour vérifier que la continuité des applications est activée.
-
Entrepôt 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 désormais AUTO
, ce qui indique que la continuité d'application transparente (TAC) est activée et que la valeur FAILOVER_TYPE
pour le service tpurgent
est maintenant TRANSACTION
, ce qui indique que la continuité d'application (AC) est activée.
Rubrique parent : Configuration de la continuité d'application sur Autonomous Database
Utilisation de la fonction Fast Application Notification (FAN)
Lors de la connexion à Autonomous Database, la base de données Oracle configure automatiquement la fonction FAN. Pour les déploiements d'application avec Autonomous 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 la fonction FAN.
La fonction FAN est automatiquement gérée pour vous par le pilote client et par le gestionnaire de connexions (CMAN) Autonomous Database :
- Pour les événements de maintenance planifiés, la fonction FAN est envoyée en bande, directement aux pilotes. Pour ce faire, les applications doivent utiliser les pools Oracle ou TAC pour les limites de demande ou les tests de connexion.
- Les pilotes client Oracle Database et Oracle sont vidés des tests de connexion et des limites de demande.
Pour plus d'informations, reportez-vous à Configuration client pour la disponibilité continue sur Autonomous Database.
Rubrique parent : Configuration de la continuité d'application sur Autonomous Database
Configuration de 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 Database.
Définissez les paramètres CONNECT_TIMEOUT
, RETRY_DELAY
, RETRY_COUNT
et TRANSPORT_CONNECT_TIMEOUT
dans la chaîne de connexion lorsque vous vous connectez à Oracle Autonomous 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, selon les besoins de vos applications, vous devrez peut-être modifier les valeurs préconfigurées d'une chaîne de connexion.
Utilisez le code TNS suivant pour tous les clients Oracle de version 12.2 ou supé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 le code suivant pour les connexions JDBC utilisant le 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)))
Remarques concernant les chaînes de connexion :
-
Pour les clients JDBC et ODP, le temps d'attente de connexion au pool doit être configuré pour être plus long que
CONNECT_TIMEOUT
dans la chaîne de connexion. -
N'utilisez pas de résolution de noms Easy Connect sur le client car ces connexions n'ont pas de fonctions de haute disponibilité.
Pour plus d'informations sur le fichier tnsnames.ora
, reportez-vous à Téléchargement des informations d'identification client (portefeuilles).
Rubrique parent : Configuration de la continuité d'application sur Autonomous Database
Configuration des options client propres au pilote
En fonction de votre client et de votre pilote, vous devez vous assurer que le client est correctement configuré pour utiliser la continuité des applications lors de la connexion à Autonomous Database.
- Configuration du pilote léger JDBC
Affiche les détails de l'utilisation de la continuité des applications avec Autonomous Database avec un client utilisant le pilote léger JDBC. - Configuration du pilote Oracle Call Interface (OCI)
Affiche les détails permettant d'utiliser la continuité des applications avec Autonomous Database avec un client à l'aide du pilote Oracle Call Interface (OCI). - Configuration du pilote de fournisseur non géré ODP.NET
Affiche les détails de l'utilisation de la continuité des applications avec Autonomous Database avec un client utilisant le pilote de fournisseur non géré ODP.NET.
Rubrique parent : Configuration de la continuité d'application sur Autonomous Database
Configuration du pilote JDBC Thin
Affiche les détails d'utilisation de la continuité des applications avec Autonomous Database avec un client utilisant le pilote léger JDBC.
Si votre application utilise le pilote léger JDBC, suivez les exercices recommandés suivants :
-
Utilisation du cache d'instructions JDBC pour la couverture et les performances.
Pour une couverture et des performances optimales, utilisez le cache d'instructions du pilote JDBC à la place du cache d'instructions du serveur d'applications. Cela permet au pilote de savoir que les instructions sont fermées et que l'espace mémoire doit être libéré à la fin des demandes.
Pour utiliser le cache d'instructions JDBC, employez la propriété de connexion
oracle.jdbc.implicitStatementCacheSize
(OracleConnection.CONNECTION_PROPERTY_IMPLICIT_STATEMENT_CACHE_SIZE)
. Le cache d'instructions s'applique par connexion. La valeur de la taille du cache correspond au nombre d'élémentsopen_cursors
. Par exemple :oracle.jdbc.implicitStatementCacheSize=nnn
, oùnnn
est généralement compris entre 10 et 100, et est égal au nombre de curseurs ouverts gérés par l'application. -
Réglage du processus Garbage Collector.
Pour de nombreuses applications, le réglage par défaut du processus Garbage Collector est suffisant. Pour les applications qui renvoient et conservent de grandes quantités de données, vous pouvez utiliser des valeurs plus élevées, telles que 2 Go ou plus. Par exemple :
java -Xms3072m -Xmx3072m
Il est recommandé de définir l'allocation de mémoire pour la taille initiale de portion de mémoire Java (ms) et la taille maximale de portion de mémoire (mx) sur la même valeur. Cela empêche l'utilisation des ressources système lors de la croissance et de la réduction de la portion de mémoire.
-
Lorsque vous utilisez le pool de connexions universel (UCP), désactivez le basculement de connexion rapide. Par exemple :
PoolDataSource.setFastConnectionFailoverEnabled(false)
Rubrique parent : Configuration des options client propres au pilote
Configuration du pilote Oracle Call Interface (OCI)
Affiche les détails d'utilisation de la continuité des applications avec Autonomous Database avec un client utilisant le pilote Oracle Call Interface (OCI).
Si l'application client utilise le pilote Oracle Call Interface (OCI), suivez l'exercice recommandé suivant :
-
Remplacez
OCIStmtPrepare
parOCIStmtPrepare2
.OCIStmtPrepare()
est en phase d'abandon depuis la version 12.2. Toutes les applications doivent utiliserOCIStmtPrepare2()
. La continuité d'application transparente (TAC) et la continuité d'application (AC) autorisentOCIStmtPrepare
mais ne réexécutent pas cette instruction.
Ne configurez pas de serveurs ONS dans oraaccess.xml
:
<ons>
<servers>
<!—Do not enter any values -->
</servers>
</ons>
En outre, pour Autonomous Database Serverless, ne configurez pas la section <fan> :
<fan>
<!-- only possible values are "trace" or "error" -->
<subscription_failure_action>
</subscription_failure_action>
</fan>
Rubrique parent : Configuration des options client propres au pilote
Configuration du pilote de fournisseur non géré ODP.NET
Affiche les détails d'utilisation de la continuité des applications avec Autonomous Database avec un client à l'aide du pilote de fournisseur non géré ODP.NET.
Le pilote de fournisseur non géré ODP.NET utilise automatiquement la continuité des applications lorsque celle-ci est activée sur le service de base de données que votre application utilise pour se connecter à Autonomous Database.
Lors de la connexion d'une application ODP.NET à votre instance Autonomous Database Serverless, ne configurez pas de serveurs ONS dans oraaccess.xml
:
<ons>
<servers>
<!—Do not enter any values -->
</servers>
</ons>
Rubrique parent : Configuration des options client propres au pilote