|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() |
Bonjour
j'utilise toad pour gerer ma base de donnée sous oracle. J'aimerai pouvoir me connecter sur une table AS400 pour avoir la possibilités d'avoir toutes les données attaquables par cet outils. J'ai paramétré une source de donnée odbc avec les donnees de l'as400 que j'ai appelé ficlgtr mais je n'arrive pas à faire le lien sur oracle et donc à la voir sur toad. Desolé de paraitre si nul mais merci de votre aide |
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
|
|
|
00
|
|
|
#3 |
![]() ![]() |
Utilisez-vous la Gateway Oracle pour AS400 ou tentez-vous une connexion directement de Toad à l'AS400 via ODBC ?
Il ne me semble pas que cela fonctionne si aisément via Toad... ce n'est pas Access
__________________
Sr DBA Oracle / Sybase / MS-SQL / DB2 / Informix / Postgresql Administrateur SAP Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums ! |
|
|
00
|
|
|
#4 | |||||||||||
![]() ![]() Gilles ROUARDAdministrateur de base de données Inscription : mars 2003 Messages : 220 ![]() |
Bonjour,
J'ai justement une base de données 10gR2 sous Windows qui se connecte via DB Link à une base distante DB2, via l'ODBC. Je viens de migrer cette base de données : - en 11gR2 (11.2.0.2.0) - avec l'option RAC One Node et ASM - sur de nouveaux serveurs IBM tournant sous Red Hat Enterprise Linux v5.6 Tout d'abord, pour votre information, jusqu'en 10g, la connexion par ODBC s'appelait HS (Heterogeneous Services), et depuis la 11g, a été renommée en Database Gateway for ODBC. Cela ne change pas grand chose, sauf que le Listener appellera un exécutable qui s'appelle HSODBC jusqu'en 10g, et DG4ODBC (Database Gateway For ODBC) en 11g. Citation:
J'ai d'ailleurs testé ce Datasource via l'utilitaire isql. Votre but est donc de vous connecter depuis Toad sur votre base Oracle, et de là requêter sur DB2 via un DB Link que j'appelerai DB2, avec une requête du style : Pour se faire, il y a 4 étapes à suivre : 1) créer un Database Link sur votre base Oracle 2) ajouter une entrée dans votre TNSNAMES.ORA 3) ajouter un service gérant l'appel au composant HS au niveau du LISTENER.ORA 4) créer un fichier de configuration qui permettra à l'exécutable HS de trouver votre Datasource et de se connecter à votre base DB2. 1) Sur votre base Oracle, il faut créer le DB Link (public ou non) DB2, utilisant la chaîne de connexion DB2 : Code :
CREATE DATABASE LINK DB2 CONNECT TO <ID> IDENTIFIED BY <password> USING 'DB2' ; 2) Il faut maintenant définir cette chaîne de connexion DB2 dans le fichier TNSNAMES.ORA de votre serveur Oracle : Code :
Noter ici HS=OK qui indique que notre base va se connecter via Heterogeneous Services. J'ai aussi indiqué DB2 comme SID, c'est-à-dire comme service que l'on va demander au Listener. Il faut donc maintenant configurer le Listener pour qu'il gère un service DB2. 3) Modifier maintenant votre fichier LISTENER.ORA (toujours sur votre serveur Oracle), en rajoutant la section suivante (je suppose que votre Listener s'appelle LISTENER) : Code :
Sinon il doit valoir hsodbc. Vous trouverez ce programme sous le répertoire BIN de votre $Oracle_Home. A noter que sous Windows, même si les programmes portent une extension .exe à la fin, il ne faut pas spécifier ce .exe dans le LISTENER.ORA Et pour finir, j'ai spécifié DB2 comme SID_NAME. Cela veut dire qu'il va falloir créer un fichier qui s'appelera forcément initDB2.ora et qu'il faudra stocker sous $Oracle_Home/hs/admin Ce fichier est en fait le fichier de configuration de l'exécutable HS qui permet d'appeler le Datasource. 4) Création du fichier initDB2.ora sous $ORACLE_HOME/hs/admin : Voici un exemple sous Windows avec une base 10gR2. Code :
Voici le même fichier de configuration sous Linux avec ma base 11gR2 : Code :
1) HS_FDS_SHAREABLE_NAME qui spécifie le chemin et le nom de la librairie pour ODBC. Attention, en 11gR2, l'exécutable DG4ODBC est en 64 bits, et réclame donc un Driver Manager 64 bits (d'ou le chemin lib64) ainsi que le driver iSeries installé en 64 bits. 2) la variable ODBCINI qui spécifie le chemin et le nom du fichier des Datasources. Moi j'ai choisi de faire un Datasource système, c'est-à-dire visible par tous les users Unix. Du coup, il est forcément sous /etc et s'appelle ODBC.INI sous Linux. Voilà, bon courage. Moi j'ai mis la semaine pour comprendre le fonctionnement de Database Gateway, installer le bon driver iSeries, configurer tous les fichiers et faire marcher le bousin. Maintenant, j'ai à mon tour une question : ma configuration marche très bien sur 2 serveurs, où j'ai mis le nom du serveur dans chaque TNSNAMES.ORA. Mais en fait, ces 2 serveurs sont en cluster avec OGI (Oracle Grid Infrastructure), et ma base est en RAC One Node. Comme je le disais, mon DB Link fonctionne bien, même si je m'amuse à déplacer mon instance d'un noeud à un autre au sein de mon cluster, avec la commande RELOCATE. Maintenant, je souhaite indiquer dans les fichiers TNSNAMES.ORA non plus le nom de chaque noeud, mais le nom de mon cluster, pour faire plus propre, et pour passer par le serveur DNS. Et là, mon DB Link ne marche plus. J'ai l'erreur Oracle suivante : Citation:
Citation:
Selon vous, cette configuration peut-elle fonctionner ? J'ai du mal à comprendre pourquoi cela ne fonctionne pas. Dans le 1er cas, en spécifiant le nom du noeud, je sais que je contacte directement le SCAN Listener de mon noeud. Maintenant, en indiquant le nom de mon cluster, je vais passer par notre DNS qui va effectuer la résolution de nom, et fournir une des 3 adresses IP de nos SCAN Listener avec un algorithme de type Round-Robin. Et après, que se passe t-il ? |
|||||||||||
|
|
10
|
Copyright © 2000-2012 - www.developpez.com