DBA2 - Module n° 1 Auteur : Labo Oracle Version 2.1 – 15 avril 2017 Nombre de pages : 48 Ecole Supérieure d’Informatique de Paris 23. rue Château Landon 75010 – PARIS www.supinfo.com DBA2 - Module n° 1 2 / 48 Table des matières 1. VUE D’ENSEMBLE DU RESEAU ................................................................................................................. 5 1.1. L’ENVIRONNEMENT RESEAU ......................................................................................................................... 5 1.1.1. Configuration de l’environnement réseau ............................................................................................. 5 1.1.2. Disponibilité du réseau ......................................................................................................................... 5 1.1.3. Optimisation, dépannage et surveillance du réseau .............................................................................. 5 1.1.4. Implémentation d’une sécurité dans le réseau ...................................................................................... 5 1.2. RESEAU SIMPLE ............................................................................................................................................. 6 1.2.1. Réseau « Client / Serveur » ................................................................................................................... 6 1.2.2. Réseau « N / Tiers » .............................................................................................................................. 6 1.3. RESEAU COMPLEXE ....................................................................................................................................... 6 1.3.1. Problèmes dans les réseaux .................................................................................................................. 6 1.3.2. Les solutions réseau d’oracle ................................................................................................................ 6 1.4. CONNECTIVITE : ORACLE NET SERVICES ...................................................................................................... 7 1.4.1. Oracle Net Services : Nouvelles fonctionnalités ................................................................................... 7 1.4.2. Oracle Net Services ............................................................................................................................... 7 1.5. CONNECTIVITE DE LA BASE DE DONNEES ...................................................................................................... 7 1.5.1. Connectivité IIOP et http....................................................................................................................... 7 1.6. NOMMAGE DES REPERTOIRES ........................................................................................................................ 7 1.6.1. LDAP ..................................................................................................................................................... 7 1.6.2. Règles de nommage ............................................................................................................................... 8 1.6.3. Services de répertoire : Oracle Internet Directory ............................................................................... 8 1.7. MODULARITE ................................................................................................................................................ 8 1.7.1. Serveur Oracle partagé ......................................................................................................................... 8 1.7.2. Connection manager ............................................................................................................................. 9 1.8. SECURITE .................................................................................................................................................... 10 1.8.1. Sécurité avancée.................................................................................................................................. 10 1.8.2. Cryptage avancé.................................................................................................................................. 11 1.8.3. Oracle NET et les Firewalls ................................................................................................................ 11 1.9. ACCESSIBILITE ............................................................................................................................................ 12 1.9.1. Les services hétérogènes ..................................................................................................................... 12 1.9.2. Procédures Externes ........................................................................................................................... 12 2. ARCHITECTURE DE BASE DE ORACLE NET ....................................................................................... 13 2.1. CONNEXION A ORACLE NET........................................................................................................................ 13 2.2. LES APPLICATIONS CLIENT-SERVEUR AVEC UNE CONNEXION NON MIDDLE-TIERS ...................................... 13 2.2.1. Composants de la connexion client-serveur ........................................................................................ 14 2.3. LES CONNEXIONS A PARTIR D’APPLICATIONS WEB .................................................................................... 14 2.4. AVEC UN CLIENT DE TYPE JAVA .................................................................................................................... 15 2.3.1. Avec un client de type Java Applet ...................................................................................................... 16 2.4.2. Avec un serveur Middle-Tiers .................................................................................................................. 17 2.4.3. Avec un serveur non Middle-Tiers .......................................................................................................... 18 3. CONFIGURATION D’ORACLE NET COTE SERVEUR ......................................................................... 19 3.1. APERÇU : LE PROCESSUS LISTENER ............................................................................................................ 19 3.2. LES REPONSES DU LISTENER ....................................................................................................................... 20 3.2.1. Génération et héritage de connexion ....................................................................................................... 20 3.2.2. Transfert direct de la connexion .............................................................................................................. 20 3.2.3. Transparence du transfert et de la redirection ........................................................................................ 20 3.3. CONFIGURATION DU LISTENER ................................................................................................................... 20 3.3.1. Configuration du service statique ............................................................................................................ 20 3.3.2. Enregistrement dynamique du service ..................................................................................................... 20 3.3.3. Avantages du service dynamique ............................................................................................................. 20 3.4. SESSION HERITEE ........................................................................................................................................ 21 3.5. REDIRECTION DE SESSION ........................................................................................................................... 22 3.6. LE FICHIER LISTENER.ORA ........................................................................................................................... 23 http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 3 / 48 3.6.1. Définition du fichier listener.ora ......................................................................................................... 23 3.5.2. Paramètres du fichier listener.ora ........................................................................................................... 23 3.6. CREATION ET GESTION D’UN LISTENER .......................................................................................................... 24 3.6.1. Création du Listener ................................................................................................................................ 24 3.6.2. Configuration des services ...................................................................................................................... 24 3.6.3. Logging et tracing ................................................................................................................................... 25 3.7. CONFIGURATION DU SERVICE D’ENREGISTREMENT........................................................................................ 25 3.7.1. Configuration de l’enregistrement .......................................................................................................... 25 3.7.2. Configuration du PMON ......................................................................................................................... 26 3.8. CONFIGURATION DU LISTENER POUR ORACLE 9I JVM : IIOP ET HTTP ........................................................ 26 3.9. CONTROLE DU LISTENER EN LIGNE DE COMMANDE ....................................................................................... 26 3.10. LES COMMANDES LSNRCTL....................................................................................................................... 27 3.10.1. La commande START ............................................................................................................................ 27 3.10.2. La commande STOP .............................................................................................................................. 27 3.10.3. Autres commandes ................................................................................................................................. 27 3.10.4. Les commandes SET et SHOW .............................................................................................................. 28 4. CONFIGURATION COTE CLIENT DES SERVICES ORACLE NET ................................................... 29 4.1. LE HOST NAMING ....................................................................................................................................... 29 4.1.1. Méthodes de nommage ........................................................................................................................ 29 4.1.2. Le Host Naming coté client ................................................................................................................. 29 4.1.1. Le Host Naming coté serveur .............................................................................................................. 29 4.1.3. Exemple d’utilisation .......................................................................................................................... 29 4.2. CHOIX DE LA METHODE DU HOST NAMING ................................................................................................. 30 4.2. LOCAL NAMING .......................................................................................................................................... 31 4.2.1. Avantages du Local Naming ............................................................................................................... 31 4.3. ORACLE NET CONFIGURATION ASSISTANT ................................................................................................. 31 4.3.1. Démarrage d’Oracle Net Configuration Assistant.............................................................................. 31 4.3.2. Configuration du Local Naming ......................................................................................................... 32 4.4. LES NOM DE SERVICES ................................................................................................................................ 33 4.4.1. Configuration du Local Net Service Names ........................................................................................ 33 4.4.2. Configurations des noms de services .................................................................................................. 33 4.4.3. Spécification de la version de la base de données .............................................................................. 34 4.4.4. Spécification du nom de service de la base de données ...................................................................... 34 4.4.5. Sélection du protocole réseau ............................................................................................................. 35 4.5. NOM D’HOTE ET PORT DU LISTENER ........................................................................................................ 35 4.5.1. Configuration du nom d’hôte et du LISTENER ................................................................................... 35 4.6. TEST DE LA CONNEXION .............................................................................................................................. 36 4.6.1. Test de la connexion ............................................................................................................................ 36 4.6.2. Résultats du test de connexions ........................................................................................................... 37 4.7. NET SERVICE........................................................................................................................................... 37 4.7.1. Choix du nom du NET SERVICE ........................................................................................................ 37 4.7.2. Sauvegarde du nom du NET SERVICE ............................................................................................... 38 4.8. LE FICHIER TNSNAMES.ORA .................................................................................................................... 38 4.8.1. Description du fichier TNSNAMES.ora .............................................................................................. 38 4.9. LE FICHIER SQLNET.ORA .......................................................................................................................... 39 4.9.1. Description du fichier SQLNET.ora .................................................................................................... 39 4.10. DEPANNAGE COTE CLIENT........................................................................................................................... 40 5. UTILISATION ET CONFIGURATION DU SERVEUR ORACLE PARTAGE ..................................... 41 5.1. LES CONFIGURATIONS DES SERVEURS ......................................................................................................... 41 5.1.1. Processus du serveur dédié ................................................................................................................. 41 5.1.2. Serveur Oracle partagé ....................................................................................................................... 42 5.2. LES AVANTAGES DU SERVEUR ORACLE PARTAGE ...................................................................................... 43 5.3. LA CONNEXION ........................................................................................................................................... 43 5.4. TRAITEMENT D’UNE REQUETE ..................................................................................................................... 44 5.4.1. Comment la requête est-elle traitée ?.................................................................................................. 44 5.4.2. La file d'attente (Request Queue) ........................................................................................................ 44 5.5. SGA ET PGA .............................................................................................................................................. 45 5.6. CONFIGURATION DU SERVEUR ORACLE PARTAGE ....................................................................................... 45 http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 4 / 48 5.6.1. Les dispatchers .................................................................................................................................... 46 5.6.2. SHARED_SERVERS ........................................................................................................................... 46 5.6.3. MAX_DISPATCHERS ......................................................................................................................... 46 5.6.4. MAX_SHARED_SERVERS ................................................................................................................. 47 5.6.5. CIRCUITS ........................................................................................................................................... 47 5.6.6. SHARED_SERVER_SESSIONS .......................................................................................................... 47 5.6.7. PARAMETRES RELATIFS .................................................................................................................. 47 5.7. VERIFICATION DE L’INSTALLATION ............................................................................................................. 47 5.8. LES VUES DU DICTIONNAIRE DE DONNEES ................................................................................................... 48 http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 5 / 48 1. Vue d’ensemble du réseau L’environnement réseau 1.1. 1.1.1. Configuration de l’environnement réseau Afin d’implémenter de façon optimale votre réseau, il faut prendre en considération les points suivants : Quel type de réseau souhaitez-vous configurer ? Est-ce un petit réseau avec quelques clients ou un grand réseau avec un nombre important de clients ? Utilisez-vous un protocole simple ou multiple ? Le réseau est il statique ou évolutif ? Quelles options de configuration avez-vous ? Y a-t-il les outils faciles à utiliser et disponibles pour configurer le réseau? Votre réseau est-il uniquement client/serveur ou multi-tiers? 1.1.2. Disponibilité du réseau Quel niveau de disponibilité du réseau votre entreprise nécessite-t-elle ? Ajouterez-vous des clients ou des serveurs à votre réseau ? Envisagez-vous de fréquentes mises à jour ? 1.1.3. Optimisation, dépannage et surveillance du réseau Avez-vous les outils nécessaires ? Prévoyez-vous de grosses montées en charge ? Nombre d’utilisateurs Nombre de transactions Nombre de nœuds Lieux des nœuds 1.1.4. Implémentation d’une sécurité dans le réseau Avez-vous besoin de sécuriser votre environnement réseau ? Avez-vous des informations sensibles transitant par le réseau ? Quels outils sont utilisables pour l’implémentation d’une sécurité réseau ? Envisagez-vous un accès Internet sur vos serveurs ? http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 1.2. 6 / 48 Réseau simple 1.2.1. Réseau « Client / Serveur » Dans un réseau à deux niveaux, un client communique directement avec un serveur. Ceci est également connu sous le nom d’architecture client/serveur. Une architecture réseau client/serveur est une architecture dans laquelle les processus clients envoient des requêtes aux processus serveurs et réceptionnent les réponses du serveur. Le client et le de serveur communiquent à travers le réseau en utilisant un protocole donné, qui doit être installé sur le client et le serveur. 1.2.2. Réseau « N / Tiers » Dans une architecture N/tiers, le rôle de l'agent middle-tiers (moyen-tiers) peut être divers. Il peut fournir un ou des : Services de traduction (adapte une application serveur afin que le client puisse l’interpréter ou agit en tant que pont entre protocoles). Services de modularité (agit en tant que moniteur de traitement de transaction afin d’équilibrer la charge des demandes entre les serveurs). Services d'agent de réseau (trace une demande à un certain nombre de différents serveurs, assemble les résultats, et renvoie une réponse simple au client) 1.3. Réseau complexe 1.3.1. Problèmes dans les réseaux Les réseaux devraient améliorer la communication. Dans un environnement plus complexe de réseau, plusieurs difficultés sont à prendre en compte : Différentes plateformes matérielles faisant tourner différents systèmes d'exploitation Protocoles multiples utilisés sur ces plateformes Syntaxe différente entre différentes applications Différents endroits géographiques dans lesquels les applications résident. Un réseau complexe bien géré peut soutenir un système réparti à une grande échelle. 1.3.2. Les solutions réseau d’oracle Oracle fournit une suite complète de produits afin de répondre à la majorité des besoins. Les problèmes de connectivité sont abordés par l'éventail de protocoles supportés par Oracle Net Services. Un des produits Net Services très utilisé dans les architectures Oracle est Oracle Internet Directory. Oracle Internet Directory (OID) est étroitement intégré à ORACLE 9i. C’est est un service d'annuaire compatible avec la version 3 de LDAP. http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 1.4. 7 / 48 Connectivité : Oracle Net Services 1.4.1. Oracle Net Services : Nouvelles fonctionnalités Oracle Net Services introduit de nouvelles fonctionnalités afin d’effectuer d’éventuels changements au réseau lors d’une croissance significative de la charge dans les environnements distribués. Ces changements incluent l’augmentation des accès aux données par les utilisateurs, créant des environnements plus facilement configurables, administrables, et augmentant la fiabilité de l’authentification des utilisateurs. 1.4.2. Oracle Net Services Oracle Net Services fournit le plus large éventail de protocoles de transport réseau, incluant TCP/IP, IBM LU6.2, et DECnet. Toutes les conversions de données d’Oracle Net Services sont totalement transparentes pour l’utilisateur et les applications. Cela permet à Oracle 9i de fonctionner sur différents types d’ordinateurs, et de systèmes d’exploitation. Oracle Net Services comprend des mécanismes de configuration et d’administration et élimine le besoin d’un utilitaire de configuration centralisé. Dans les environnements simples, les paramètres par défaut d'Oracle Net Services fournissent une méthode de résolution de noms transparente, éliminant ainsi le besoin de générer des fichiers de configuration. Pour des environnements plus compliqués, Oracle Internet Directory stocke les informations de connexion dans la base de données, en plus des autres services. Oracle 9i inclut des solutions de connectivité telles que le RADIUS (Remote Authentification Dial-In User Service) et LDAP (Lightweight Directory Access Protocol). Notez que Novell IPX/SPX n’est plus supporté sur Oracle 9I. 1.5. Connectivité de la base de données 1.5.1. Connectivité IIOP et http Les connections à la base de données ne sont pas uniquement limitées à Oracle Net Services. Des clients peuvent établir des connexions à la base de données en utilisant des protocoles Internet tels que le protocole Inter-ORB (IIOP) et Hypertext Transfert Protocol (HTTP). En utilisant ces deux protocoles, les clients peuvent exécuter des applications à partir d’un navigateur Internet afin de se connecter à une base de données Oracle 9i. Les technologies Internet telles qu’Internet File System, Entreprise JavaBeans (EJB), et Standard Secure Sockets (SSL), procurent une plus grande sécurité du réseau. 1.6. Nommage des répertoires 1.6.1. LDAP LDAP est un acronyme de Lightweight Directory Access Protocol. LDAP est un standard Internet pour les services de répertoires. http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 8 / 48 Il est vite apparu comme un composant critique de l’infrastructure afin d’assurer la sécurité du réseau et est désormais une plateforme essentielle permettant l'intégration d’applications et de services sur le réseau. Il simplifie considérablement la gestion d'informations d'annuaire en fournissant: Une interface standard bien définie pour gérer un seul et unique service de gestion d’annuaire, tel qu’Oracle Internet Directory. Un développement et un déploiement rapide des applications utilisant l’annuaire. Une suite d’interface programmable permettant le déploiement facile d’applications pour l’Internet. 1.6.2. Règles de nommage Oracle supporte différentes méthodes de nommage. Une méthode de nommage est un processus grâce auquel une adresse réseau complexe est réduite à un simple alias. L’alias en question est ensuite utilisé par les utilisateurs et administrateurs afin de connecter les réseaux entre eux. Les méthodes de nommage supportées sont les suivantes : Host Naming : Utilisé dans les réseaux simples utilisant uniquement TCP/IP. Local Naming : Utilise un fichier tnsnames.ora. Oracle Names Naming : Utilise Oracle Names Server. (A partir d’Oracle 8i). Directory Naming : Utilise Oracle Internet Directory. 1.6.3. Services de répertoire : Oracle Internet Directory Oracle Internet Directory (OID) est compatible à la version 3 de LDAP. Il fournit les dispositifs suivants : Intègre des bases de données Oracle8i et Oracle9i, rendant facile l'administration de leurs utilisateurs et systèmes. Permet aux annuaires basés sur OID de rester synchronisés, et ceci même à la suite d’une perturbation. Maintient les règles de sécurité de cheminement des objets et de gestion du système, ainsi que la qualité des services. Intègre les clés publiques de certificats, les e-wallets, et les privilèges d’accès. 1.7. Modularité 1.7.1. Serveur Oracle partagé L’architecture du serveur partagé a été mise en place afin de permettre une souplesse d’utilisation pour les utilisateurs. En activant le partage de ressources, le serveur Oracle permet à un grand nombre d'utilisateurs de se connecter simultanément à un serveur de base de données. Dispatcher http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 9 / 48 Le dispatcher est un processus qui manipule la gestion des raccordements aux processus du serveur. Un dispatcher supporte une multitude de connexion en simultané. Les processus serveur Les serveurs partagés (Oracle Shared Server) gèrent la recherche et la sauvegarde des données de la base de données et toutes autres opérations nécessaires aux applications. Le résultat Cette distribution de tâches dans Oracle Shared Server est très efficace et permet une grande souplesse d'utilisation. Elle réduit les temps de connexion et de réponse. 1.7.2. Connection manager Connection Manager est un processus passerelle et un programme de gestion configuré et installé en Middle-tiers. Connection Manager peut être configuré pour les dispositifs suivants: Multiplexage Connection Manager peut manipuler plusieurs connexions entrantes et les transmettre simultanément à une unique connexion sortante. Le multiplexage permet un plus grand nombre d'accès aux serveurs par les utilisateurs. Cette configuration est possible seulement avec le protocole TCP/IP. Connectivité à travers les protocoles En utilisant ce dispositif, un client et un serveur peuvent communiquer avec différents protocoles de réseau. Contrôle d’accès au réseau En utilisant Connection Manager, Il sera possible de ne permettre l’accès aux serveurs qu’à certains clients. (Uniquement avec le protocole TCP/IP). http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 10 / 48 Multiplexage de connexions : Cet exemple montre comment Connection Manager agit en tant que multiplexeur pour diriger des données de plusieurs de clients vers un serveur : 1- La connexion initiale d'un client à un serveur est établie en se reliant au Connection Manager. 2- Connection Manager établit la connexion au serveur. 3- Quand des clients additionnels demandent des connexions au serveur par Connection Manager, ils utilisent la même connexion que pour la connexion initiale. 1.8. Sécurité 1.8.1. Sécurité avancée Oracle Advanced Security Oracle Advanced Security fournit une sécurité au niveau de la confidentialité des données, de l'intégrité des données, et de l'authentification. Le cryptage assure que les données transmises entre les nœuds demeurent privées. L'authentification s'assure que les utilisateurs sont authentifiés. L'intégrité des données assure que les données ne sont pas modifiées ou ne sont pas manipulées pendant la transmission. http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 11 / 48 L'ouverture de session simple permet à des utilisateurs de s'authentifier aux serveurs multiples en utilisant une combinaison simple de login/mot de passe. 1.8.2. Cryptage avancé Cet exemple montre une des tâches majeures d'une transmission sécurisée à travers par un réseau. Pour assurer une telle transmission, la sécurité avancée d’Oracle doit être installée et configurée sur le client et le serveur. Après que la sécurité avancée ait été configurée, les données en utilisant Oracle NET peuvent être cryptées comme suit: 1- L'information textuelle est envoyée à partir du client. Une couche du réseau du côté client crypte l'information avant qu'elle soit transmise à travers le réseau. 2- Les données cryptées, comprenant potentiellement un checksum avec chaque paquet envoyé, sont transmises. 3- Du côté serveur, le message est décrypté, et les checksums peuvent s'assurer que les données arrivent dans l'ordre correct. Seul le serveur qui tient la bonne clé peut déchiffrer l'information et vérifier l'ordre du checksum des données. 1.8.3. Oracle NET et les Firewalls Il existe deux catégories de Firewalls qu'Oracle supporte : les Proxy Firewall, tels que Network Associates Gauntlet ou l'Axent Raptor et les Firewalls qui effectuent l'inspection des paquets, tels que Check Point Firewall-1 et Cisco PIX Firewall. Les Proxy Firewalls http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 12 / 48 Dans l'utilisation des applications Proxy, l'information traverse le firewall. Les applications Proxy représentent la seule manière de transmettre des données à travers les deux interfaces de réseau d'un centre serveur présent sur deux sous-réseaux. Inspection à l'aide des Firewalls Ces Firewalls filtrent et inspectent les paquets TCP/IP. Il est possible de configurer le Firewall pour permettre le trafic Oracle Net. En inspectant les en-têtes IP et en interprétant les divers protocoles de haut niveau, ce type de Firewall peut filtrer les informations tout en surveillant et couvrant des actions spécifiques d'applications telles que les redirections de ports. 1.9. Accessibilité 1.9.1. Les services hétérogènes Les services hétérogènes fournissent une compatibilité entre le serveur Oracle et des environnements autres qu’Oracle. Les services hétérogènes vous permettent de: Utiliser Oracle SQL pour accéder d'une manière transparente à des données stockées dans un environnement non-ORACLE comme Informix, DB2, SQL Server et Sybase Utiliser des procédures Oracle pour accéder d'une manière transparente à des systèmes non-Oracle, à des services, ou à des interfaces de programmation d'application (APIs), à partir de votre environnement distribué. 1.9.2. Procédures Externes Le fait qu'Oracle supporte les procédures externes (RPC), fournit aux développeurs plus de choix de développement que le SQL standard ou le PL/SQL. Le Listener peut être configuré pour détecter les appels aux procédures externes. Quand une application de PL/SQL ou de SQL appelle une procédure externe, le Listener lance un processus session-spécifique de réseau appelé l'extproc. A travers le Listener, PL/SQL transmet les informations suivantes à l'extproc: Le nom du Shared Library Le nom de la procédure externe Les paramètres (Si nécessaire) Le programme d'extproc charge alors la Shared Library et appelle la procédure externe. http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 13 / 48 2. Architecture de base de Oracle Net 2.1. Connexion à Oracle Net Oracle Net est utilisé pour établir une connexion entre une application et un réseau qui dépend de : La configuration du réseau L’emplacement des nœuds L’application Le protocole réseau La connexion peut être de type : Client-serveur Connexion Internet 2.2. Les applications client-serveur avec une connexion non Middle-Tiers Oracle Net est un ensemble de programme qui permet d’établir une connexion entre un client et le serveur de la base de données. Il réside dans la couche la plus élevée du protocole réseau. http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 14 / 48 2.2.1. Composants de la connexion client-serveur Lorsqu’une connexion est initialisée entre un client et un serveur SGBDR (système de gestion de base de données relationnelles), les données sont encapsulées pour transiter sur le réseau puis désencapsulées jusqu’au serveur. L’architecture d’Oracle Net utilise des couches similaires au modèle OSI. Les couches d’Oracle Net sont les suivantes : Application Oracle L’application cliente, comme SQL*Plus ou Forms, utilise Oracle Call Interface (OCI) pour communiquer avec le serveur. OCI est un programme muni d’une interface qui fonctionne en langage SQL et que le serveur comprend. Two-Task Common (TTC) TTC correspond à la couche présentation du modèle OSI. Il permet de préparer la conversion des données pour que le client et le serveur utilisent le même langage. Oracle Net Oracle Net est responsable d’établir et de maintenir la connexion entre le client et son serveur. Il établit une connexion point à point (peer to peer). Du coté du client, Oracle Net gère les points suivants : La localisation du serveur Si un protocole ou plus est impliqué dans la connexion Lorsqu’il y a des exceptions ou des interruptions Du coté du serveur, Oracle Net a les mêmes fonctions que du coté client, mis à part qu’il peut recevoir n’importe quelles requêtes de connexions Oracle Net communique uniquement avec Oracle Advanced Security pour assurer la sécurité des connexions. Oracle Net correspond à la couche Session du modèle OSI. Oracle Protocol Support (OPS) OPS est responsable de la compatibilité entre les fonctionnalités d’Oracle Net et les protocoles standards de l’industrie. Cette couche supporte les protocoles suivants : o TCP/IP o TCP/IP avec SSL o LU 6.2 o Interface virtuel (VI) o Names pipes 2.3. Les connexions à partir d’applications WEB A partir d’un navigateur, on peut se connecter à un serveur Oracle de deux façons : En utilisant un serveur web avec une configuration Middle Tier contenant : o Les pilotes JDBC (java data base connectivity) de Oracle Call Interface (OCI) o Les pilotes JDBC Thin Ou en utilisant une connexion directe à un serveur Oracle grâce à : o IIOP o HTTP Se connecter à un serveur Oracle depuis un navigateur Internet est semblable à une connexion client serveur, mis à part pour la partie architecture. En général, le navigateur du client communique en utilisant HTTP avec une application Internet pour créer la connexion avec le serveur Internet qui répond grâce à une autre application. Les applications utilisent Oracle Net pour communiquer avec la base Oracle. http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 15 / 48 Les pilotes JDBC OCI sont utilisés pour connecter le client Oracle, et les pilotes JDBC Thin sont utilisés pour les clients qui n’ont pas d’installation d’Oracle sur leur machine. 2.4. Avec un client de type Java Si une application Java est utilisée sur le serveur Internet pour initialiser une connexion à un serveur Oracle, le serveur agit sur le client et les pilotes JDBC sont utilisés. Ces pilotes communiquent alors avec Oracle Net pour connecter la base de données Oracle. C’est la seule différence avec une configuration client-serveur. http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 16 / 48 2.3.1. Avec un client de type Java Applet Si une Applet Java est lancée depuis le serveur Internet pour initialiser la connexion au serveur Oracle, le serveur agit alors sur le client, et les pilotes JDBC Thin seront utilisés. Ces pilotes permettront de communiquer avec Java Net qui communiquera lui-même avec la base de données Oracle. Java TTC et Java Net sont des applications plus légères que TTC et Oracle Net, qui assistent les Applets Java pour la connexion au serveur Oracle. http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 17 / 48 2.4.2. Avec un serveur Middle-Tiers Dans cette configuration réseau, le navigateur Internet, utilisant le protocole HTTP, qui lance une application Java ou une Java Applet depuis le serveur Internet d’Oracle. Le serveur Internet agit sur le client grâce à Oracle Net ou Java Net (s’il est installé), puis se connecte au serveur Oracle en lançant Oracle Net. Oracle Net ou Java Net doivent être installé sur le serveur Internet client et sur le serveur Oracle pour qu’une connexion soit possible. http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 18 / 48 2.4.3. Avec un serveur non Middle-Tiers Une base de données peut être configurée pour accepter des connexions de types HTTP et IIOP (Internet Inter-Orb Protocol). Ces protocoles sont utilisés pour se connecter aux applications appartenant à la base de données. Par exemple HTTP est utilisé pour accéder à Oracle Internet File System (IFS), et IIOP peut être utilisé pour se connecter à des JavaBeans (EJBs) et CORBA (Common Object Request Broker Application) à la base de données. Oracle Net n’est pas requis sur le serveur ni sur le client, mais le serveur Oracle doit être configuré pour supporter ces protocoles. http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 19 / 48 3. Configuration D’Oracle Net coté serveur 3.1. Aperçu : Le processus Listener Le Listener est un processus lancé sur un nœud qui écoute les demandes de connexions pour une base ou plusieurs bases de données. Les caractéristiques du Listener sont : Le processus peut écouter pour plus d’une base de données à la fois. Plusieurs Listeners peuvent écouter pour une seule base de données afin d’augmenter les performances Le Listener peut écouter des paquets de multiples protocoles Le nom par défaut du Listener dans Oracle Net est « LISTENER » Le nom du Listener est rendu unique par le fichier listener.ora NB : Oracle 9i requiert un listener de version égale ou supérieure à 9.0 http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 3.2. 20 / 48 Les réponses du Listener 3.2.1. Génération et héritage de connexion Le Listener transmet ou lègue la connexion à un processus généré. Cette méthode est utilisée sur les serveurs dédiés uniquement. 3.2.2. Transfert direct de la connexion Le Listener transférera la connexion à un dispatcher (répartiteur) lorsque qu’un serveur partagé est utilisé. Cette méthode n’est pas possible avec un serveur dédié. 3.2.3. Transparence du transfert et de la redirection La lègue, le transfert ou la redirection de session sont totalement transparents pour l’utilisateur. Les actions effectuées seront seulement visibles par analyse du fichier trace. 3.3. Configuration du Listener 3.3.1. Configuration du service statique Pour que le Listener accepte les requêtes clients depuis Oracle 8i (ou précèdent), il faut configurer le fichier listener.ora. La configuration statique n’est requise que pour Oracle Entreprise Manager (OEM) et tous les programmes utilisant des procédures externes ou des services hétérogènes. 3.3.2. Enregistrement dynamique du service Oracle 9i utilise le service de registres pour informer le Listener des services de la base de données. Le service des registres relie le processus PMON (Process Monitor) aux informations du registre courant avec le Listener. PMON informe également le Listener sur l’état actuel, les charges de l’instance et les dispatchers. Lorsque qu’une « instance » est lancée, les paramètres initiaux à propos du Listener sont lus depuis le fichier init.ora, PMON enregistre toutes ces informations grâce au Listener. Si le Listener ne se lance pas lorsqu’une « instance » est lancée, PMON n’enregistrera pas les informations avec le Listener. PMON essaiera de joindre le Listener par la suite. Le Listener rejettera chaque connexion créée par un service inconnu. 3.3.3. Avantages du service dynamique Le fichier listener.ora ne requiert pas le paramètre SID_LIST_LISTENER_NAME pour spécifier les informations sur la base de données administrée par le Listener. Ce paramètre peut être requis si les outils de management que vous utilisez, l’utilise aussi. La solution de secours est activée. La répartition de charge est activée pour les serveurs de partages. http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 3.4. 21 / 48 Session héritée Le Listener invoque des processus serveurs dédiés à chaque fois qu’une requête de connexion est reçue puis transmise au processus serveur. L’utilité de cette méthode dépend de la faculté du système d’exploitation à supporter les transmissions vers les deux extrémités de celui-ci (clients et serveurs). Lorsque le Listener sépare les processus du serveur dédié et lègue la connexion au processus du serveur, cela est appelle session d’héritage ou de lègue (en Anglais : Bequeath Session). Le déroulement se fait de la façon suivante : 1. Le client établit une connexion avec le Listener en utilisant le protocole configuré et envoie au Listener un paquet CONNECT. 2. Le Listener vérifie que le SID soit bien précisé. Si c’est le cas, le Listener divisera ou génèrera un nouveau processus pour prendre en charger la connexion. Une connexion léguée est établie entre le Listener et le nouveau processus du serveur afin de diffuser les informations d’initialisation. La connexion léguée est alors fermée. Noter que le socket TCP est transmis au nouveau processus du serveur. 3. Le processus serveur envoie un paquet RESEND en retour au client. 4. Un nouveau paquet CONNECT est envoyé à la nouvelle division du processus serveur dédié. 5. Le processus du serveur dédié accepte les connexions entrantes et sortantes et un message ACCEPT est renvoyé au client. http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 3.5. 22 / 48 Redirection de session Lorsque les conditions nécessaires à l’héritage de session ne sont pas réunies, une redirection de session est mise en place. Voici les différentes étapes d’une redirection de session : 1. Le client établit la connexion avec le Listener en utilisant un protocole préalablement configuré et envoie au Listener un paquet CONNECT. 2. Le Listener vérifie que le SID est défini. Si c’est le cas, le Listener générera un nouveau thread (ou process) pour s’occuper de la nouvelle connexion. Une connexion IPC est alors établie entre le Listener et le nouveau process/thread. 3. Le nouveau thread/process sélectionne un nouveau port TCP/IP depuis une liste de ports libres définis par l’utilisateur et renvoie cette information au Listener. 4. Le Listener ajoute ce nouveau port dans un paquet REDIRECT, l’envoie au client, puis détruit le socket TCP/IP originel qui liait le client au Listener. 5. Une nouvelle connexion TCP est établie vers l’adresse redirigée (cette adresse est spécifié dans le paquet REDIRECT) et un paquet CONNECT est donc transféré vers le serveur dédié. 6. Le serveur dédié peut désormais accepter les connexions entrantes et envoyer le paquet ACCEPT au client. Si une redirection de session à lieu dans un environnement à serveurs partagés, un nouveau process ne sera généré (vu en étape 2) que si les serveurs partagés n’ont plus de capacité à accepter des connexions. http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 3.6. 23 / 48 Le fichier listener.ora 3.6.1. Définition du fichier listener.ora Le fichier listener.ora est utilisé pour enregistrer les services de façon statique. Il est crée lors de l’installation d’Oracle avec les options suivantes : Le nom du Listener L’adresse et le port du Listener (le port par défaut est 1521) La (es) base(s) de données qui utilisent le Listener Les protocoles (TCP/IP) Le SID 3.5.2. Paramètres du fichier listener.ora paramètres CONNECT_TIMEOUT_nom_listener Descriptions Définit le nombre de secondes que le listener doit attendre pour le processus serveur pour avoir une base de données valide, après que la session est démarrée. LISTENER_adresse LOG_DIRECTORY_nom_listener LOG_FILE_nom_listener LOGGING_nom_listener PASSWORDS_nom_listener SAVE_CONFIG_ON_STOP_nom_listener Définit les adresses d’écoute du listener Définit le dossier contenant le fichier de log Spécifie le nom du fichier log Par défaut le logging est activé. Définit un mot de passe non crypté pour le contrôle du listener Tous les changements faits par la commande LSNRCTL SET sont transcrits ici si le paramètre est sur TRUE Définit le service fourni par le listener. Il est plus utilisé pour les serveurs qui ne sont pas des bases de données Définit le SID de la base de données utilisée par le listener Définit le nombre de secondes que le listener prendra pour répondre à la première commande LSNRCTL STATUS, Cela assure aux listeners avec un protocole lent le temps de se lancer avant de répondre. Définit le dossier dans lequel le fichier trace est écrit Définit le nom du fichier trace Rend le tracing inactif ou change son niveau SERVICE_LIST_nom_listener SID_LIST_nom_listener STARTUP_WAIT_TIME_nom_listener TRACE_DIRECTORY_nom_listener TRACE_FILE_nom_listener TRACE_LEVEL_nom_listener http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 24 / 48 3.6. Création et gestion d’un Listener 3.6.1. Création du Listener Par défaut, un Listener appelé LISTENER est créé lors de l’installation. Pour créer un Listener supplémentaire, il faut suivre les étapes suivantes : 1. Lancer Oracle Net Manager 2. Cliquer sur l’icône Listener 3. Sélectionner le formulaire de création dans le menu 4. Entrer le nom du Listener dans le champ prévu à cet effet 5. Cliquer sur le bouton d’ajout d’adresse 6. Changer ou ajouter des informations dans le champ protocole, le champ hôte et les ports nécessaires 7. Sélectionner « sauvegarde de la configuration réseau » dans le menu « fichier » d’Oracle Net. 3.6.2. Configuration des services http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 25 / 48 Pour configurer les services : 1. Sélectionner « services de base de données » depuis la liste de sélection 2. Cliquer sur le bouton « ajouter une base de données » 3. Entrer le nom de la base de données désirée, le dossier Oracle, et le SID dans les champs appropriés 4. Puis cliquer sur « sauver la configuration réseau » dans le menu file de Net Manager 3.6.3. Logging et tracing Pour configurer le Logging et le Tracing du Listener, il faut suivre les étapes suivantes : Sélectionner « paramètres généraux » dans le menu d’Oracle Net Manager Cliquer sur l’onglet Logging & Tracing Activer le Logging et le Tracing Entrer le chemin du ficher de log Sélectionner « sauvegarde de la configuration réseau » 6. Répéter les étapes pour le tracing 1. 2. 3. 4. 5. 3.7. Configuration du service d’enregistrement 3.7.1. Configuration de l’enregistrement Pour assurer le bon fonctionnement de ce service il faut correctement paramétrer les points suivants : SERVICE_NAMES pour le ou les noms du service de la base de données INSTANCE_NAME pour le nom de l’instance Exemples : SERVICE_NAMES=sales.us.oracle.com INSTANCE_NAME=salesdb http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 26 / 48 3.7.2. Configuration du PMON Par défaut, le PMON est configuré avec le Listener par défaut (voir points précédents) Pour configurer le PMON avec un Listener différent, on peut forcer le serveur à ne pas utiliser le TCP/IP ou le port 1521 en configurant le paramètre « LOCAL_LISTENER » dans le fichier init.ora comme suit : LOCAL_LISTENER= listener_alias Le listener_alias peut être défini par le type de protocole, l’adresse de l’hôte et le port contenu dans le fichier tnsnames.ora : listener_name= (DESCRIPTION= (ADDRESS= (PROTOCOL=tcp) (HOST=sales-server) (PORT=1521))) On configurera aussi le paramètre « DISPATCHERS » qui est défini dans le fichier init.ora 3.8. Configuration du Listener pour Oracle 9i JVM : IIOP et HTTP Oracle 9i n’a pas besoin d’être configuré pour utiliser les protocoles IIOP et HTTP. Par contre Oracle 8i aura besoin d’utiliser la configuration statique pour son Listener (il faut posséder une version du Listener supérieure ou égale à la 9.0), pour cela, il faut suivre les étapes suivantes : 1. 2. 3. 4. 5. 6. 7. 8. Démarrer Oracle Net Manager Dans le panneau de navigation, dérouler le menu Local puis Listeners Sélectionner un Listener existant Dans la liste de droite sélectionner Liste de locations Choisissez ajouter une adresse, un nouveau champ apparaît Sélectionner TCP/IP ou TCP/IP avec protocole SSL depuis la liste des protocoles Entrer le nom de l’hôte de la base de données dans le champ prévu à cet effet Entrer 2481 dans le champ du port si vous avez choisi le protocole TCP/IP ou 2482 si il est avec SSL 9. Sélectionner « Statically dedicate this address for JServer connections » 10. Sélectionner dans files « sauver la configuration réseau » On met à jour le fichier listener.ora de la façon suivante : listener= (DESCRIPTION_LIST= (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=server1)(PORT=2481)) (PROTOCOL_STACK= (PRESENTATION=giop) (SESSION=raw)))) 3.9. Contrôle du Listener en ligne de commande Les commandes issues du Listener peuvent être lancées en ligne de commande ou grâce au prompt LSNRCTL : Ligne de commande UNIX : $ lsnrctl <command name> Syntaxe avec le prompt : LSNRCTL <command name> http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 27 / 48 Avec un Listener qui n’est pas par défaut : LSNRCTL set current_listener listener02 Sous Windows NT, le système utilise la ligne suivante pour lancer le Listener Control Utility : C:\> lsnrctl command Lorsque la commande lsnrctl est exécutée, cette dernière fonctionnera avec le listener par défaut « Listener » à moins que la commande SET LISTENER ait été exécutée. Une autre méthode permettant de gérer les différents listeners consiste à utiliser le nom des listeners en tant que paramètre dans la ligne de commande : $ lsnrctl start listener02 3.10. Les commandes LSNRCTL Il existe plusieurs commandes pour gérer le listener, les plus importantes : START et STOP 3.10.1. La commande START Elle permet de lancer un listener depuis le listener control utility. Les changements effectués dans le fichier listener.ora doivent être fait lorsque le listener est arrêté. L’argument de la commande START est le nom du listener, si aucun argument n’est spécifié c’est le listener courant qui sera lancé. Si aucun listener courant n’est spécifié, c’est le listener nommé LISTENER qui sera lancé. LSNRCTL> START [ listener_name] or $ lsnrctl start [ listener_name] 3.10.2. La commande STOP La commande STOP permet d’arrêter un listener. Le listener en cours de fonctionnement peut ainsi être stoppé proprement. Si un mot de passe est configuré, la commande SET PASSWORD devra être utilisée avant la commande STOP. Le mot de passe peut être configuré grâce au prompt LSNRCTL ; il peut être configuré avec le système en ligne de commande. Il est conseillé d’envoyer un message d’alerte à tous les utilisateurs du réseau avant de stopper le listener. LSNRCTL> STOP [ listener_name] or $ lsnrctl stop [ listener_name] 3.10.3. Autres commandes Command CHANGE_PASSWORD EXIT HELP QUIT RELOAD SAVE_CONFIG SERVICES Description Change dynamiquement le mot de passe du listener Quitte l’outil LSNRCTL Affiche la liste de toutes les commandes utilisables sur l’outil LSNRCTL Fournit les fonctionnalités de la commande EXIT Eteint tout sauf le processus du listener puis relit le fichier listener.ora. Cette commande est utilisée afin d’ajouter ou de changer des services sans arrêter complètement le listener. Crée une sauvegarde du fichier de configuration du listener et met à jour le fichier listener.ora. Affiche des informations concernant les services écoutés par le listener. http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 SET PARAMETER SHOW PARAMETER 28 / 48 Cette commande configure un paramètre du listener Cette commande affiche la valeur d’un paramètre du listener 3.10.4. Les commandes SET et SHOW La commande SET sert à modifier les paramètres du Listener Control Utility. La commande SHOW est utilisée pour afficher les paramètres du listener. Les syntaxes sont les suivantes : LSNRCTL> SET trc_level ADMIN LSNRCTL> SHOW connect_timeout Les commandes SHOW correspondent aux commandes SET, mis à part SET PASSWORD Command SET CONNECT_TIMEOUT SET CURRENT_LISTENER SET LOG_DIRECTORY SET LOG_FILE SET LOG_STATUS SET PASSWORD SET SAVE_CONFIG_ON_STOP SET STARTUP_WAITTIME SET TRC_DIRECTORY SET TRC_FILE SET TRC_LEVEL Description Détermine la durée d’attente d’une connexion valide après qu’une connexion ait débuté Configure ou affiche les paramètres lorsque plusieurs listener sont utilisés Spécifie un répertoire de log autre que le répertoire par défaut. Permet également d’afficher le répertoire de log par défaut. Spécifie un nom de fichier de log, différent du nom par défaut. Active ou désactive le log du listener Change le mot de passe envoyé par l’outil LSNRCTL au processus du listener. Sauvegarde tout changement effectué par la commande SET avant la fermeture du listener. Spécifie le temps d’attente avant que le listener ne réponde à une commande START. Spécifie un répertoire autre que celui par défaut pour les fichiers de trace. Peut être utilisée afin d’afficher le répertoire de trace par défaut. Spécifie un nom de fichier de trace autre que le nom par défaut. Active le traçage du listener. http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 29 / 48 4. Configuration coté client des services Oracle Net 4.1. Le Host Naming 4.1.1. Méthodes de nommage Voici les intérêts de la méthode Host Naming : - Nécessite une configuration minimale de l’utilisateur. L’utilisateur a uniquement besoin de fournir un nom d’hôte afin d’établir une connexion. Elimine le besoin de créer et de maintenir un fichier local de configuration de noms. (tnsnames.ora) Elimine la nécessité de maîtriser les procédures d’administration d’Oracle Names et Oracle Internet Directory. L’Host Naming peut être utilisé afin d’identifier uniquement un SID, les autres SID devront être identifiés par une autre méthode. Plusieurs noms d’hôtes peuvent être attribués à la même adresse IP dans le fichier hosts, l’host naming peut être utilisé afin de se connecter à n’importe laquelle des bases de données identifiées sur le même nœud. 4.1.2. Le Host Naming coté client Si vous utilisez le Host Naming, vous devez avoir TCP/IP installé au niveau de votre machine cliente. De plus, vous devez installer Oracle Net Services et l’adaptateur du protocole TCP/IP. Le nom d’hôte est résolu à travers une traduction de l’adresse IP au travers de DNS, NIS, ou d’un fichier d’hôtes : cela signifie que ce dernier doit être configuré au niveau du client avant d’utiliser le Host Naming. 4.1.1. Le Host Naming coté serveur Si vous utilisez le Hosts Naming, vous devez avoir installé TCP/IP au niveau de votre serveur. De plus, vous devez installer Oracle Net Services et l’adaptateur du protocole TCP/IP. Un listener utilisant le nom par défaut listener doit être démarré sur le port 1521, et si l’enregistrement d’instances n’est pas implémenté, le fichier listerner.ora doit comprendre la ligne suivante : GLOBAL_DBNAME = host name Le nom d’hôte doit correspondre à la chaîne de connexion que vous avez spécifiée au niveau de votre client. Une information complémentaire étant la base de données à laquelle vous souhaitez accéder. 4.1.3. Exemple d’utilisation Si toutes les conditions requises au niveau du client et du serveur sont respectées, vous pouvez lancer la requête de connexion suivante à partir du client : http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 30 / 48 sqlplus system/[email protected] SQL*Plus: Release 9.0.0.0.0 - Beta on Tue Feb 24 3:11:07 2001 (c) Copyright 2000 Oracle Corporation. All rights reserved. Connected to: Oracle9i Enterprise Edition Release 9.0.0.0.0 - Beta SQL> 4.2. Choix de la méthode du Host Naming Oracle Net Configuration Assistant peut être utilisé afin de choisir la méthode Host Naming la plus appropriée. Au niveau du prompt, entrez NETCA et sélectionnez Naming Methods Configuration. Cliquez ensuite sur le bouton Next. Assurez-vous que le nom d’hôte est bien spécifié sur la fenêtre. http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 31 / 48 Si d’autres méthodes sont choisies, assurez-vous que le nom d’hôte apparaisse au début. Cliquez ensuite sur Finish. Les changements seront inscrits dans le fichier sqlnet.ora : # SQLNET.ORA Network Configuration File: /u03/ora9i/rel12/network/admin/sqlnet.ora # Generated by Oracle configuration tools. NAMES.DEFAULT_DOMAIN = us.oracle.com NAMES.DIRECTORY_PATH= (HOSTNAME) 4.2. Local Naming 4.2.1. Avantages du Local Naming - Fournit une méthode relativement simple pour résoudre des adresses de noms de service. Résolutions de noms de service à travers des réseaux de différents protocoles. Peut facilement être configuré à l'aide d'un outil graphique de configuration. La Local Naming, nécessite que les noms de services soient stockés dans le fichier tsnnames.ora. Il n’est pas recommandé que ce contenu soit édité à la main. 4.3. Oracle Net Configuration Assistant 4.3.1. Démarrage d’Oracle Net Configuration Assistant A partir d’un prompt, entrez la commande suivante : $ netca Sélectionnez la méthode de configuration puis cliquez sur le bouton Next. http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 4.3.2. 32 / 48 Configuration du Local Naming Les méthodes de nommage accessibles apparaissent dans la partie gauche de la fenêtre. Les méthodes sélectionnées apparaissent dans la partie droite de la fenêtre. Local, Host Name et Oracle Names sont présélectionnés par défaut. Si pour une raison quelconque, Local n’est pas sélectionné, vous devez le sélectionner à partir de la partie gauche de la fenêtre puis cliquer sur la flèche droite afin de le placer dans la partie listant les méthodes sélectionnées. Les informations seront alors inscrites dans le fichier sqlnet.ora : # SQLNET.ORA Network Configuration File: /u03/ora9i/rel12/network/admin/sqlnet.ora # Generated by Oracle configuration tools. NAMES.DEFAULT_DOMAIN = us.oracle.com NAMES.DIRECTORY_PATH = (LOCAL , HOSTNAME) http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 4.4. 4.4.1. 33 / 48 Les Nom de services Configuration du Local Net Service Names Apres avoir sélectionné Local comme étant la méthode de nommage, les noms de service peuvent être configurés en cliquant sur le bouton Local Net Service Name Configuration, à partir de Oracle Net Services Configuration Assistant. 4.4.2. Configurations des noms de services Vous pouvez utiliser la fenêtre suivante afin de créer, reconfigurer, supprimer, renommer ou tester un nom de service. Dans l’exemple qui suit, nous choisissons d’ajouter un nom de service : http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 4.4.3. 34 / 48 Spécification de la version de la base de données Indiquez si la version de la base de données ou du service est Oracle8i ou antérieure. Des versions précédentes d'Oracle exigent une configuration supplémentaire du côté du listener alors que les bases de données 9i ou 8i et les services n'en ont pas besoin. 4.4.4. Spécification du nom de service de la base de données Si l’on utilise des bases de données Oracle 9i ou Oracle 8i, vous devez spécifier un nom de service pour la base de données en question. http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 4.4.5. 35 / 48 Sélection du protocole réseau Le protocole réseau utilisé par la connexion doit maintenant être spécifié. Les protocoles proposés lors de la configuration sont uniquement ceux ayant été préalablement installés ; ceux ayant été désinstallés ne sont pas proposés par l’assistant de configuration. Nom d’hôte et port du LISTENER 4.5. Configuration du nom d’hôte et du LISTENER 4.5.1. Nom d’hôte Vous devez entrez le nom complet de la machine sur laquelle la base de données avec laquelle vous souhaitez communiquer est installée. Port du LISTENER Vous devez entrer le numéro du port sur lequel le LISTENER écoutera. Par défaut, l’assistant de configuration spécifie le port 1521. http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 4.6. 4.6.1. 36 / 48 Test de la connexion Test de la connexion Les informations de connexion préalablement entrées peuvent désormais être testées. Pour cela, il suffit de sélectionner « Yes, perform a test » puis de cliquer sur le bouton « Finish ». http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 4.6.2. 37 / 48 Résultats du test de connexions Si les données entrées sont correctes, le test de connexion s’effectuera avec succès. Dans le cas contraire, une fenêtre listant les erreurs de connexion s’ouvrira. Notez que le login utilisé lors du test de connexion est SCOTT. Ainsi, si cet utilisateur n’existe pas sur votre base de données, vous pouvez spécifier un autre nom d’utilisateur (attention, SCOTT à sa session d’expiré). Si le test de la connexion est un succès, cliquez sur le bouton « Next ». (Ne cliquez pas sur « Cancel » car à cette étape, les informations de connexion ne sont pas encore sauvegardées.) 4.7. 4.7.1. NET SERVICE Choix du nom du NET SERVICE Entrez un nom pour le NET SERVICE, L’assistant de configuration vous propose d’utiliser le nom de la base de données en tant que nom pour le NET SERVICE. Cliquez ensuite sur « Next ». http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 4.7.2. 38 / 48 Sauvegarde du nom du NET SERVICE Une fois le nom du NET SERVICE choisi et validé, sélectionnez « No » afin de spécifier à l’assistant de configuration que vous ne voulez pas configurer d’autres noms de NET SERVICE. Une fois la configuration terminée, les informations sont sauvegardées dans le fichier TNSNAMES.ora situé dans le répertoire suivant : $ORACLE_HOME/network/admin 4.8. Le fichier TNSNAMES.ora 4.8.1. Description du fichier TNSNAMES.ora http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 39 / 48 Le fichier TNSNAMES.ora est utilisé afin de stocker les informations concernant les noms de services réseaux. Le chemin par défaut de ce fichier est le suivant : $ORACLE_HOME/NETWORK/Admin Directory. Les informations contenues dans ce fichier sont les suivantes : Paramètres MY_SERVICE.US . … DESCRIPTION ADDRESS PROTOCOL HOST PORT CONNECT_DATA 4.9. 4.9.1. Descriptions Nom du NET SERVICE et nom du domaine Mot-clé pour décrire le descripteur de connexion. Les descriptions sont toujours indiquées la même manière. Mot clé pour la spécification de l’adresse. Si plusieurs adresses sont spécifiées, il faut utiliser le mot clé ADDRESS_LIST Spécifie le protocole utilisé Spécifie le nom d'hôte ou l'adresse ip du serveur. Peut différer pour un autre protocole. Spécifie le port utilisé par le LISTENER Spécifie la base de données à laquelle on souhaite se connecter. Le fichier SQLNET.ora Description du fichier SQLNET.ora http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 40 / 48 Le fichier SQLNET.ora contrôle le comportement des services proposés par ORACLE NET. Le chemin par défaut du fichier SQLNET.ora est $ORACLE_HOME/network/admin sous UNIX et %ORACLE_HOME%/network/admin sous NT. 4.10. Dépannage coté client Voici un exemple de problèmes pouvant survenir au niveau du client, ainsi que les méthodes à suivre afin de les résoudre. Erreur : ORA-12154: “TNS:could not resolve service name” Causes: Les services ORACLE NET ne peuvent pas localiser le descripteur de relais indiqué dans le fichier de configuration de tnsnames.ora. Solutions: Vérifier l’existence du fichier tnsnames.ora ainsi que son accessibilité. Vérifier que le fichier tnsnames.ora se situe bien dans le chemin spécifié dans la variable d’environnement TNS_ADMIN. Vérifier au niveau du fichier tnsnames.ora que la chaîne de connexion est correcte. Vérifier également qu’aucune erreur de syntaxe ne soit présente dans le fichier. Vérifier qu’il n’existe pas de copie du fichier sqlnet.ora Si vous vous connectez à partir d’une fenêtre de connexion, vérifiez bien que vous n’avez pas placé le symbole @ avant le nom de service. http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 41 / 48 5. Utilisation et configuration du serveur Oracle partagé 5.1. Les configurations des serveurs Oracle crée des processus serveurs pour traiter les demandes des processus utilisateurs reliés à une instance. Un processus serveur peut être soit processus serveur dédié (un processus serveur correspond à un processus utilisateur), soit un processus du serveur partagé (un processus de serveur peut manipuler plusieurs processus utilisateurs). Les processus partagés de serveur sont une partie de l'architecture Oracle Shared Server. 5.1.1. Processus du serveur dédié • Le processus utilisateur et le processus serveur sont séparés. • Chaque processus utilisateur a son propre processus serveur. • Les processus utilisateurs et serveurs peuvent fonctionner sur différentes machines pour tirer profit du traitement distribué. • Même lorsque le processus utilisateur ne fait pas de transactions, le serveur dédié existe mais travaille au ralenti. L'interface du programme dépend de la localisation respective de l'utilisateur et des processus serveurs. S'ils sont sur la même machine, le mécanisme de la communication entre les processus du système d'exploitation (IPC) est utilisé pour l'interface de programmation entre les processus. http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 42 / 48 5.1.2. Serveur Oracle partagé La configuration du serveur partagé permet aux entités suivantes : serveurs partagés, serveurs dédiés, utilisateurs et serveurs combinés d’exister en même temps dans la même instance. • Par exemple, nombre d’entreprises utilisent des logiciels de saisie de données dans lesquels l’utilisateur entre des informations. Avec ce type d’application, le serveur pourrait être inactif jusqu'à 90% du temps de connexion de l’utilisateur (Le serveur n’est réellement actif uniquement lorsqu’un utilisateur valide ses enregistrements). • Le serveur partagé améliore les performances du serveur, parce que n'importe quel serveur peut traiter une demande entrante, plutôt qu'attendre qu’un process serveur spécifique traite le travail demandé. • Pour un même équipement, vous pouvez avoir beaucoup plus d'utilisateurs en serveur partagé qu’en serveur dédié. Ceci parce que les utilisateurs dans cette architecture partagent les processus, et ainsi, peu de ressources serveurs sont requises. Dans une architecture de serveur partagé, les processus clients se connectent à un dispatcher. Le processus PMON enregistre l'endroit et relie les dispatchers avec le listener, permettant au listener d'expédier les demandes au dispatcher le moins utilisé. L'enregistrement de services n'exige pas de configuration dans le listener.ora. Un dispatcher peut supporter simultanément plusieurs connexions des clients. Chaque connexion du client est liée à un circuit virtuel. Un circuit virtuel correspond à une partie de la mémoire partagée employée par le dispatcher pour les demandes de connexion des clients à la base. Le dispatcher place le circuit virtuel dans une file d'attente commune lorsqu’une demande arrive. Un serveur partagé prend le circuit virtuel de la file d'attente commune, répond à la requête, et libère le circuit virtuel avant d'essayer de rechercher un autre circuit virtuel dans la file d'attente commune. Cette approche permet à un petit ensemble des processus serveurs de servir un grand nombre de clients. Note technique : http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 43 / 48 Si le serveur Oracle partagé se trouve sur un serveur sous Windows NT, les dispatchers ne peuvent employer que le protocole TCP/IP. 5.2. Les avantages du Serveur Oracle Partagé L'architecture du serveur partagé réduit l'utilisation de la mémoire en réduisant le nombre de processus serveurs exigés. Par exemple, si 100 utilisateurs utilisent simultanément des serveurs dédiés, 100 processus sont exécutés. Avec les serveurs partagés, vous pouvez avoir besoin de seulement 10 processus pour 100 utilisateurs, réduisant de manière significative l'utilisation des ressources du système. Cette architecture demande l’installation d’Oracle Net Services. Les processus utilisateurs visant les serveurs partagés doivent se connecter par l’intermédiaire d’Oracle Net Services, même si les processus utilisateurs sont implantés sur la même machine que l’instance Oracle. Note technique : Il y a des exceptions telles que la technologie NT, dans laquelle l'exécution peut s'améliorer en utilisant la configuration d’Oracle Shared Server due à la nature asynchrone de l'architecture partagée du serveur. Pour envoyer une requête vers un serveur dédié, la clause SERVER=DEDICATED doit être incluse dans le fichier de tnsnames.ora: TEST.world = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = stc-sun02) (PORT = 1521) ) (CONNECT_DATA = (SERVICE_NAME = TEST.us.oracle.com) (SERVER=DEDICATED))) 5.3. La connexion 1. Le processus listener attend toutes les demandes de connexion depuis des processus utilisateurs. Lorsqu’un processus demande une connexion, le listener relie le processus utilisateur à un dispatcher (selon la charge du dispatcher) ou lui assigne un processus du serveur dédié. http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 44 / 48 2. Si la configuration permet au processus utilisateur de se connecter à un dispatcher, le listener donne au processus utilisateur l'adresse du dispatcher. Si le processus utilisateur demande un serveur dédié, le listener relie le processus utilisateur à un processus du serveur. 3. Une fois que la connexion est établie, soit à un dispatcher soit à un serveur dédié, la connexion est maintenue pour toute la durée de la session. Note technique Si la connexion est établie à travers un réseau, le dispatcher choisi par le listener doit avoir le même protocole de connexion que le réseau. 5.4. Traitement d’une requête 5.4.1. Comment la requête est-elle traitée ? 1. 2. 3. 4. 5. 6. Un utilisateur envoie une demande à son dispatcher. Le dispatcher place la demande dans la file d'attente de la SGA. Un serveur partagé prend la demande de la file d'attente et la traite. Le serveur partagé place la réponse dans la file d'attente du dispatcher. La réponse est enlevée de la file d’attente du dispatcher. Le dispatcher renvoie la réponse à l'utilisateur. Une fois que la demande est traitée, le processus du serveur partagé est libéré et alors disponible pour traiter un autre appel situé dans la file d'attente. 5.4.2. La file d'attente (Request Queue) • Une requête est partagée par tous les dispatchers. • Le serveur partagé surveille la file d'attente pour des nouvelles demandes. • Les requêtes sont traitées selon la base FIFO (first-in, first-out). • Le serveur partagé place toutes les demandes exécutées dans la file d’attente du dispatcher. • Chaque dispatcher possède sa propre file d'attente dans la SGA. • Chaque dispatcher renvoie des demandes réalisées au processus utilisateur. http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 45 / 48 • Les utilisateurs sont connectés au même dispatcher pour toute la durée d'une session. 5.5. SGA et PGA Le contenu de la SGA et de la PGA est diffèrent lorsque des serveurs dédiés ou des serveurs partagés sont utilisés. • Le code de toutes les requêtes SQL est stocké dans la SGA. • Le curseur contient des valeurs d'exécution de la mémoire pour le rapport SQL, telles que des lignes recherchées. • Les données sur la session utilisateurs incluent l'information de sécurité et l'utilisation des ressources. • L'espace de la pile (stack) contient des variables locales au processus. Note technique : Pour supporter plusieurs utilisateurs, il faut augmenter le paramètre LARGE_POOL_SIZE. 5.6. Configuration du serveur Oracle partagé Les paramètres indispensables à la configuration sont : - DISPATCHERS - SHARED_SERVERS Et les paramètres optionnels sont : - MAX_DISPATCHERS - MAX_SHARED_SERVERS - CIRCUITS - SHARED_SERVER_SESSIONS http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 46 / 48 5.6.1. Les dispatchers L’administrateur utilise le paramètre « DISPATCHERS » pour activer différentes options pour chaque dispatcher. DISPATCHERS = “(PROTOCOL=TCP)(DISPATCHERS=3)” Attribut PROTOCOL (PRO ou PROT) ADDRESS (ADD ou ADDR) DESCRIPTION (DES ou DESC) DISPATCHERS (DIS ou DISP) SESSIONS (SES ou SESS) LISTENER (LIS ou LIST) CONNECTIONS (CON ou CONN) Description Indique le protocole du réseau Indique l'adresse de protocole du réseau sur lequel les dispatchers écoutent Indique la description du réseau Le nombre initial des dispatchers (par défaut 1) Le nombre maximum des sessions pour chaque dispatcher (le nombre par défaut est spécifié par le système d’exploitation) Indique l’alias pour les listeners Indique le nombre maximum de connexions réseaux 5.6.2. SHARED_SERVERS Ce paramètre spécifie le nombre de processus serveurs que vous voulez créer lors de la mise en route de l’instance. Le nombre approprié de processus serveurs partagés pour un système de base de données dépend du nombre d’utilisateurs connectés et du nombre de traitements que chaque utilisateur exige. • Si chaque utilisateur fait des demandes peu fréquemment sur une certaine période de temps, alors chaque processus associé à l'utilisateur est inactif durant un gros pourcentage de temps. Dans ce cas, un processus du serveur partagé peut servir de 10 à 20 utilisateurs. • Si chaque utilisateur a besoin d'une quantité significative de traitement, un nombre plus élevé de processus est nécessaire pour manipuler l’ensemble des demandes. Si vous voulez que la base de données utilise des serveurs partagés, vous devez placer le paramètre de SHARED_SERVERS au moins à 1. Si vous omettez le paramètre ou le placez à 0, la base de données ne mettra en marche aucun serveur partagé. Après avoir démarré une instance, vous pouvez changer le nombre minimum de processus en utilisant la commande ALTER SYSTEM. ALTER SYSTEM SET SHARED_SERVERS = 2 5.6.3. MAX_DISPATCHERS MAX_DISPATCHERS indique le nombre maximum des processus de dispatcher qui peuvent fonctionner simultanément. La mise en route des dispatchers peut être observée dans les vues V$CIRCUITS et V$DISPATCHERS. Pour ajouter des dispatchers, il faut utiliser la commande ALTER SYSTEM. http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 47 / 48 ALTER SYSTEM SET DISPATCHERS=’(PROTOCOL=TCP)(DISPATCHERS=3)’; 5.6.4. MAX_SHARED_SERVERS MAX_SHARED_SERVERS indique le nombre maximum permis de processus en fonctionnement simultané. Pour voir le nombre de V$SHARED_SERVER_MONITOR. serveurs démarrés, il faut interroger la vue 5.6.5. CIRCUITS Les circuits virtuels sont des connexions à la base de données. Le paramètre CIRCUITS spécifie le nombre total de circuits virtuels disponibles pour les sessions. Ce paramètre est important car il contribue à la définition de la SGA d'une instance. 5.6.6. SHARED_SERVER_SESSIONS Ce paramètre contrôle le nombre total de sessions du serveur partagé ouvertes à un point quelconque à temps. 5.6.7. PARAMETRES RELATIFS • LARGE_POOL_SIZE indique la taille en octets du pool. • SESSIONS indique le nombre maximum de sessions qui peuvent être créées dans le système. 5.7. Vérification de l’installation Lorsque vous utilisez Oracle Shared Server, vous devez tout d'abord démarrer le listener, dans ce cas là, les dispatchers seront immédiatement associés au listener. Pour vérifier que l'enregistrement a eu lieu, utilisez la commande suivante: $ lsnrctl services listener01 Service "TEST" has 1 instance(s). Instance "TEST", status READY, has 4 handler(s) for this service... Handler(s): "DISPATCHER" established:1 refused:0 current:1 max:1022 state:ready D002 <machine: stc-sun02.us.oracle.com, pid: 8707> (ADDRESS=(PROTOCOL=tcp)(HOST=stc-sun02.us.oracle.com)(PORT=35231)) "DISPATCHER" established:1 refused:0 current:0 max:1022 state:ready D001 <machine: stc-sun02.us.oracle.com, pid: 8705> (ADDRESS=(PROTOCOL=tcp)(HOST=stc-sun02.us.oracle.com)(PORT=35230)) "DISPATCHER" established:1 refused:0 current:0 max:1022 state:ready D000 <machine: stc-sun02.us.oracle.com, pid: 8703> (ADDRESS=(PROTOCOL=tcp)(HOST=stc-sun02.us.oracle.com)(PORT=35229)) "DEDICATED" established:0 refused:0 Pour vérifier vos connexions, utilisez la vue V$CIRCUIT. Ceci vérifie également que le listener équilibre les connexions entrantes. http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs DBA2 - Module n° 1 48 / 48 SQL>select dispatcher, circuit, server, status from v$circuit; DISPATCH CIRCUIT SERVER STATUS -------- -------- -------- ---------------82890064 8257BA64 8288F6A4 NORMAL 8288F9E4 8257BBB0 00 NORMAL 8288FD24 8257BCFC 00 NORMAL 5.8. Les vues du dictionnaire de données V$CIRCUIT V$SHARED_SERVER V$DISPATCHER V$SHARED_SERVER_MONITOR V$QUEUE V$SESSION Cette vue contient des informations à propos des circuits virtuels, qui sont les connexions des utilisateurs sur les dispatchers et les serveurs Cette vue contient des informations sur les processus du serveur partagé Cette vue contient des informations sur les processus des dispatchers Cette vue contient des informations sur le tuning des processus du serveur partagé Cette vue contient des informations sur les demandes et les files d’attente Cette vue montre les informations pour chaque session en cours http://www.labo-oracle.com Ce document est la propriété de Supinfo et est soumis aux règles de droits d’auteurs