Установка unixODBC с драйвером oracle на solaris x86-64.

OpenSolaris, Illumos, OpenIndiana

Модератор: Модераторы разделов

Аватара пользователя
strah
Сообщения: 283
ОС: Freebsd, linux, Solaris.

Установка unixODBC с драйвером oracle на solaris x86-64.

Сообщение strah »

В общем, так-как при настройке сабжа появилось несколько проблем, и пошаговой инструкции я нигде не нашел, напишу ее здесь, может и пригодиться кому.

Итак, приступим. Для начала скачаем последнюю версию unixODBC и oracle instant client (пакеты basic и odbc, хотя для тестирования можно скачать и sqlplus). Итак, для начала распакуем unixODBC и скомпилируем его.

Код: Выделить всё

$ cd ~/unixODBC-2.3.0
$ export CFLAGS=-m64
$ export LDOPTIONS=-64 # это необходимо для того, чтобы у нас собирались 64-битные бинарики
# pkg install pkg:/SUNWgmake@3.81-0.111 # устанавливаем gnu make - со стандартным make будут проблемы при make install
$ alias make='gmake'
$ ./configure --enable-drivers --enable-drivers-conf
$  gmake
# gmake install


Далее распаковываем архивы с oracle instant client, и копируем их содержимое куда-нибудь в /usr/local/oracle. И вот после этого шага нас подстерегает первая трабла - надо добавить в LD_LIBRARY_PATH каталог /usr/local/oracle, иначе приложения, которым нужны либы оттуда не будут работать. Так же необходимо установить переменную ORACLE_HOME в /usr/local/oracle. После этого переходим в каталог ORACLE_HOME, и запускаем скрипт odbc_update_ini.sh, который автоматически подправит файлы ~/.odbc.ini и /usr/local/etc/odbcinst.ini:

Код: Выделить всё

# cd $ORACLE_HOME
#  sh ./odbc_update_ini.sh /usr/local/ # первый параметр указывает папку, в которую ставился unixODBC


После этого копируем файл ~/.odbc.ini в /usr/local/etc/odbc.ini. Далее нас опять таки поджидает трабла с либами: надо добавить в LD_LIBRARY_PATH каталог /usr/local/lib, иначе isql(точнее - либа с оракловскими дровами - libsqora.so.11.1, но ругаться по этому поводу будет isql) не найдет либу libodbcinst.so.1.

После этого настраиваем подключение к БД. Для начала создаем файл $ORACLE_HOME/network/admin/tnsnames.ora, в котором описываем подключение к БД:

Код: Выделить всё

usersdb =
 (DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = oradb.localnet.net)(PORT = 1521))
   )
 (CONNECT_DATA =
   (SERVICE_NAME = usersdb)
 )
)


Далее открываем файл /usr/local/etc/odbc.ini, который у нас создался автоматически, и меняем там заголовок секции на что-нибудь понятное, вписываем в DSN имя нашей БД, вписываем в UserID имя пользователя БД, и в поле Password - его пароль.

Код: Выделить всё

[usersdb]
Application Attributes = T
Attributes = W
BatchAutocommitMode = IfAllSuccessful
BindAsFLOAT = F
CloseCursor = F
DisableDPM = F
DisableMTS = T
Driver = Oracle 11g ODBC driver
DSN = usersdb
EXECSchemaOpt =
EXECSyntax = T
Failover = T
FailoverDelay = 10
FailoverRetryCount = 10
FetchBufferSize = 64000
ForceWCHAR = F
Lobs = T
Longs = T
MaxLargeData = 0
MetadataIdDefault = F
QueryTimeout = T
ResultSets = T
ServerName =
SQLGetData extensions = F
Translation DLL =
Translation Option = 0
DisableRULEHint = T
UserID = sampleuser
Password = samplepw
StatementCache=F
CacheBufferSize=20
UseOCIDescribeAny=F


Кроме того, надо установить переменную TWO_TASK в значение вида //serveraddr/dbname, иначе isql будет ругаться следующим образом: " TNS:net service name is incorrectly specified"

Код: Выделить всё

export TWO_TASK=//oradb.localnet.net:1521/usersdb

Ну, вот и все.
/earth: file system full
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: Установка unixODBC с драйвером oracle на solaris x86-64.

Сообщение Ленивая Бестолочь »

strah писал(а):
02.05.2010 21:09
Для начала скачаем последнюю версию unixODBC

чего бы не заюзать репозитории?

Код: Выделить всё

bash# pkg-get available | grep -i odbc
              myodbc 3.51.11,REV=2005.03.18
           php4_odbc           4.4.4
           php5_odbc 5.2.4,REV=2007.10.29
        php5_pdoodbc 5.2.4,REV=2007.10.29
            unixodbc 2.2.12,REV=2008.02.24
bash#

в пользу последней версии?
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали:
Аватара пользователя
strah
Сообщения: 283
ОС: Freebsd, linux, Solaris.

Re: Установка unixODBC с драйвером oracle на solaris x86-64.

Сообщение strah »

Код: Выделить всё

#pkg search unixODBC
#

Это на OpenSolaris 2009.06. Значит, она и правда от Solaris отличается местами.
/earth: file system full
Спасибо сказали:
Аватара пользователя
Ленивая Бестолочь
Бывший модератор
Сообщения: 2760
ОС: Debian; gentoo

Re: Установка unixODBC с драйвером oracle на solaris x86-64.

Сообщение Ленивая Бестолочь »

понятно. у нас SunOS 5.10 i86pc i386 i86pc.
кстати, инструкция очень хорошая, спасибо. очень может пригодиться ;-)
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
Спасибо сказали: