Oracle Net
Introduction
1. Rôle d’Oracle Net
Dans cet ouvrage, nous nous intéresserons uniquement à la communication entre un client et un serveur. La communication entre deux serveurs est un cas particulier où un serveur joue le rôle de client vis-à-vis de l’autre serveur ; sur ce serveur client, Oracle Net doit être configuré à la fois en serveur et en client.
Oracle Net a pour objectif de rendre le réseau "transparent" pour les applications : les applications n’ont pas besoin de savoir où se trouve le serveur, quel est le protocole à utiliser pour s’y connecter, etc. Les applications ont simplement besoin de connaître un nom de service réseau (sorte d’alias) qui leur permettra d’établir une connexion avec la base de données souhaitée.
Oracle Net doit être installé côté client et côté serveur ; cette installation est réalisée par défaut par Oracle Universal Installer. Après installation, la couche Oracle Net doit être configurée, là encore, côté client...
Configuration côté serveur
1. Création du processus d’écoute
Si aucune base de données n’a été créée durant l’installation d’Oracle, aucun processus d’écoute n’a encore été configuré : le fichier listener.ora n’existe pas, ni le service associé sur plate-forme Windows. Dans une telle situation, pour créer un processus d’écoute, il est recommandé d’utiliser l’application Assistant Configuration Oracle Net (menu Programmes - Oracle - nom_oracle_home - Outils de configuration et de migration - Assistant Configuration Oracle Net sur plate-forme Windows ou script shell netca sur plate-forme Unix).
Sélectionnez le bouton radio Configuration de processus d’écoute puis cliquez sur le bouton Suivant.
Sélectionnez le bouton radio Ajouter puis cliquez sur le bouton Suivant.
Sur plate-forme Windows, si Oracle a été installé avec un compte utilisateur standard (recommandé), l’assistant vous demande de saisir le mot de passe de l’utilisateur en question. Par contre, si Oracle a été installé avec un compte système Windows intégré, cette saisie n’est pas demandée. Elle n’est pas non plus demandée sur une plate-forme Unix. Laissez le nom par défaut proposé pour le processus d’écoute (LISTENER), saisissez si besoin le mot de passe de l’utilisateur puis cliquez sur le bouton Suivant.
Assurez-vous que le protocole TCP est bien sélectionné puis cliquez sur le bouton Suivant.
Choisissez le numéro de port TCP/IP utilisé par le processus d’écoute (1521 par défaut) puis cliquez sur le bouton Suivant.
Sélectionnez le bouton radio Non puis cliquez sur le bouton Suivant.
La création du processus d’écoute est terminée. Cliquez sur le bouton Suivant.
Cliquez sur le bouton Fin afin de quitter l’assistant.
2. Configuration du processus d’écoute
La configuration côté serveur consiste à configurer le processus d’écoute LISTENER, c’est-à-dire à indiquer "comment" et pour quelles bases il "écoute"....
Configuration côté client
1. Introduction
Pour configurer le client, il faut :
-
sélectionner les méthodes de résolution de noms utilisables par le client ;
-
configurer les méthodes de résolution de noms sélectionnées.
Les méthodes de résolution de noms utilisables par le client sont stockées dans le fichier sqlnet.ora. Si la méthode de résolution de noms locale est utilisée, il faut en plus définir un ou plusieurs noms de service réseau dans le fichier tnsnames.ora.
Ces deux fichiers se trouvent par défaut dans le répertoire $ORACLE_HOME/network/admin (plate-forme Unix ou Linux) ou %ORACLE_HOME%\network\ admin (plate-forme Windows). Cet emplacement peut être modifié en définissant la variable d’environnement TNS_ADMIN.
Les fichiers sqlnet.ora et tnsnames.ora peuvent être édités directement mais cela nécessite de bien comprendre leur structure et de bien connaître la syntaxe et le rôle des différents paramètres.
Le plus simple consiste alors à utiliser l’application Oracle Net Manager (menu Programmes - Oracle - nom_oracle_home - Outils de configuration et de migration - Net Manager sur plate-forme Windows ou script shell netmgr sur plate-forme Unix).
2. Sélection des méthodes de résolution de noms
Pour configurer les méthodes de résolution de noms utilisables par le client, cliquez sur l’icône Profil puis sélectionnez l’élément Affectation de noms dans la liste déroulante :
Dans une configuration standard, la méthode de résolution de noms locale (TNSNAMES) et la méthode de connexion simplifiée (EZCONNECT) sont sélectionnées par défaut. En utilisant les différents boutons de ce panneau, il est possible d’ajouter ou de supprimer des méthodes et de modifier l’ordre dans lequel les méthodes seront utilisées. ...
Problèmes courants et solutions
Les problèmes possibles de connexion entre un client et un serveur sont nombreux.
ORA-12541: TNS : pas de processus d'écoute
TNS-12541: TNS : aucun processus d'écoute
Explication |
Le serveur spécifié par la chaîne de connexion a bien été trouvé mais aucun processus d’écoute ne répond. |
Cause(s) |
Le processus d’écoute n’est pas lancé. Le port indiqué dans la chaîne de connexion ne correspond pas au port d’écoute du processus d’écoute. |
Action(s) |
Vérifier que les ports sont bien configurés de la même manière côté client et côté serveur. Vérifier si le processus d’écoute est démarré (le démarrer si besoin (ne pas hésiter à le redémarrer en cas de doute)). |
ORA-12505: TNS : le processus d'écoute ne connaît pas actuellement
le SID indiqué dans le descripteur de connexion
ORA-12514: TNS : le processus d'écoute ne connaît pas actuellement
le service demandé dans le descripteur de connexion
Explication |
Le processus d’écoute a bien été contacté mais le SID ou le SERVICE_ NAME indiqué dans la chaîne de connexion ne correspond à aucune instance écoutée par le processus d’écoute. |
Cause(s) |
Le SID ou SERVICE_NAME indiqué dans la chaîne de connexion n’est pas bon. Le SID_NAME spécifié dans le fichier de configuration du processus d’écoute n’est pas bon. |
Action(s) |
Vérifier que les identifiants d’instance ou les noms de service correspondent bien entre le client et le serveur (utiliser la commande status ou services dans l’utilitaire lsnrctl). En cas de doute, utiliser un SID à la place d’un... |