2010-03-11 90 views
1

单声道真的很棒。即使不重新编译二进制文件,我们的一些应用程序也可以在Linux下使用。然而,我有困难的时间来配置oracle instantclient与单声道使用它。如何为单声道配置oracle instantclient?

我在CentOS虚拟机上安装了instantclient(通过安装instantclient rpm),但是我没有在任何地方找到TNSNAMES.ORA。

我搜索了甲骨文,我发现以下路径包含甲骨文库。

[[email protected] rupert]# ll /usr/lib/oracle/11.2/client/lib/ 
total 143280 
-rw-r--r-- 1 root root  7456 Aug 14 2009 cobsqlintf.o 
-rw-r--r-- 1 root root  342 Aug 14 2009 glogin.sql 
lrwxrwxrwx 1 root root  17 Mar 9 06:52 libclntsh.so -> libclntsh.so.11.1 
-rw-r--r-- 1 root root 40088477 Aug 14 2009 libclntsh.so.11.1 
-rw-r--r-- 1 root root 6986848 Aug 14 2009 libnnz11.so 
lrwxrwxrwx 1 root root  15 Mar 9 06:52 libocci.so -> libocci.so.11.1 
-rw-r--r-- 1 root root 1879549 Aug 14 2009 libocci.so.11.1 
-rw-r--r-- 1 root root 89377610 Aug 14 2009 libociei.so 
-rw-r--r-- 1 root root 152304 Aug 14 2009 libocijdbc11.so 
-rw-r--r-- 1 root root 1501651 Aug 14 2009 libsqlplusic.so 
-rw-r--r-- 1 root root 1218075 Aug 14 2009 libsqlplus.so 
-rw-r--r-- 1 root root 777979 Aug 14 2009 libsqora.so.11.1 
-rw-r--r-- 1 root root 1996228 Aug 14 2009 ojdbc5.jar 
-rw-r--r-- 1 root root 2111220 Aug 14 2009 ojdbc6.jar 
-rw-r--r-- 1 root root 298388 Aug 14 2009 ottclasses.zip 
drwxr-xr-x 3 root root  4096 Mar 9 06:52 precomp 
-rw-r--r-- 1 root root 37807 Aug 14 2009 xstreams.jar 

没有TNSPING可用,没有TNSNAMES.ORA,现在如何配置使用这个作为Oracle客户端的单?以及如何在app.config连接字符串部分指定oracle数据库?

虽然mono是一个功能强大的框架,但它似乎有像linux一样的问题,所有文档只在邮件列表中可用,而官方网站上提供的任何文档对于普通用户来说都是过时的或不明确的。

希望事情很快就会改变,Mono将为Linux编程框架。

+2

关于您最后的声明,您可能会发现这篇文章有趣:http://www.fsf.org/news/dont-depend-on-mono。 – Blair 2010-03-11 05:25:52

回答

3

使用oracle easy connect命名方法或自己在正确的位置创建一个tnsnames.ora(查看位置搜索顺序的即时客户端文档)。 tnsping不属于即时客户端(或任何附加软件包)的组成部分。

即时客户端faq 如何确保在Instant Client中使用我的“tnsnames.ora”文件? 始终将TNS_ADMIN环境变量或注册表设置设置为tnsnames.ora文件的完整路径。这种做法将确保您在使用Instant Client运行时为您的应用程序使用适当的tnsnames.ora。

如何在即时客户端模式下指定连接字符串? 所有不需要使用ORACLE_HOME或TNS_ADMIN(定位配置文件,如tnsnames.ora或sqlnet.ora)的Oracle网络命名方法都可以在即时客户端模式下工作。特别地,所述连接字符串可以在下列格式来指定:

形式的SQL连接URL字符串:

//主机[端口] [/服务名称]

如:

//质数据库服务器-5:4321 /订单

作为Oracle网络关键字值对。例如:

“(DESCRIPTION =(ADDRESS =(PROTOCOL = TCP)(HOST = dlsun242) (PORT = 5521)) (CONNECT_DATA =(SERVICE_NAME = bjava21)))”

命名方法那如果设置了TNS_ADMIN环境变量,则需要TNS_ADMIN来定位配置文件才能继续工作。

如果未设置TNS_ADMIN环境变量,并且使用了TNSNAMES条目(如inst1等),则必须设置ORACLE_HOME变量,并且配置文件应该位于$ ORACLE_HOME/network/admin目录。

请注意,本例中的ORACLE_HOME变量仅用于查找Oracle Net配置文件,而客户端代码库(OCI,NLS等)的其他组件不使用ORACLE_HOME的值。

不支持遗留适配器或空连接字符串。但是,使用空连接字符串的另一种方法是将UNIX上的TWO_TASK环境变量或Windows上的LOCAL变量设置为tnsnames.ora条目或Oracle Net关键字 - 值对。如果TWO_TASK或LOCAL设置为tnsnames.ora条目,则必须能够通过TNS_ADMIN或ORACLE_HOME设置加载tnsnames.ora文件。

+0

@罗伯特这是非常有帮助的。 – funwithcoding 2010-03-11 13:49:34

2

单声道不知道在哪里搜索“libclntsh.so”。在我的系统上“libclntsh.so”可用@ /usr/lib/oracle/11.2/client/lib/。我的问题通过执行以下命令得到解决

export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client/lib/ 
+0

+1进行跟进 – 2010-03-19 11:54:03