【问题标题】:How do I setup Oracle ODBC drivers on RHEL 6/Linux如何在 RHEL 6/Linux 上设置 Oracle ODBC 驱动程序
【发布时间】:2012-12-05 00:52:04
【问题描述】:

我需要在 RHEL 6 上设置 Oracle ODBC 驱动程序以连接到位于远程 Windows 机器上的 Oracle 数据源。

我已采取以下步骤:
[1] 安装 oracle-instanceclient-basic
[2]设置环境变量:ORACLE_HOME和LD路径
[3] 创建 /etc/oracle/TNSnames.ora 并配置但未正确设置

最初,我得到了错误,"Connect failed because target or object does not exist"

然后,我在 TNSnames.ora 文件中设置:ORACLE_SID = DB_NAME

但是,这并没有解决问题,我现在收到一条新的错误消息:"TNS: net service name is incorrectly specified"

【问题讨论】:

  • 那么什么不适合你?

标签: linux oracle odbc drivers rhel6


【解决方案1】:
yum install unixODBC
rpm -ivh oracle-instantclient-basic-10.2.0.3-1.i386.rpm #downloaded on http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html
unzip instantclient-odbc-linux32-10.2.0.3-20061115.zip #downloaded on http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html
cp ./instantclient_10_2/libsqora.so.10.1 /usr/lib/oracle/10.2.0.3/client/lib/
export ORACLE_HOME=/usr/lib/oracle/10.2.0.3/client
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib

您还需要设置$TWO_TASK(Oracle 希望获取服务器的默认位置)指向Oracle 服务器在Windows 上运行的位置——不要忘记在端口后面添加监听器号码:

export TWO_TASK=//213.123.23.19:1521/listener

要检查侦听器的名称,请在运行 Oracle 服务器的 Windows 提示符下键入以下命令:

lsnrctl
status

它将招募侦听器及其状态(READY 或 UNKNOWN)。连接处于就绪状态的监听器:Instance "zelistener", status READY

mkdir /etc/oracle

vi /etc/oracle/tnsnames.ora

MY_SID =
 ( DESCRIPTION =
  (ADDRESS_LIST =
  (ADDRESS =
  (PROTOCOL = TCP)
  (Host = 127.0.0.1)
  (Port = 1521)
  )
 )
 (CONNECT_DATA = (SID = MY_SID)
 )
)

导出 TNS_ADMIN=/etc/oracle

vi /etc/odbcinst.ini

[OracleODBC-10g]
Description = Oracle ODBC driver for Oracle 10g
Driver = /usr/lib/oracle/10.2.0.3/client/lib/libsqora.so.10.1
FileUsage = 1
Driver Logging = 7

vi /etc/odbc.ini

[simple]
Driver = OracleODBC-10g
DSN = OracleODBC-10g
ServerName = MY_SID
UserID = USER
Password = PASSWORD

isql -v 简单

+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+

【讨论】:

【解决方案2】:

我认为我们应该分配 unixODBC 的版本。 如果要连接oracle12c,我们应该使用unixODBC-2.3.1

【讨论】:

  • 如你所说,看来RH提供的unixODBC 2.2.14不兼容10.x以上的Oracle Driver,需要升级。
猜你喜欢
  • 2016-01-06
  • 2016-04-01
  • 2017-04-30
  • 1970-01-01
  • 2020-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多