`
thomas0988
  • 浏览: 485994 次
  • 性别: Icon_minigender_1
  • 来自: 南阳
社区版块
存档分类
最新评论

Oracle10g通过DBLink访问MySQL示例

 
阅读更多
1, 首先在Oracle所在计算机安装MySQL的Client端软件,并且x86_64和i386版本的都需要安装,以便可以连接MySQL数据库。查看Client安装情况:


复制代码 代码如下:
rpm -qa |grep mysql
mysql-5.0.45-7.el5
mysql-5.0.45-7.el5


得到两条记录,一条是x86_64的,一条是i386的。
如果看到还没有安装mysql客户端软件,则需要安装:


复制代码 代码如下:
yum install mysql
yum install mysql.i386

验证在此Oracle所在计算机是可以连接目标主机MySQL数据库:
复制代码 代码如下:
mysql -h 192.168.1.1 -u root -p mysql


2, 检查Oracle所在计算机是否已安装MySQL ODBC客户端,并且x86_64和i386版本的都需要安装。


复制代码 代码如下:
rpm -qa |grep mysql-connect

如果没有安装mysql-connector-odbc,则用下面命令下载和安装:
下载 mysql-connector-odbc:
复制代码 代码如下:
wget ftp://mirror.switch.ch/pool/3/mirror/centos/5.2/os/i386/CentO S/mysql-connector-odbc-3.51.12-2.2.i386.rpm

安装mysql-connector-odbc:
复制代码 代码如下:
rpm -ivh mysql-connector-odbc-3.51.12-2.2.i386.rpm

得到提示
复制代码 代码如下:
libltdl.so.3 is needed by mysql-connector-odbc-3.51.12-2.2.i386 ,发现需要安装libtool的i386版本,因此通过如下命令安装libtool-ltdl.i386:
yum list *.i386|grep libtool
yum install libtool-ltdl.i386


3, 在Oracle所在计算机编辑/etc/odbc.ini文件,测试ODBC工作


复制代码 代码如下:
vi /etc/odbc.ini


#odbc.ini内容如下


复制代码 代码如下:
[test]
Driver=/usr/lib64/libmyodbc3.so
Description=MySQL
Server=192.168.1.1(MySQL Server IP)
Port=3306
User= (MySQL Username)
UID= (MySQL Username)
Password= (MySQL PWD)
Database= (MySQL Database Name)
Option=3
Socket=

在命令行中执行下列命令,应能够顺利登入MySQL Client窗口,即证明ODBC功能正常:
复制代码 代码如下:
isql -v test
quit


4, 编辑hs配置文件 vi /ora10g/hs/admin/inittest.ora(注意文件名中蓝色部分为odbc.ini中蓝色名称)


复制代码 代码如下:
HS_FDS_CONNECT_INFO = test
HS_FDS_TRACE_LEVEL = on(正式使用后,不需要排错的时候应设为off)
HS_FDS_TRACE_FILE_NAME = test.trc
HS_FDS_SHAREABLE_NAME=/usr/lib/libmyodbc3.so
set ODBCINI=/etc/odbc.ini


5, 编辑Oracle所在计算机的Oracle listener的配置文件,建立一个模拟Oracle Listener的监听方式,为将来建立dblink做准备:

vi /ora10g/network/admin/listener.ora 加入如下语句:


复制代码 代码如下:
(SID_DESC =
   (SID_NAME = test)
   (ORACLE_HOME = /ora10g)
   (PROGRAM = hsodbc)
   (ENVS=LD_LIBRARY_PATH=/ora10g/lib32:/usr/lib64:/ora10g/lib)
)


listener.ora文件现在的内容变成:


复制代码 代码如下:
SID_LIST_LISTENER = (
     SID_LIST =
        (SID_DESC =
           (ORACLE_HOME = /ora10g)
           (PROGRAM = extproc)
           (GLOBAL_DBNAME=prod)
           (SID_NAME=prod)
         )
        (SID_DESC =
                  (SID_NAME = test)
                  (ORACLE_HOME = /ora10g)
                  (PROGRAM = hsodbc)
                  (ENVS=LD_LIBRARY_PATH=/ora10g/lib32:/usr/lib64:/ora10g/lib)
             )
)
LISTENER = (
     DESCRIPTION_LIST =
        (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
                                 (ADDRESS = (PROTOCOL = TCP)(HOST = 0.0.0.0)(PORT = 1521)) )
)


执行lsnrctl reload使Listener生效:


复制代码 代码如下:
su – oracle
lsnrctl reload
LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 09-FEB-2009 13:59:38 Copyright (c) 1991, 2007, Oracle.
All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
The command completed successfully
lsnrctl status
LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 12-FEB-2009 08:56:00

Copyright (c) 1991, 2007, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.2.0.4.0 - Production
Start Date                03-JAN-2009 03:47:39
Uptime                    40 days 5 hr. 8 min. 20 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /ora10g/network/admin/listener.ora
Listener Log File         /ora10g/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "test" has 1 instance(s).
  Instance "test", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully



6, 编辑Oracle所在计算机中的tnsnames.ora文件,便于建立dblink。注意,此tnsnames的配置可以支持tnsping,但是不能支持sqlplus登录,只用于dblink:


复制代码 代码如下:
vi /ora10g/network/admin/tnsnames.ora
test =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
    (CONNECT_DATA =
      (SID = test)
    )
      (HS = OK)
  )
 

7, 在Oracle Database建立dblink:


复制代码 代码如下:
create public database link MYSQL
connect to "mysql username" identified by "mysql pwd"
using '(DESCRIPTION =
              (ADDRESS = (PROTOCOL = TCP) (HOST = 127.0.0.1) (PORT =1521) )
              (CONNECT_DATA = (SID= test) )
              (HS=OK)
           )';

要注意用户名和密码处需要用双引号,否则Oracle所传输的都是大写字母,可能无法登录进入MySQL。

8, 由于MySQL中的表名的大小写敏感,因此需要在进行SQL查询时对表名用双引号扩起来


复制代码 代码如下:
select * from "tablename"@test


详细出处参考:http://www.jb51.net/article/46442.htm
分享到:
评论

相关推荐

    Oracle10g通过DBLink访问MySQL数据(Windows)

    Oracle10g通过DBLink访问MySQL数据 安装环境:Windows_Server2003, Oracle10gR2, MySQL4(服务器版在另外电脑上),MySql-Connector3.51(客户端ODBC驱动) 。

    Oracle10g通过DBLink访问MySQL数据

    ### Oracle10g通过DBLink访问MySQL数据 在企业级应用环境中,经常会出现不同数据库系统之间的数据交互需求。本文将详细介绍如何配置Oracle10g数据库,使其能够通过DBLink访问MySQL数据库中的数据。这一功能对于实现...

    oracle10g或11g通过dblink访问sql server数据库

    ### Oracle 10g 或 11g 通过 DBLink 访问 SQL Server 数据库 #### 概述 本文档详细介绍了如何在Oracle 10g或11g环境中使用DBLink来访问SQL Server数据库的方法。这种方法对于那些习惯于使用Oracle进行数据库操作的...

    oracle通过DBlink连接mysql搭建过程

    Oracle 通过 DBlink 连接 MySQL 搭建过程是一个复杂的过程,需要安装和配置多个组件,包括 unixODBC、mysql-connector-odbc 和 Oracle 环境变量。本文将详细说明这个过程,帮助读者了解如何使用 DBlink 连接 Oracle...

    Oracle通过DBlink连接MySQL

    Oracle通过DBlink连接MySQL是一种常见的数据集成方式,它允许Oracle数据库与MySQL数据库之间进行通信,实现数据的交互和共享。以下将详细介绍整个配置过程。 **一、部署环境** 在进行配置之前,确保你的系统环境是...

    Linux下ORACLE 使用dblink连接mysql_lijilinjy的专栏-CSDN博客.mhtml

    Linux下ORACLE 使用dblink连接mysql_lijilinjy的专栏-CSDN博客.mhtml

    oracle通过ODBC建立dblink访问SqlServer数据库配置.docx

    oracle通过ODBC建立dblink访问SqlServer数据库配置

    oracle通过dblink连接mysql

    oracle通过dblink连接mysql,主要参考了网上的文章,由于本人oracle服务端是32位,MySQL是64,附件中包含32位驱动 mysql-connector-odbc-5.2.4-ansi-win32.msi

    记一次oracle通过dblink连接mysql实施

    Oracle数据库通过DBLink连接MySQL是一种常见的跨数据库交互方式,它允许Oracle数据库远程访问MySQL的数据,实现数据集成或数据迁移。本文记录了一次在Oracle 10g 64位环境中,通过DBLink连接到MySQL 5.5的过程,并在...

    oracle通过odbc建立dblink访问sqlserver数据库

    以下将详细介绍如何通过ODBC方式配置Oracle 10g和11g以访问SQLServer数据库的具体步骤: ##### 1. 配置Oracle服务器系统的ODBC 首先需要确保Oracle服务器上已经正确安装了ODBC驱动,并且该驱动支持目标SQLServer...

    oracle通过dblink链接 mysql和mssql例子

    下面是Oracle通过DBLink连接MySQL和MSSQL的步骤: ### 连接MySQL: 1. 准备MySQL环境: - 确保MySQL服务器地址、端口、数据库名称、用户名和密码等信息已知。 - 确保所用账号可以连接到MySQL服务器,并拥有全局...

    Oracle通过DBLink连接MySQL.doc

    通过dblink连接oracle和mysql,将数据从oracle传输到mysql,详细记录了搭建过程和创建报错

    oracle 存储过程 函数 dblink

    DBLink(Database Link)是一种允许在一个Oracle数据库实例中访问另一个Oracle数据库实例中的对象的技术。DBLink的应用场景非常广泛,例如在不同的数据库实例之间复制数据、合并多个数据库中的数据等。 #### 七、...

    ORACLE透明网关访问mysql

    在本篇文章中,我们将详细探讨如何在Windows Server 2012环境下,利用Oracle 11.2版本的数据库来通过透明网关访问MySQL 5.7数据库。该过程涉及服务器配置、数据库权限设置、ODBC驱动安装配置、网络配置以及Oracle...

    怎样DBLink_Oracle到MySql

    3. **查询数据**:现在可以通过Oracle DBLink访问MySQL中的数据了。 ```sql SELECT * FROM mysql_ext_table@mysql_link; ``` #### 4. 注意事项 - **安全性**:确保所有数据传输过程中的安全性,尤其是密码等...

    实现ORACLE跨库访问 DBLINK

    Oracle数据库的跨库访问是通过DBLINK(Database Link)机制实现的,这允许用户在一个数据库中执行查询,同时访问另一个远程数据库的数据。DBLINK提供了一种透明的方式,使得分布式数据库系统中的数据能够被轻松地...

    MySQL federated引擎 实现类似oracle dblink功能

    MySQL联邦(Federated)引擎是一种特殊的存储引擎,它的设计目标是允许MySQL数据库跨越不同的服务器进行数据集成,类似于Oracle数据库中的DBLINK功能。这个引擎使得用户可以在本地数据库中查询和操作远程MySQL服务器...

Global site tag (gtag.js) - Google Analytics