Configuration de la continuité d'application sur Autonomous Database
Afin de configurer la continuité d'application, vous devez l'activer 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 purge. De plus, 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é d'application
UtilisezDBMS_APP_CONT_ADMIN
pour activer la continuité d'application ou la continuité d'application transparente : - 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 Fast Application Notification (FAN) liés aux coupures non planifiées sont dirigés vers le gestionnaire de connexions (CMAN) et aucune étape de configuration de l'application client n'est requise pour utiliser la fonction FAN. - Configuration de la chaîne de connexion pour la haute disponibilité
Pour assurer la haute disponibilité, Oracle vous recommande de définir certains paramètres de chaîne de connexion lors de la connexion à Oracle Autonomous Database. - Configuration d'options client spécifiques 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é d'application 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é d'application
Utilisez DBMS_APP_CONT_ADMIN
pour activer la continuité d'application ou la continuité d'application transparente :
-
Continuité d'application (AC) : définissez cette option de basculement à l'aide de la procédure
DBMS_APP_CONT_ADMIN.ENABLE_AC
. La procédureENABLE_AC
comprend trois paramètres :SERVICE NAME
, qui correspond au nom de service à modifier,FAILOVER_RESTORE
défini surLEVEL1
pour sélectionner la continuité d'application etREPLAY_INITIATION_TIMEOUT
, qui correspond au délai d'expiration de la réexécution et 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, afin d'activer la continuité d'application pour le service
TPURGENT
, procédez comme suit :execute DBMS_APP_CONT_ADMIN.ENABLE_AC( 'databaseid_tpurgent.adb.oraclecloud.com', 'LEVEL1', 600);
-
Continuité d'application transparente : définissez cette option de basculement à l'aide de la procédure
DBMS_APP_CONT_ADMIN.ENABLE_TAC
. La procédureENABLE_TAC
comprend trois paramètres :SERVICE NAME
, le nom de service à modifier,FAILOVER_RESTORE
défini surAUTO
pour sélectionner la continuité d'application transparente etREPLAY_INITIATION_TIMEOUT
, le délai d'expiration de la 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, afin d'activer la continuité d'application transparente pour le service
TP
avec un délai d'expiration de réexécution de 20 minutes, procédez comme suit :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 du 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é d'application
En fonction du type de charge globale, utilisez une commande semblable à la suivante pour effectuer une action SELECT
à partir de DBA_SERVICES
sur la base de données et identifiez le service dans lequel activer la continuité d'application :
-
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
-
Transaction Processing ou JSON Database
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
La valeur FAILOVER_TYPE
du service high
est No et indique que la continuité d'application est désactivée.
Vérification de l'activation de la continuité d'application pour un service
En fonction du type de charge globale, consultez la sortie de la requête sur DBA_SERVICES
pour vérifier que la continuité d'application 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
-
Transaction Processing ou JSON Database
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
du service high
est désormais AUTO
, ce qui indique que la continuité d'application transparente est activée. La valeur FAILOVER_TYPE
du service tpurgent
est désormais TRANSACTION
, ce qui indique que la continuité d'application 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 Fast Application Notification (FAN) liés aux coupures non planifiées sont dirigés vers le gestionnaire de connexions (CMAN) et aucune étape de configuration de l'application client n'est requise pour utiliser la fonction FAN.
La fonction FAN est gérée automatiquement par le pilote client et par le gestionnaire de connexions (CMAN) Autonomous Database :
- Pour les événements de maintenance planifiée, la fonction FAN est envoyée dans la bande, directement aux pilotes. Pour cela, les applications doivent utiliser des pools Oracle ou la continuité d'application transparente pour les limites de demande, ou utiliser les tests de connexion.
- Les pilotes client Oracle et Oracle Database effectuent des purges lors des tests de connexion et lorsque les limites de demande sont atteintes.
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 assurer la haute disponibilité, Oracle vous 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 lors de la connexion à Oracle Autonomous Database. Les chaînes de connexion imbriqué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 devez 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 configuré de manière à ce qu'il soit supérieur à la valeur
CONNECT_TIMEOUT
dans la chaîne de connexion. -
N'utilisez pas la résolution de noms Easy Connect sur le client car ces connexions ne disposent pas de fonctions de haute disponibilité.
Reportez-vous à Download Client Credentials (Wallets) pour plus d'informations sur le fichier tnsnames.ora
.
Rubrique parent : Configuration de la continuité d'application sur Autonomous Database
Configuration d'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é d'application lors de la connexion à Autonomous Database.
- Configuration du pilote léger JDBC
Affiche les détails d'utilisation de la continuité d'application avec Autonomous Database pour un client utilisant le pilote léger JDBC. - Configuration du pilote Oracle Call Interface
Affiche les détails d'utilisation de la continuité d'application avec Autonomous Database pour un client utilisant le pilote Oracle Call Interface. - Configuration du pilote de fournisseur non géré ODP.NET
Affiche les détails d'utilisation de la continuité d'application avec Autonomous Database pour 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é d'application avec Autonomous Database pour un client utilisant le pilote JDBC Thin.
Si votre application utilise le pilote JDBC Thin, procédez comme suit :
-
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 la mémoire est libérée à 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
. 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. 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.
-
Lors de l'utilisation d'Universal Connection Pool (UCP), désactivez Fast Connection Failover. Exemple :
PoolDataSource.setFastConnectionFailoverEnabled(false)
Rubrique parent : Configuration d'options client propres au pilote
Configuration du pilote Oracle Call Interface
Affiche les détails d'utilisation de la continuité d'application avec Autonomous Database pour un client utilisant le pilote Oracle Call Interface (OCI).
Si l'application client utilise le pilote Oracle Call Interface, suivez la pratique recommandée suivante :
-
Remplacez
OCIStmtPrepare
parOCIStmtPrepare2
.OCIStmtPrepare()
est en phase d'abandon depuis la version 12.2. Toutes les applications doivent utiliserOCIStmtPrepare2()
. La continuité d'application transparente et la continuité d'application autorisentOCIStmtPrepare
, mais ne réexécutent pas cette instruction.
Ne configurez pas les 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 d'options client propres au pilote
Configuration du pilote de fournisseur non géré ODP.NET
Affiche les détails d'utilisation de la continuité d'application avec Autonomous Database pour 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é d'application 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 les serveurs ONS dans oraaccess.xml
:
<ons>
<servers>
<!—Do not enter any values -->
</servers>
</ons>
Rubrique parent : Configuration d'options client propres au pilote