注册
odbc报错无法找到文件 [01000][unixODBC][Driver Manager]Can't open lib file not found
专栏/技术分享/ 文章详情 /

odbc报错无法找到文件 [01000][unixODBC][Driver Manager]Can't open lib file not found

吉吉 2023/08/30 1833 0 0
摘要

问题现象

在部署oracle到dm数据库的hs时,需要在两端分别部署odbc来进行数据同步,有时在启动isql时会遇到如下报错

[01000][unixODBC][Driver Manager]Can't open lib '/oracle/app/oracle/product/11.2.0/db/lib/libsqora.so.11.1' : file not found

查看原因

使用ldd命令查看该报错的so文件,可以发现其中会有一个或多个的链接是not found

[root@localhost ~]# ldd /oracle/app/oracle/product/11.2.0/db/lib/libsqora.so.11.1
ldd: warning: you do not have execution permission for `/oracle/app/oracle/product/11.2.0/db/lib/libsqora.so.11.1'
	linux-vdso.so.1 =>  (0x00007ffccf714000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f4954e51000)
	libm.so.6 => /lib64/libm.so.6 (0x00007f4954b4f000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f4954933000)
	libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f4954719000)
	libclntsh.so.11.1 => not found
	libodbcinst.so.1 => /lib64/libodbcinst.so.1 (0x00007f4954507000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f4954139000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f4955055000)
	libltdl.so.7 => /lib64/libltdl.so.7 (0x00007f4953f2f000)

处理方法

使用find命令,在根目录查找链接为 not found 的libclntsh.so.11.1文件

find / -name "libclntsh.so.11.1"
/oracle/app/oracle/product/11.2.0/db/inventory/Scripts/ext/lib/libclntsh.so.11.1

将查找到的该lib目录下的so文件复制到/usr/lib64下,再次使用ldd命令查看报错中的so文件,可以发现原本为not found的链接,已经指向/usr/lib64下的libclntsh.so.11.1文件了

[root@localhost ~]# cp /oracle/app/oracle/product/11.2.0/db/lib/libclntsh.so.11.1 /usr/lib64/libclntsh.so.11.1
[root@localhost ~]# ldd /oracle/app/oracle/product/11.2.0/db/lib/libsqora.so.11.1
ldd: warning: you do not have execution permission for `/oracle/app/oracle/product/11.2.0/db/lib/libsqora.so.11.1'
	linux-vdso.so.1 =>  (0x00007fffdedea000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f997736b000)
	libm.so.6 => /lib64/libm.so.6 (0x00007f9977069000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f9976e4d000)
	libnsl.so.1 => /lib64/libnsl.so.1 (0x00007f9976c33000)
	libclntsh.so.11.1 => /lib64/libclntsh.so.11.1 (0x00007f9974608000)
	libodbcinst.so.1 => /lib64/libodbcinst.so.1 (0x00007f99743f6000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f9974028000)
	/lib64/ld-linux-x86-64.so.2 (0x00007f997756f000)
	libnnz11.so => /oracle/app/oracle/product/11.2.0/db/lib/libnnz11.so (0x00007f9973c60000)
	libaio.so.1 => /lib64/libaio.so.1 (0x00007f9973a5e000)
	libltdl.so.7 => /lib64/libltdl.so.7 (0x00007f9973854000)

此时再启动isql测试连接成功

+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服