Ubuntu 24.04 配置ODBC连接ORACLE 11G数据库

1. 安装必要工具和驱动

1.1 安装unixODBC和依赖库

# apt update

# apt install unixodbc unixodbc-dev libaio1 

执行失败,报错

libaio1包找不到,先跳过,安装其他两个。

# apt install unixodbc unixodbc-dev

安装成功

1.2 下载Oracle Instant Client

访问 Oracle Instant Client下载页面,

https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html

选择以下两个RPM包(需转换为Debian格式):

Basic Package(基础库,oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm)

ODBC Package(ODBC驱动,oracle-instantclient11.2-odbc-11.2.0.4.0-1.x86_64.rpm)

1.3 转换为Debian包并安装

安装转换工具

# apt install alien

转换刚才下载的RPM为DEB并安装

# alien -k --scripts *.rpm

# dpkg -i oracle-instantclient*.deb

1.4 创建符号链接(解决库路径问题)

# sh -c "echo /usr/lib/oracle/11.2/client64/lib > /etc/ld.so.conf.d/oracle-instantclient.conf"

# ldconfig

2. 配置Oracle网络连接

2.1 创建TNS配置文件目录

# mkdir -p /usr/lib/oracle/11.2/client64/network/admin

2.2 配置tnsnames.ora

编辑文件 /usr/lib/oracle/11.2/client64/network/admin/tnsnames.ora,添加远程Oracle服务器的连接信息:

# cd /usr/lib/oracle/11.2/client64/network/admin

# vi  tnsnames.ora

添加以下内容

ORCL =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.200)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SID = ORCL) 

    )

  )

3. 配置ODBC驱动和数据源

3.1 配置ODBC驱动

编辑 /etc/odbcinst.ini,添加Oracle驱动配置:

# vi  /etc/odbcinst.ini

[Oracle11g]  # 驱动名称(自定义)

Description = Oracle ODBC Driver for 11g

Driver      = /usr/lib/oracle/11.2/client64/lib/libsqora.so.11.1

FileUsage   = 1

3.2 配置ODBC数据源

编辑 /etc/odbc.ini,添加数据源:

# vi  /etc/odbc.ini

[OracleTest]  # 数据源名称(自定义)

Description = Oracle 11g Connection

Driver      = Oracle11g  # 与odbcinst.ini中的驱动名称一致

ServerName  = ORCL       # 与tnsnames.ora中的条目一致

UserID      = 你的用户名

Password    = 你的密码

Port        = 1521

4. 测试连接

4.1 使用isql命令行工具

# isql -v OracleTest

报错了

提示找不到libsqora.so.11.1

但目录下有这个文件

检查驱动库依赖

# ldd /usr/lib/oracle/11.2/client64/lib/libsqora.so.11.1

有“not found”,应该是之前libaio1没装的问题

apt 始终找不到,只能手动下载安装包

# wget http://archive.ubuntu.com/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-5_amd64.deb

安装依赖和包

# apt install ./libaio1_0.3.112-5_amd64.deb

验证安装

# dpkg -l libaio1

再测试

# isql -v OracleTest

仍然报错

检查驱动库依赖

# ldd /usr/lib/oracle/11.2/client64/lib/libsqora.so.11.1

查到有说Ubuntu 24.04 默认不提供 libodbcinst.so.1,手动创建符号链接

# ln -s /usr/lib/x86_64-linux-gnu/libodbcinst.so.2 /usr/lib/x86_64-linux-gnu/libodbcinst.so.1

重新检查 libsqora.so.11.1 的依赖关系:

# ldd /usr/lib/oracle/11.2/client64/lib/libsqora.so.11.1 | grep odbc

再测试

# isql -v OracleTest

仍然报错,但错误信息变了。

检查TNS 配置文件,确认 tnsnames.ora 路径和权限正常,tnsnames.ora 内容也正确。

Oracle Instant Client 需要通过环境变量明确指定 TNS 配置目录,尝试设置 TNS_ADMIN 变量

# export TNS_ADMIN=/usr/lib/oracle/11.2/client64/network/admin

再测试

# isql -v OracleTest

连接成功

将环境变量写入配置文件

# echo "export TNS_ADMIN=/usr/lib/oracle/11.2/client64/network/admin" >> ~/.bashrc

测试结束。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值