## 本地测试Oracle环境 [root@10-186-56-43 ~]# docker exec -it ora19c /bin/bash [oracle@ora19c ~]$ echo $ORACLE_HOME /opt/oracle/product/19c/dbhome_1 [oracle@ora19c ~]$ find $ORACLE_HOME -name dg4odbc /opt/oracle/product/19c/dbhome_1/bin/dg4odbc [oracle@ora19c ~]$ dg4odbc Oracle Corporation --- 2025-07-03 13:52:06.374081000 Heterogeneous Agent Release 19.0.0.0.0 - Production Built with Oracle Database Gateway for ODBC ## 需要在Oracle上安装的软件包 [root@ora19c opt]# rpm -ivh ob-connector-odbc-2.0.9.5-72025041109.el7.x86_64.rpm warning: ob-connector-odbc-2.0.9.5-72025041109.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 5ee0fb49: NOKEY Preparing... ################################# [100%] Updating / installing... 1:ob-connector-odbc-2.0.9.5-7202504################################# [100%] [root@ora19c opt]# rpm -ivh ob-unixodbc-2.0.8.3-20231114143843.el7.alios7.x86_64.rpm Preparing... ################################# [100%] Updating / installing... 1:ob-unixodbc-2.0.8.3-2023111414384################################# [100%] [root@ora19c opt]# rpm -ivh libobclient-2.2.10-22025032014.el7.x86_64.rpm warning: libobclient-2.2.10-22025032014.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 3b1a88d1: NOKEY Preparing... ################################# [100%] Updating / installing... 1:libobclient-2.2.10-22025032014.el################################# [100%] ## 配置ODBC cat << EOF >> /etc/odbc.ini [ODBC Data Sources] data_source_name = OBDSN [OBDSN] Driver=Oceanbase Description = OceanBase Driver DSN SERVER = 10.186.61.21 PORT = 2883 USER = SYS@oboracle#zhenxing Password = ****** OPTION = 4 charset=UTF8 EOF ## 调整权限 chmod a+r /etc/odbc.ini ## 配置ODBC调用驱动路径 [root@ora19c opt]# ll /u01/ob-connector-odbc/lib64/mariadb/libobodbc.so -rwxr-xr-x 1 root root 2602512 Apr 11 02:00 /u01/ob-connector-odbc/lib64/mariadb/libobodbc.so cat << EOF >> /etc/odbcinst.ini [Oceanbase] Description = ODBC for Oceanbase Driver = /u01/ob-connector-odbc/lib64/mariadb/libobodbc.so EOF ## 调整权限 chmod a+r /etc/odbcinst.ini ## 配置环境变量 export ODBCSYSINI=/etc export ODBCINI=/etc/odbc.ini export LD_LIBRARY_PATH=/u01/unix-odbc/lib:/u01/obclient/lib:/u01/ob-connector-odbc:$LD_LIBRARY_PATH ## 验证配置,报错,缺少依赖包 [root@ora19c opt]# /u01/unix-odbc/bin/odbcinst -j /u01/unix-odbc/bin/odbcinst: error while loading shared libraries: libltdl.so.7: cannot open shared object file: No such file or directory ## 安装依赖包 yum install libtool-ltdl-devel ## 验证正常 [root@ora19c opt]# /u01/unix-odbc/bin/odbcinst -j unixODBC 2.3.7 DRIVERS............: /etc/odbcinst.ini SYSTEM DATA SOURCES: /etc/odbc.ini FILE DATA SOURCES..: /etc/ODBCDataSources USER DATA SOURCES..: /etc/odbc.ini SQLULEN Size.......: 8 SQLLEN Size........: 8 SQLSETPOSIROW Size.: 8 ## 调用验证,正常可查询 [root@ora19c opt]# /u01/unix-odbc/bin/isql -v OBDSN +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL> select * from t1; +-----------------------------------------+-----------------------------------------------------------------------------------------------------+ | ID | C1 | +-----------------------------------------+-----------------------------------------------------------------------------------------------------+ | 1 | ADSDSIJKKJK | | 2 | JKkDSIJKKJK | +-----------------------------------------+-----------------------------------------------------------------------------------------------------+ SQLRowCount returns 2 2 rows fetched ## 编辑配置,添加环境变量 vi ~/.bash_profile export ODBCSYSINI=/etc export ODBCINI=/etc/odbc.ini export LD_LIBRARY_PATH=/u01/unix-odbc/lib:/u01/obclient/lib:/u01/ob-connector-odbc:$LD_LIBRARY_PATH ## 调整增加ODBC监听 cd /opt/oracle/product/19c/dbhome_1/network/admin cat >> /opt/oracle/product/19c/dbhome_1/network/admin/listener.ora <> /opt/oracle/product/19c/dbhome_1/network/admin/tnsnames.ora < /opt/oracle/product/19c/dbhome_1/hs/admin/initOBDSN.ora < col c1 for a20 SYS@DCLHR> col id for 999999 SYS@DCLHR> select * from t1@ob_dblink; ID C1 ------- -------------------- 1 ADSDSIJKKJK 2 JKkDSIJKKJK