oracle11g创建与mysql的dblink

时间:2022-07-11 04:36:25
1.配置odbc数据源,测试成功。数据源名字: mysqltest

2、新建文件 initmysqltest.ora
HS_FDS_CONNECT_INFO = mysqltest
HS_FDS_TRACE_LEVEL = OFF

3、监听
# listener.ora Network Configuration File: G:\app\liyongfei\product\11.2.0\dbhome_2\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = G:\app\liyongfei\product\11.2.0\dbhome_2)
      (PROGRAM = extproc)
      (ENVS = "EXTPROC_DLLS=ONLY:G:\app\liyongfei\product\11.2.0\dbhome_2\bin\oraclr11.dll")
    )
     (SID_DESC =
(SID_NAME = mysqltest)
(ORACLE_HOME = G:\app\liyongfei\product\11.2.0\dbhome_2)
(PROGRAM = dg4odbc)
)
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = liyongfei-PC)(PORT = 1521))
    )
  )

ADR_BASE_LISTENER = G:\app\liyongfei


4、 tnsnames
# tnsnames.ora Network Configuration File: G:\app\liyongfei\product\11.2.0\dbhome_2\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )



ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = liyongfei-PC)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

  MYSQLTEST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SID = mysqltest) 
)
(HS=OK)
)



然后重启监听再登陆就提示TNS:无法解析指定的连接标识符
网上也有出这个问题的,看看下面的评论也没解决问题。这是什么原因呢,求解答

3 个解决方案

#1


没搞明白你这是要怎么从oracle连接mysql,这两种库是异构库,难道你想通过odbc?
从你的配置看,只是配置了一个实例,然后是监听和tns,这些也仅仅是oracle实例和数据库,和mysql怎么发生联系呢?
异构库访问,需要有个中间映射层,比如:oracle的通用连接,透明网关,开源的fdw,甚至ETL 工具等,oracle和sql库间,也可以通过sql的db link实现,这里,最好通过fdw试试。

#2


目前在做一个统计,数据一部分在ORACLE里,一部分在MYSQL里。取出两个库里面的数据,在程序里面计算。太慢了。然后从网上看到有说可以用上面的方法可以做一个数据连接。不过没成功。

#3


之前遇到过易购库数据互通,后来采取的方案是接口服务调用了。

#1


没搞明白你这是要怎么从oracle连接mysql,这两种库是异构库,难道你想通过odbc?
从你的配置看,只是配置了一个实例,然后是监听和tns,这些也仅仅是oracle实例和数据库,和mysql怎么发生联系呢?
异构库访问,需要有个中间映射层,比如:oracle的通用连接,透明网关,开源的fdw,甚至ETL 工具等,oracle和sql库间,也可以通过sql的db link实现,这里,最好通过fdw试试。

#2


目前在做一个统计,数据一部分在ORACLE里,一部分在MYSQL里。取出两个库里面的数据,在程序里面计算。太慢了。然后从网上看到有说可以用上面的方法可以做一个数据连接。不过没成功。

#3


之前遇到过易购库数据互通,后来采取的方案是接口服务调用了。