09.07.2009 14:39
kadr
 
В свете темы https://olegon.ru/showthread.php?t=6134 разбирался как малым траффиком поставить клиентскую часть от версии выше 8.1.7. Давно знал о существовании Instant Client от Oracle (пытался его прикрутить под Linux когда-то), а теперь пришлось разобраться в свете указанной проблемы.
Не забываем что на компе у нас уже установлен Oracle Reports 6i, он прекрасное работает и предыдущие версии СуперМага с ним работали тоже, т.е. необходимые базы уже прописаны, доступность БД по сети есть.

Качаем базовый комплект InstantClient 11g.
При необходимости там можно дополнительные опции к этому клиенту докачать.
На страничке закачки в самом низу есть инструкция по установке
Цитата:
Installation Steps:

1. Download the appropriate Instant Client packages for your platform. All installations REQUIRE the Basic package.

2. Unzip the packages into a single directory such as "instantclient". 3. Set the library loading path in your environment to the directory in Step 2 ("instantclient"). On many UNIX platforms, LD_LIBRARY_PATH is the appropriate environment variable. On Windows, PATH should be used.
4. Start your application and enjoy.
Типа ничего сложного
2. Распаковываем zip-архив в любую директорию на своём компе (например C:\oracle\instantclient\), если выкачивали доп. опции, то и их туда же.
3. Прописываем (методом дописывания в начало строки) в системной переменной PATH каталог, куда только что распаковали архив.
4. Типа всё должно работать.

Но у нас же СуперМаг, он так просто не сдаётся :)
После проделанных ранее шагов мы избавляемся от ошибки, которая гласит что версия клиентского ПО Oracle должна быть 8.1.7 и выше, но получаем следующюю ошибку
"База данных "MyDB" не зарегистрирована в файле TNSNAMES.ORA"
при этом в стартовом окне список БД есть, этот список от Oracle 8.0.6.

На просторах инета: и в файле ODBC_IC_Readme_Win.html , который был в архиве instantclient-odbc-win32-11.1.0.7.0.zip, скачанном "на всякий случай", встретилась рекомендация прописать переменную TNS_ADMIN.

Цитата:
Define the TNS_ADMIN to point the .ora files directory for OCI.
This needs to be set for OCI to resolve the TNS name.
If TNS_ADMIN is not set, OCI will examine an operating system dependent set of directories to find tnsnames.ora. This search path includes looking in the directory %ORACLE_HOME%/network/admin/tnsnames.ora. This is the only reason to set the ORACLE_HOME environment variable for Oracle Instant Client. If ORACLE_HOME is set when running Instant Client applications, it must be set to a directory where Instant Client exists (in this case C:\Oracle\instantclient_11_1).
Создал переменную в системных и прописал в неё каталог в котором лежит TNSNAMES.ORA (в моём случае C:\oracle\instantclient\network\admin\), но думаю что нет необходимости держать два файла одинкавого содержания, а достаточно будет прописать путь к TNSNAMES.ORA, который использовался до этого Oracle 8.0.6.
Всё, СуперМаг работает, несите пиво.
Осталось всё это заавтоматизировать и можно раскладывать.
Размер архива ~46Мб, в распакованном виде ~136Мб.
09.07.2009 15:46
OlegON
 
Цитата:
kadr Всё, СуперМаг работает, несите пиво.
Заодно и мне занесите, что я когда-то допинал разработчиков сделать поддержку TNS_ADMIN. Проблема в другом. Сейчас точно не вспомню, но вроде где-то эта поддержка не работает и Супермаг "слепнет", перестает видеть базы. По моему что-то связанное с новой установкой. Я когда СМ ставил на еще неподдерживаемую 10g, споткнулся, что не могу базу указать. Но если не ошибаюсь, можно втупую по /Oracle/network/admin положить tnsnames.ora и стартовать... Либо в реестре сбросить ключик.
09.07.2009 16:24
ReDHawK
 
kadr спасибо. Но я не вижу огромной разницы ставить Instant Client от Oracle или серверного клиента. Ну инстанс меньше места занимает, но и хлопот не меньше, а с клиентом установленным, оператор сможет на своей машине товародвижение считать (админа не отвлекать :) ).
09.07.2009 16:31
Mtirt
 
Угу, это меньше ровно в 10 раз.
Не хотите помочь? Раскидать вашего клиента, занимающего ровно полгигабайта по 40 удаленным магазинам с проблемной связью?

И про товародвижение...
А что, у вас все клиенты во всех магазинах на каждом компьютере рассчитывают товародвижение?
Как то это не соотносится с идеологией самого понятия себестоимости, и работы Супермага с нею.
09.07.2009 18:16
Busotir
 
а с сервером 9.2.0.6 инстантклиент 11-ки или 10-ки будет фурычить без проблем?
10.07.2009 12:15
mitis
 
Цитата:
Busotir а с сервером 9.2.0.6 инстантклиент 11-ки или 10-ки будет фурычить без проблем?
+1
Аналогичная ситуация... сервер стоит аля 6i, клиент есь в наличии 11.1.0.7.0
Вот хочецо узнать будут ли они дружить :)
10.07.2009 14:37
kadr
 
Цитата:
mitis +1
Аналогичная ситуация... сервер стоит аля 6i, клиент есь в наличии 11.1.0.7.0
Вот хочецо узнать будут ли они дружить :)
Некрофил? в 6-ой версии не было буковки i, она пошла только с 8-ой
12.07.2009 23:38
Busotir
 
Мдя, что за Oracle 6i? 80-х годов еще наверное... если это не репортс.*107
Так поддерживает ли этот клиент 9-ку сервер?
13.07.2009 11:06
kadr
 
не-е-е-е, клиент не может поддерживать сервер, не для того он предназначен
13.07.2009 20:34
orekhov
 
Если верить Металинку (документ 207303.1), клиент 11.1.0 поддерживает работу с сервером 9.2.0 и выше
Часовой пояс GMT +3, время: 07:35.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.