Как настроить драйверы Oracle ODBC на RHEL 6 / Linux


Мне нужно настроить драйверы Oracle ODBC на RHEL 6 для подключения к источнику данных Oracle, находящемуся на удаленной машине Windows.

Я предпринял следующие шаги:
[1] установлен oracle-instanceclient-basic
[2] задайте переменные окружения: ORACLE_HOME и LD path
[3] создал /etc / oracle / TNSnames.ora и настроен, но он не установил его правильно

Изначально я получил ошибку, "Connect failed because target or object does not exist"

Затем я устанавливаю: ORACLE_SID = DB_NAME в TNSnames.Ора файл.

Но так оно и было. не исправить проблему, я получил новое сообщение об ошибке теперь: "TNS: net service name is incorrectly specified"

2 5

2 ответа:

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

Чтобы проверить имя прослушивателя, введите следующие команды в командной строке windows, на которой запущен сервер Oracle:

lsnrctl
status
Он будет привлекать слушателей и их состояние (готово или неизвестно). Подключитесь к слушателю, который находится в состоянии готовности. состояние: Instance "zelistener", status READY

Mkdir / etc / oracle

Vi / etc / oracle / tnsnames.Ора

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 simple

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

Я думаю, что мы должны назначить версию unixODBC. если подключить oracle12c, то мы должны использовать unixODBC-2.3.1