Les passerelles de base de données Oracle permettent aux applications client Oracle d'accéder à des bases de données non Oracle. Par exemple, Oracle SQL Developer et MySQL. Les passerelles de base de données Oracle et les services hétérogènes (intégrés à Oracle) présentent l'apparence d'une seule base de données Oracle locale, même si les données peuvent se trouver dans Oracle, MySQL, SQL Server, etc.
La passerelle de base de données Oracle pour ODBC (DG4ODBC) intègre de manière transparente les bases de données ODBC avec Oracle. ODBC fournit une interface uniforme entre SGBD et isole les applications de la base de données en utilisant un middleware connu sous le nom de pilote ODBC pour traduire les requêtes de l'application en quelque chose que la base de données comprend. Parce qu'il utilise un pilote ODBC pour lier Oracle à la base de données cible, DG4ODBC n'est pas lié à une base de données spécifique. Cette architecture flexible permet à Oracle de coexister avec n'importe quelle base de données pour laquelle un pilote ODBC est disponible.
En utilisant DG4ODBC, vous pouvez immédiatement utiliser vos applications Oracle, à la fois d'Oracle et de tiers, pour accéder aux informations d'une base de données ODBC comme s'il s'agissait d'une base de données Oracle. Les applications n'ont pas besoin d'être recodées ou reconfigurées.
DG4ODBC fait partie d'Oracle 11g et versions ultérieures, sans frais supplémentaires, et peut être utilisé avec Oracle 10g et ensuite. Pour intégrer des bases de données ODBC avec des versions antérieures d'Oracle, consultez notre tutoriel HSODBC.
Étant donné que DG4ODBC peut connecter Oracle à n'importe quelle base de données pour laquelle un pilote ODBC est disponible, Oracle se réfère à DG4ODBC en tant qu'agent de connectivité générique.
Vous pouvez utiliser un pilote Easysoft ODBC avec DG4ODBC pour connecter Oracle à MySQL. Les étapes de ce guide concernent MySQL et Oracle sous Linux et UNIX.
- Vérifiez si votre version de DG4ODBC est 32 bits ou 64 bits :
cd $ORACLE_HOME/bin file dg4odbc
Si le
file
la sortie de la commande contient "ELF 64-bit LSB executable", ou quelque chose de similaire, DG4ODBC est 64-bit, téléchargez le pilote MySQL ODBC 64-bit pour votre plate-forme.Sinon, téléchargez le pilote ODBC MySQL 32 bits pour votre plate-forme.
- Installez, autorisez et testez le pilote MYSQL ODBC sur la machine sur laquelle DG4ODBC est installé.
Pour obtenir des instructions d'installation, consultez la documentation du pilote MySQL ODBC. Reportez-vous à la documentation pour voir quelles variables d'environnement vous devez définir (
LD_LIBRARY_PATH
,LIBPATH
,LD_RUN_PATH
ouSHLIB_PATH
selon la plateforme et l'éditeur de liens). - Créez un fichier d'initialisation DG4ODBC. Par exemple :
cd $ORACLE_HOME/hs/admin cp initdg4odbc.ora initmysql.ora
- Assurez-vous que ces paramètres et valeurs sont présents dans votre fichier init :
HS_FDS_CONNECT_INFO = mysql_odbc_dsn HS_FDS_SHAREABLE_NAME = /usr/local/easysoft/unixODBC/lib/libodbc.so
Remplacez mysql_odbc_dsn avec le nom d'une source de données de pilote ODBC MySQL qui se connecte à la base de données MySQL cible.
Si votre serveur MySQL ne le fait pas vous demander de fournir un nom d'utilisateur et un mot de passe, incluez
IgnoreAuth=Yes
dans leHS_FDS_CONNECT_INFO
valeur du paramètre. Par exemple :HS_FDS_CONNECT_INFO = "mysql_odbc_dsn;IgnoreAuth=Yes"
- Ajoutez cette ligne pour augmenter la compatibilité Oracle/MySQL :
HS_FDS_QUOTE_IDENTIFIER = FALSE
- Ajouter une entrée à
$ORACLE_HOME/network/admin/listener.ora
qui crée un SID_NAME pour DG4ODBC. Par exemple :SID_LIST_LISTENER = (SID_LIST = (SID_DESC= (SID_NAME=mysql) (ORACLE_HOME=oracle_home_directory) (PROGRAM=dg4odbc) (ENVS=LD_LIBRARY_PATH = /usr/local/easysoft/unixODBC/lib: /usr/local/easysoft/lib) ) )
Remplacez oracle_home_directory avec la valeur de
$ORACLE_HOME
. Par exemple,/u01/app/oracle/product/11.2.0/dbhome_1/
. - Ajouter une entrée DG4ODBC à
$ORACLE_HOME/network/admin/tnsnames.ora
qui spécifie le SID_NAME créé à l'étape précédente. Par exemple :mysql_connection= (DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=oracle_host)(PORT=1521)) (CONNECT_DATA= (SID=mysql)) (HS=OK) )
- Démarrez (ou redémarrez) l'écouteur Oracle :
cd $ORACLE_HOME/bin ./lsnrctl stop ./lsnrctl start
- Connectez-vous à votre base de données Oracle dans SQL*Plus.
- Dans SQL*Plus, créez un lien de base de données pour la base de données MySQL cible. Par exemple :
CREATE PUBLIC DATABASE LINK mysqllink CONNECT TO "dbuser" IDENTIFIED BY "dbpassword" using 'mysql_connection';
Remplacer dbuser et dbpassword avec un nom d'utilisateur et un mot de passe valides pour la base de données MySQL cible.
– Ou, si votre serveur MySQL ne le fait pas vous demande de fournir un nom d'utilisateur et un mot de passe :
CREATE PUBLIC DATABASE LINK mysqllink USING 'mysql';