Configurer les pilotes pour la disponibilité continue
Cet article décrit comment configurer les pilotes pour la disponibilité continue.
Rubriques connexes
Configurer le pilote léger JDBC
-
Assurez-vous que tous les correctifs recommandés sont appliqués au client. Reportez-vous à la note MOS Matrice de validation du client pour la continuité des applications (ID document 2511448.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 d'être informé 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
. Par exemple :oracle.jdbc.implicitStatementCacheSize=nnn
oùnnn
est généralement compris entre 10 et 100 et égal au nombre de curseurs ouverts que votre application tient à jour. -
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. Par 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.
-
Classes concrètes JDBC
Pour les applications JDBC, Oracle ne prend pas en charge les classes concrètes
oracle.sql
obsolètes BLOB, CLOB, BFILE, OPAQUE, ARRAY, STRUCT ou ORADATA. (Voir la note MOS 1364193.1, Nouvelles interfaces JDBC.) UtilisezORAchk -acchk
sur le client pour connaître le résultat d'une application. La liste des classes concrètes restreintes pour le pilote JDBC Replay est réduite à la suivante, à partir du pilote Oracle JDBC léger version 18c et ultérieures :oracle.sql.OPAQUE
,oracle.sql.STRUCT
,oracle.sql.ANYDATA
-
Configurer la fonction Fast Connection Failover (FCF)
Cela correspond à activer l'abonnement aux événements d'avis rapide des applications.
Pour les pilotes de client version 12c et ultérieures :
- Utilisez l'URL recommandée pour auto-ONS
- Vérifiez que le fichier ons.jar (plus les fichiers JAR de portefeuille facultatifs, osdt_cert.jar, osdt_core.jar, oraclepki.jar) se trouvent dans la variable CLASSPATH
- Définissez la propriété du groupe ou du pilote fastConnectionFailoverEnabled=true
- Réserves de connexions UCP (recommandé) ou de tierce partie
- Ouvrez le port 6200 pour ONS (6200 est le port par défaut, un autre port a peut-être été choisi)
Pour les pilotes de client antérieurs à la version 12c, utilisez les adresses fournies :
- Réglez oracle.ons.nodes =XXX01:6200, XXX02:6200, XXX03:6200
Configurer le pilote de l'interface d'appel Oracle
-
Assurez-vous que tous les correctifs recommandés sont appliqués au client. Reportez-vous à la note MOS Matrice de validation du client pour la continuité des applications (ID document 251148.1).
-
Remplacez
OCIStmtPrepare
parOCIStmtPrepare2
.OCIStmtPrepare()
est obsolète depuis 12.2. Toutes les applications doivent utiliserOCIStmtPrepare2()
. La continuité transparente des applications et la continuité des applications autorisentOCIStmtPrepare
mais ne réexécutent pas cet énoncé. -
Pour utiliser la fonction d'avis rapide des applications pour les applications basées sur l'interface d'appel Oracle, procédez de la façon suivante :
- aq_ha_notifications est prédéfini pour les services
- Utilisez la chaîne de connexion recommandée pour auto-ONS
- Définissez auto_config, events et wallet_location (facultatif) dans oraaccess.xml, comme décrit dans Configurer les clients pour l'avis rapide des applications, y compris les portefeuilles facultatifs.
- Liez l'application à la bibliothèque d'unités d'exécution du SE client
- Ouvrez le port 6200 pour ONS (6200 est le port par défaut, un autre port a peut-être été choisi) Pour les pilotes de client antérieurs à la version 12c, utilisez les adresses fournies dans oraccess.xml
Configurer le pilote du fournisseur non géré ODP.NET
-
Assurez-vous que tous les correctifs recommandés sont appliqués au client. Reportez-vous à la note MOS Matrice de validation du client pour la continuité des applications (ID document 251148.1).
-
Pour utiliser la fonction d'avis rapide des applications pour les applications basées sur l'interface d'appel Oracle, procédez de la façon suivante :
- aq_ha_notifications est prédéfini pour les services
- Utilisez la chaîne de connexion recommandée pour auto-ONS
- Définissez onsConfig et wallet_location (facultatif) dans oraaccess.xml, comme décrit dans Configurer les clients pour l'avis rapide des applications, y compris les portefeuilles facultatifs.
- Ouvrez le port 6200 pour ONS (6200 est le port par défaut, un autre port a peut-être été choisi)
- Définissez l'avis rapide des applications dans la chaîne de connexion :
"user id=oracle; password=oracle; data source=HA; pooling=true; HA events=true;"
. - (Facultatif) Définissez l'équilibrage de charge lors de l'exécution, également dans la chaîne de connexion :
"user id=oracle; password=oracle; data source=HA; pooling=true; HA events=true; load balancing=true;"
.
Activer les attributs de service pour le basculement
La continuité transparente des applications est activée par défaut pour les services prédéfinis tp_tls
, tp
, tpurgent_tls
et tpurgent
. Vous n'avez rien à faire si vous utilisez l'un d'entre eux. De plus, pour ces services, la valeur DEFAULT
pour FAILOVER_RESTORE
est AUTO
.
Vous pouvez modifier le type de basculement offert par votre service à l'aide de l'ensemble DBMS_APP_CONT_ADMIN
. Utilisez cette API pour activer la continuité des applications, la continuité transparente des applications ou le basculement transparent des applications, ou pour désactiver complètement le basculement. Les nouvelles sessions utilisent le nouveau type de basculement. Seul un administrateur peut utiliser ces procédures.
Pour activer la continuité transparente des applications pour un service :
execute DBMS_APP_CONT_ADMIN.ENABLE_TAC('HIGH');
Pour activer la continuité des applications pour un service :
execute DBMS_APP_CONT_ADMIN.ENABLE_AC('TPURGENT');
Pour activer TAF SELECT pour un service :
execute DBMS_APP_CONT_ADMIN.ENABLE_TAF('LOW');
Pour activer TAF BASIC pour un service :
execute DBMS_APP_CONT_ADMIN.ENABLE_TAF('MEDIUM', 'SESSION');
Pour désactiver le basculement pour un service :
execute DBMS_APP_CONT_ADMIN.DISABLE_FAILOVER('HIGH');
Si vous souhaitez utiliser le basculement transparent des applications sans modifier les services, utilisez l'ancienne configuration côté client pour le basculement transparent des applications dans votre chaîne de connexion :
(FAILOVER_MODE=(TYPE=select)(METHOD=basic)(OVERRIDE=TRUE))
Configurer les attributs de service pour la maintenance
Lorsque la maintenance planifiée commence, les sessions à drainer sont marquées comme telles. Les sessions inactives sont libérées progressivement. Les sessions actives sont drainées lorsque les tâches exécutées dans ces sessions sont terminées. Le drainage des sessions est largement utilisé avec les réserves de connexions Oracle et les niveaux intermédiaires configurés pour l'avis rapide des applications. À partir d'Oracle Database 18c, la base de données elle-même draine les sessions lorsque les bases de données sont arrêtées ou déplacées. Le drainage est toujours la meilleure solution pour masquer la maintenance planifiée.
Les solutions de basculement telles que la continuité des applications sont utilisées en dernier recours lorsque les tâches ne sont pas drainées dans le délai imparti.
Une temporisation de drainage, en secondes, et une option d'arrêt peuvent être définies pour un service à l'aide de l'ensemble DBMS_APP_CONT_ADMIN
. Seul un administrateur peut utiliser ces procédures.
Pour régler la temporisation de drainage à 600 secondes et l'option d'arrêt à IMMEDIATE :
execute DBMS_APP_CONT_ADMIN.SET_DRAINING('HIGH', 600, 'IMMEDIATE' );
Pour régler uniquement la temporisation de drainage :
execute DBMS_APP_CONT_ADMIN.SET_DRAINING('TPURGENT', 600);
Configurer les clients pour l'avis rapide des applications, y compris les portefeuilles facultatifs
L'authentification basée sur un portefeuille est une option pour l'avis rapide des applications lors de l'utilisation d'une base de données autonome. Utilisez le même portefeuille que pour la connexion TNS.
Pour les applications JDBC
-
Assurez-vous que les fichiers JAR suivants sont présents dans la variable
CLASSPATH
de l'application :(ons.jar, osdt_cert.jar, osdt_core.jar, oraclepki.jar)
-
Spécifiez le portefeuille pour l'avis rapide des applications de l'une des manières suivantes :
-
Pour utiliser ONS configuré automatiquement avec des portefeuilles, définissez les propriétés de système Java suivantes :
"-Doracle.ons.walletfile=/replace this with host path/onswallet"
"-Doracle.ons.walletpassword=myONSWalletPassword"
Notez que ces paramètres ne peuvent pas être définis par groupe ou par connexion.
-
Pour définir explicitement ONS, effectuez l'une des opérations suivantes :
-
Définissez-le explicitement à l'aide d'un fichier de configuration XML UCP. Par exemple :
<!--?xml version="1.0" encoding="UTF-8"? --> <ucp-properties> <connection-pool connection-pool-name="UCP_pool1" user="dbuser" password="dbuserpasswd" connection-factory-class-name="oracle.jdbc.pool.OracleDataSource" initial-pool-size="10" min-pool-size="5" max-pool-size="15" validate-connection-on-borrow="true" connection-wait-timeout="900" max-connections-per-service="50" sql-for-validate-connection="select 1 from dual" url="jdbc:oracle:thin:@(DESCRIPTION =(CONNECT_TIMEOUT= 120)(RETRY_COUNT=20) (RETRY_DELAY=3) (TRANSPORT_CONNECT_TIMEOUT=3)(ADDRESS_LIST =(LOAD_BALANCE=on)(ADDRESS = (PROTOCOL = TCP)(HOST=primary-scan)(PORT=1521)))(ADDRESS_LIST =(LOAD_BALANCE=on)(ADDRESS = (PROTOCOL = TCP)(HOST=standby-scan)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME = MY-SERVICE)))" fastConnectionFailoverEnabled="true" onsConfiguration="nodes=primary-scanhost:6200,secondary-scanhost:6200\nwalletfile=/replace_with_host_path/onswallet\nwalletpassword=myWalletPassword"> </connection-pool> </ucp-properties>
-
Définissez-le par programmation à partir d'UCP à l'aide d'un appel à setONSConfiguration(), par exemple :
pds.setONSConfiguration("nodes=primary-scanhost:6200,secondary-scanhost:6200\nwalletfile=/replace_this_with_host_path/onswallet\nwalletpassword=myWalletPassword");
-
-
Pour les applications Oracle Call Interface (OCI) utilisant le pilote Oracle version 12.2 ou plus récente
Ajoutez ce qui suit à la section <default_parameters>
du fichier oraaccess.xml
:
<default_parameters> (Other settings may be present in this section) <events> true </events> <ons> <auto_config>true</auto_config> <wallet_location>/my_path/onswallet</wallet_location> </ons> </default_parameters>
Le chemin <wallet_location>
doit être le nom du répertoire contenant le portefeuille.
D'autres paramètres peuvent être définis dans la section ons
de oraaccess.xml
, notamment <hosts>
, <max_connections>
et <subscription_wait_timeout>
.
Les pilotes qui prennent en charge les contrôles de paramètres d'événements natifs peuvent omettre la section <events>
et utiliser le paramètre du pilote à la place.
Par défaut, les connexions à la base de données sont établies, même en cas de défaillance d'ONS. Si vous préférez que les connexions échouent dans ce scénario, vous pouvez ajouter une section au même niveau que <events>
et <ons>
:
<fan> <subscription_failure_action> error </subscription_failure_action> </fan>
Placez le fichier oraaccess.xml
dans le même répertoire que les fichiers de réseau tnsnames.ora
et sqlnet.ora
. Par exemple, lors de l'utilisation d'Oracle Instant Client, ces fichiers peuvent se trouver dans le répertoire par défaut network/admin
. Vous pouvez également placer tous les fichiers de configuration de réseau dans un autre répertoire accessible. Réglez ensuite la variable d'environnement TNS_ADMIN
à ce nom de répertoire.
ODP.Net Fournisseur géré
Utilisez le fichier application.config
pour spécifier la configuration d'ONS et l'emplacement du portefeuille. Par exemple :
<oracle.manageddataaccess.client> <version number="*"> <onsConfig mode="remote"> <settings> <setting name="Protocol" value="TCPS" /> <setting name="WALLET_LOCATION" value="C:\myPath\ONS_SSLWallet" /> </settings> <ons database="atp01db"> <add name="nodeList" value="racNode1:6205,racNode2:6205,racNode3:6205" /> </ons> </onsConfig> </version> </oracle.manageddataaccess.client>