Mysql
 sql >> Base de données >  >> RDS >> Mysql

Utilisation de MySQL avec Oracle Heterogeneous Services

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.

  1. 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.

  2. 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 ou SHLIB_PATH selon la plateforme et l'éditeur de liens).

  3. Créez un fichier d'initialisation DG4ODBC. Par exemple :
    cd $ORACLE_HOME/hs/admin
    cp initdg4odbc.ora initmysql.ora
                            
  4. 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 le HS_FDS_CONNECT_INFO valeur du paramètre. Par exemple :

    HS_FDS_CONNECT_INFO = "mysql_odbc_dsn;IgnoreAuth=Yes"
    
  5. Ajoutez cette ligne pour augmenter la compatibilité Oracle/MySQL :
    HS_FDS_QUOTE_IDENTIFIER = FALSE
    
  6. 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/ .

  7. 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)
     )
                            
  8. Démarrez (ou redémarrez) l'écouteur Oracle :
    cd $ORACLE_HOME/bin
    ./lsnrctl stop
    ./lsnrctl start
                            
  9. Connectez-vous à votre base de données Oracle dans SQL*Plus.
  10. 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';