oracle建dblink去查询mysql

来源:这里教程网 时间:2026-03-03 16:15:27 作者:

环境: 源端:Oracle /172.22.32.251/rhel 6.7 目标端:mysql 5.1/172.22.33.122  查询这2个包是否安装 [root@dbtest4 /]# rpm -qa | grep mysql-connector mysql-connector-odbc-5.1.5r1144-7.el6.x86_64 [root@dbtest4 /]#  rpm -qa | grep ODBC unixODBC-devel-2.2.14-14.el6.x86_64 unixODBC-2.2.14-14.el6.x86_64 然后配置odbc配置文件 [root@dbtest4 /]# cat /etc/odbc.ini  [mysqlodbc] Driver       = /usr/lib64/libmyodbc5.so Description  = MySQL ODBC 5.1 Driver DSN SERVER       = 172.22.33.122 PORT         = 3306 USER         = app Password     = app2020 Database     = amro_ho01 OPTION = 0 TRACE =  OFF [root@dbtest4 /]# cat /etc/odbcinst.ini  # Example driver definitions # Driver from the postgresql-odbc package # Setup from the unixODBC package [PostgreSQL] Description = ODBC for PostgreSQL Driver = /usr/lib/psqlodbc.so Setup = /usr/lib/libodbcpsqlS.so Driver64 = /usr/lib64/psqlodbc.so Setup64 = /usr/lib64/libodbcpsqlS.so FileUsage = 1 # Driver from the mysql-connector-odbc package # Setup from the unixODBC package [MySQL] Description = ODBC for MySQL Driver = /usr/lib/libmyodbc5.so Setup = /usr/lib/libodbcmyS.so Driver64 = /usr/lib64/libmyodbc5.so Setup64 = /usr/lib64/libodbcmyS.so FileUsage = 1 测试连接 [root@dbtest4 /]# isql mysqlodbc -v +---------------------------------------+ | Connected!                            | |                                       | | sql-statement                         | | help [tablename]                      | | quit                                  | |                                       | +---------------------------------------+ SQL> show databases +-----------------------------------------------------------------+ | Database                                                        | +-----------------------------------------------------------------+ | information_schema                                              | | amro_ho01                                                       | | amro_ho01_test                                                  | | backup                                                          | | messap_test                                                     | | mysql                                                           | | ogg                                                             | | performance_schema                                              | | qr_code_manage                                                  | | sys                                                             | | xie                                                             | +-----------------------------------------------------------------+ SQLRowCount returns 11 11 rows fetched 配置oracle环境变量 # .bash_profile # Get the aliases and functions if [ -f ~/.bashrc ]; then         . ~/.bashrc fi # User specific environment and startup programs export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/ora11g export ORACLE_SID=amro export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib/$ORACLE_HOME/hs/lib:/usr/lib64:$LD_LIBRARY_PATH: export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$GRID_HOME/bin:/usr/sbin:/usr/local/bin:$ORACLE_HOME/OPatch export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss" umask 022 ODBCINI=/etc/odbc.ini; export ODBCINI ODBCSYSINI=/etc; export ODBCSYSINI ODBCINSTINI=/etc/odbc.ini export ODBCINSTINI 配置监听,加个静态 [oracle@testdb1 admin]$ cat listener.ora LISTENER =   (DESCRIPTION_LIST =     (DESCRIPTION =       (ADDRESS = (PROTOCOL = TCP)(HOST = dbtest4)(PORT = 1521))       (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))     )   ) ADR_BASE_LISTENER = /u01/app/oracle SID_LIST_LISTENER =  (SID_LIST =    (SID_DESC =      (SID_NAME = mysqlodbc)      (ORACLE_HOME =/u01/app/oracle/product/11.2.0/db_1)      (PROGRAM = dg4odbc)      (ENVS=LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/usr/local/lib:/usr/lib64)      )   )  然后加个tns omy =   (DESCRIPTION =     (ADDRESS = (PROTOCOL = TCP)(HOST = 172.22.32.251)(PORT = 1521))     (CONNECT_DATA =       (SID = mysqlodbc)     )       (HS = OK)   ) 配置odbc监听 路径:$ORACLE_HOME/hs/admin 注意:名字要跟odbc配置的名字一样 mysqlodbc 配置透明网关。 [oracle@dbtest4 admin]$ vi initmysqlodbc.ora  HS_FDS_CONNECT_INFO = mysqlodbc HS_FDS_TRACE_LEVEL = off HS_FDS_SHAREABLE_NAME = /usr/lib64/libmyodbc5.so HS_FDS_SQLLEN_INTERPRETATION=32 HS_LONG_PIECE_TRANSFER_SIZE=1258291 set DBCINI=/etc/odbc.ini 然后测试下连接 [oracle@dbtest4 admin]$ tnsping omy TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 19-OCT-2020 17:04:15 Copyright (c) 1997, 2011, Oracle.  All rights reserved. Used parameter files: Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.22.32.251)(PORT = 1521)) (CONNECT_DATA = (SID = mysqlodbc)) (HS = OK)) OK (0 msec) 创建dblink SQL> create public database link to_mysql connect to "root" identified by "123456" using 'omy'; SQL> select owner,object_name from dba_objects where object_type='DATABASE LINK'; 查询: SQL> select count(*) from "bm_tsk_001"@to_mysql;

相关推荐