Oracle Database Gateways позволяват на клиентските приложения на Oracle да имат достъп до бази данни, различни от Oracle. Например Oracle SQL Developer и MySQL. Oracle Database Gateways и Heterogeneous Services (вградени в Oracle) представят външния вид на единна локална база данни на Oracle, въпреки че данните може да са в Oracle, MySQL, SQL Server и така нататък.
Oracle Database Gateway за ODBC (DG4ODBC) прозрачно интегрира ODBC бази данни с Oracle. ODBC осигурява единен интерфейс между СУБД и изолира приложенията от базата данни, като използва междинен софтуер, известен като ODBC драйвер, за да преведе заявките на приложението в нещо, което базата данни разбира. Тъй като използва ODBC драйвер за свързване на Oracle с целевата база данни, DG4ODBC не е обвързан с конкретна база данни. Тази гъвкава архитектура позволява на Oracle да съществува съвместно с всяка база данни, за която е наличен ODBC драйвер.
Използвайки DG4ODBC, можете незабавно да използвате вашите приложения на Oracle, както от Oracle, така и от трети страни, за достъп до информация в ODBC база данни, сякаш е база данни на Oracle. Приложенията не трябва да бъдат прекодирани или преконфигурирани.
DG4ODBC идва като част от Oracle 11g и по-късно, без допълнителни разходи, и може да се използва с Oracle 10g и по-късно. За да интегрирате ODBC бази данни с по-ранни версии на Oracle, вижте нашия урок за HSODBC.
Тъй като DG4ODBC може да свърже Oracle към всяка база данни, за която е наличен ODBC драйвер, Oracle се позовава на DG4ODBC като общ агент за свързване.
Можете да използвате Easysoft ODBC драйвер с DG4ODBC, за да свържете Oracle към MySQL. Стъпките в това ръководство са за MySQL и Oracle на Linux и UNIX.
- Проверете дали вашата версия на DG4ODBC е 32-битова или 64-битова:
cd $ORACLE_HOME/bin file dg4odbc
Ако
file
изходът на командата съдържа "ELF 64-битов LSB изпълним" или нещо подобно, DG4ODBC е 64-битов, изтеглете 64-битовия MySQL ODBC драйвер за вашата платформа.В противен случай изтеглете 32-битовия MySQL ODBC драйвер за вашата платформа.
- Инсталирайте, лицензирайте и тествайте MYSQL ODBC драйвера на машината, където е инсталиран DG4ODBC.
За инструкции за инсталиране вижте документацията на MySQL ODBC драйвер. Обърнете се към документацията, за да видите кои променливи на средата трябва да зададете (
LD_LIBRARY_PATH
,LIBPATH
,LD_RUN_PATH
илиSHLIB_PATH
в зависимост от платформата и линкера). - Създайте инициализиращ файл DG4ODBC. Например:
cd $ORACLE_HOME/hs/admin cp initdg4odbc.ora initmysql.ora
- Уверете се, че тези параметри и стойности присъстват във вашия init файл:
HS_FDS_CONNECT_INFO = mysql_odbc_dsn HS_FDS_SHAREABLE_NAME = /usr/local/easysoft/unixODBC/lib/libodbc.so
Заменете mysql_odbc_dsn с име на източник на данни на MySQL ODBC драйвер, който се свързва с целевата MySQL база данни.
Ако вашият MySQL сървър не изискват от вас да предоставите потребителско име и парола, включете
IgnoreAuth=Yes
вHS_FDS_CONNECT_INFO
стойност на параметъра. Например:HS_FDS_CONNECT_INFO = "mysql_odbc_dsn;IgnoreAuth=Yes"
- Добавете този ред, за да увеличите съвместимостта с Oracle/MySQL:
HS_FDS_QUOTE_IDENTIFIER = FALSE
- Добавете запис към
$ORACLE_HOME/network/admin/listener.ora
което създава SID_NAME за DG4ODBC. Например: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) ) )
Заменете oracle_home_directory със стойността на
$ORACLE_HOME
. Например/u01/app/oracle/product/11.2.0/dbhome_1/
. - Добавете запис DG4ODBC към
$ORACLE_HOME/network/admin/tnsnames.ora
който посочва SID_NAME, създаден в предишната стъпка. Например:mysql_connection= (DESCRIPTION= (ADDRESS=(PROTOCOL=TCP)(HOST=oracle_host)(PORT=1521)) (CONNECT_DATA= (SID=mysql)) (HS=OK) )
- Стартирайте (или рестартирайте) Oracle Listener:
cd $ORACLE_HOME/bin ./lsnrctl stop ./lsnrctl start
- Свържете се с вашата база данни Oracle в SQL*Plus.
- В SQL*Plus създайте връзка към базата данни за целевата MySQL база данни. Например:
CREATE PUBLIC DATABASE LINK mysqllink CONNECT TO "dbuser" IDENTIFIED BY "dbpassword" using 'mysql_connection';
Заменете dbuser и dbpassword с валидно потребителско име и парола за целевата MySQL база данни.
– Или, ако вашият MySQL сървър не изискват от вас да предоставите потребителско име и парола:
CREATE PUBLIC DATABASE LINK mysqllink USING 'mysql';