LINUX.ORG.RU

Хочу connect к Oracle на другом хосте


0

0

Вот задачка: Имеется Linux (Mandrake) в качестве сервера для удаленного доступа в сеть. Имеется Oracle на другой UNIX (Sinix) - машине. Надо: НЕ ставя Oracle на Linux создать, скажем, на perl, прогу (например, CGI), которая осуществляла бы коннект к ремутному ораклу, ну и, естественно, делала бы SQL-запрос. Одним словом - надо "разнести в пространстве" сервер, на котором лежит база и сервер, который бы предоставлял юзеру интерфейс к этой базе. У кого есть хоть какой-то опыт в этом вопросе, очень прошу ответить или связаться со мной по адресу: nmaxima@mail.ru


Идем на CPAN и берем там модуль DBI::Oracle.
Читаем доку и радуемся, как у нас все зашибись работает :)

Yurchik
()
Ответ на: комментарий от Yurchik

Да. Пытался. Именно так. Но оный DBD упорно хочет, чтобы Оракла
уже стояла на моем Линухе :-((
И обманываться фальшивыми $HOME_ORACLE не желает :-((
Впрочем, может я такой дурной? Попробую еще раз.
Спасибо за желание помочь.

NMaximA
() автор топика

Скажите пожалуйста, а вы хоть немного головой думать пробовали?
DBD требует КЛИЕНТСКОЙ библиотеки Oracle libcl... + msgs файлы
для диагностик + кое что для работы с tnsnames.ora
Это не Oracle Server а комплект клиента.
Но в любом случае он должен стоять и $ORACLE_HOME смотреть куда надо.

tid
()

Для клиентского места надо установить не весь Oracle, а лишь клиентскую часть. По минимуму это SQL*Net. К сожалению, у меня нет другой машины под Linux для точной проверки того, что заключает в себе этот минимум, но под Windows ставится этот самый SQL*Net и по надобности ODBC драйвер. Так и приходится таскать цельный компакт-диск. Так что и под Linux нужно взять дистрибутив Oracle, запустить orainst и внимательно изучить меню. Скорее всего можно просто переписывать получившуюся директорию на другие компьютеры, воткнув соответствующие переменные окружения.

farit
()
Ответ на: комментарий от tid

Грубоватый Вы человек, tid.

Отвечаю - думать пробовал. Да только есть здесь маленькая проблемка.
Если Вы внимательно читали объявление, Oracle стоит на изрядно другой,
нежели мой любимый Linux, архитектуре. И самое обидное - что инсталляция
его (Оракла) - не в сырцах, а в бинарниках. Под Sinix заточенных.
И от Sinix никуда не деться. Это, так сказать, реальность, данная
в ощущении. Федеральная программа, одним словом. Машинка сильная,
но весьма специфичная как по архитектуре, так и по совту своему.
Одно слово - "Siemens Nixdorf".
Загвоздка же в том, чтобы к этой реальности "привертеть" нормальный
интерфейс доступа. А качать ради коннекта к Ораклу весь дистрибутив
весом 140М - абыдно, да?
Вот, собственно, и возник у меня вопрос - а мож кто пробовал уже?
И по доброте душевной подскажет, где взять нужный кусочек от оной
Ораклы или как DBD обмануть при сборке. Или чем еще люди пользуются,
окромя DBD? А Вы сразу - обидными словами :-)))

Ну а за информацию - спасибо.
И Вам, farit, большое спасибо!

NMaximA
() автор топика

Я могу попробовать поставить на другом Linux клиентскую часть, мне даже самому интересно, но не сейчас. Сложно все-таки найти место для разворачивания 600 Мб дистрибутива. У меня самого в качестве клиентских машин используется Windows всякий, так что приходится таскать компакт с дистрибутивом и инсталлировать этот самый SQL*Net каждый раз, при инсталляции в registry пишутся эти самые переменные окружения ORACLE_HOME, NLS_LANG и т.д. При этом инсталлится еще куча разных модулей. По минимуму получается где-то 30Мб. Думаю, что с Linux проще, там запишется все в одну директорию, а переменные окружения можно засунуть в .profile. Так что можно переписать директории между машинами. Я бы на вашем месте скачал бы дистрибутив Oracle8.0.5, лучше все-таки экспериментировать на своей машине, а не бегать за администратором базы данных. Скорее всего можно поискать на российских ftp-серверах с помощью http://ftpsearch.city.ru С самого technet.oracle.com скачивать очень сложно, только с помощью wget. DBD::Oracle обмануть очень сложно. При инсталляции она обращается к куче библиотек Oracle. Между прочим, я собрал выжимки из разных источников как раз о работе с Oracle через Perl: http://proxy.bashnet.ru/article Есть вопрос. Можно ведь попробовать установить gcc, прикрутить Perl к Sinix, поставить http-сервер и скачать кучу GNU софта. Что удобно в мире Unix - это возможность пользоваться одинаковыми программами на разных платформах. Может у Siemens уже есть компиленные пакеты. В общем сделать что-то удобное для работы. Вообще, что убивает во всяких там Solaris, так это необходимость сносить почти все демоны из поставки и ставить что-то человеческое по образцу Linux.

farit
()
Ответ на: комментарий от farit

Большое спасибо Вам, farit, за дельные советы и сочуствие
к моим проблемам :-))
Обязательно посещу Вашу страничку. А на Sinix делать интерфейс к базе
я не хочу (точнее - категорически не хочу) по двум приченам:
1. Уже упоминавшееся его (Sinix) своеобразие.
2. Категорическое желание разнести на разные хосты собственно базу
и "ейный" интерфейс доступа. В целях безопасности информации. По
той причине, что информация ВЕСЬМА ответственная и в случае ее
порчи полетит не одна голова. Поэтому базеха должна быть
"девственницей", ну а с сервером доступа - пусть попробуют "свалить",
если смогут :-)). И даже если его "повалят" - базе это с вероятностью
99.9% ничем не грозит. Во всем мире обычно так и делают. Там где
лежит база - никаких сетевых сервисов, кроме собственно "датабазного"
порта, и никаких юзеров, кроме системных и еще 2-х от СУБД: с правом
поиска и правом на изменение таблиц. А поскольку изменения в таблицы
вносятся только по внутренней ЛВС (а можно и сегментами разделить :-)),
то как-то повредить базу становится ну ОЧЕНЬ сложно. Подглядеть - да.
Но не поломать.

Ну да ладно, разболтался я что-то... Просто хотел объяснить, с чего
все началось...

Еще раз спасибо. Да, если не секрет - Вы на какой широте? :-))
В смысле, где обитаете? Может, живем в соседних дворах, а общаемся
через такие сложности... Приятно было потрепаться, и не плохо было
бы немножко получше познакомиться. Может быть, мои скромные знания
тоже где-то пригодятся... (О птичках - скоро начну искать новую работу.
Или по совместительству... Ну это так, отвлечение - интересно здесь,
задач много нерешенных, но больно уж платят мало...)

NMaximA
() автор топика

Привет снова! Конечно, безопасность - это хорошо. Для меня эта проблема не является первоочередной. Мне надо, чтобы люди могли через Интернет с телефонов доступа соединяться и обновлять свои данные. Так что приходится пользоваться встроенными средствами защиты самого Oracle, да импортить базу время от времени. Можно с помощью firewall открыть доступ только на определенные порты, например, где сидит http, а к Oracle открыть доступ из локалки. Усли уж на то пошло, можно на сервере доступа запустить скрипт, который зайдет под именем system в Oracle и запустит команду DELETE FROM что-то важное. Все-таки самое узкое в защите - это человеческий фактор, вдруг DBA подарит кому-нибудь свои пароли перед увольнением. Если делать параноидальную защиту, уж лучше поместить вторую базу на сервер доступа, куда ночью автоматически копировать базу данных. Ведь в Oracle каждый tablespace хранится в отдельном файле, который можно копировать туда-сюда. Все-таки для внутренних пользователей тоже было бы удобнее обращаться через web-интерфейс непосредственно на сервере, мы сейчас как раз рассматриваем такую возможность из-за перегруженности внутренней сети. Но этим вопросом занимается другой человек, БАЛЬШОЙ почитатель Windows NT c SQL Serverом. Он как-то посмеялся над Unix, я в тот же день ненамеренно запустил на его SQL Servere какой-то запрос, тот почему-то завис. Потом ко мне бегала куча народу с вопросом: "Что ты такого сделал?" из-за его повышенной тормознутости. Когда перегрузили, все стало нормально. Хотя, надо сказать, Oracle тоже не так уж быстр, как его описывают. Между прочим, для конфигурирования DBD::Oracle нужен скорее всего и Pro*C, а может и еще что.

farit
()
Ответ на: комментарий от farit

Добрый день, farit!
Логичные доводы. Но до определенной степени. Просто каждый "пляшет"
от специфики своих задач. По поводу паранои - да, я параноик и горжусь
этим :-)). И firewall мы давно используем. По поводу "зайти и выполнить
скрипт" - так пусть попробуют, когда я на сервере доступа оставлю один
http :-)). А табличное пространство у нас (увы - но опять же спорно) хранится
на специфичных Оракловских томах (в его виртуальной файловой системе).
Как заявлено, это убыстряет его работу. Хотя я могу что-то неверно формулировать -
я не админ Оракла. Я как раз все больше по UNIX-ам да по сети. И по безопасности
заодно.

Почему занимаюсь этим? Меня тоже достала ориентированность программеров наших
на мелкосовт, вот решил показать им, как это все будет здорово под Linux крутиться...
Ну и открыть, так сказать, новые горизонты :-))
А еще - достали юзеры, постоянно ломающие свои виндузы...

А NT у нас, по счастью, нет. Только Unix-ы да Nowell-я. И на том спасибо... :-)))

А безопасность информации - это наш лозунг. Первый и главный.

NMaximA
() автор топика

Как говорится, если кто-то сильно захочет что-то сломать,
обязательно сломает. Скорее придется бороться со своими
пользователями, чем с какой-то мнимой угрозой извне.
Вот возьмет какой-нибудь из них и создаст таблицу
top_secret, а потом возьмет и даст команду
TRUNCATE TABLE top_secret;
После того, как обнаружит, что все данные потерты, будет
проклинать во всем хакеров.
И вообще тут люди что-то мало шевелятся, чтобы делать
удобные базы для людей. На Западе все давно вертится
вокруг корпоративных баз данных. Я клгда-то делал
небольшую базу для одного предприятия на Access и она
вполне неплохо работает до сих пор. Там для людей формочка,
они вносят нужные им данные, потом делают различные отчеты
и т.д.
В свете новых веяний появляются заказы делать базы данных
по Интернетовскому стандарту, чтобы было обращение к базе
через www-сервер с использованием стандартного браузера.
С помощью Perl сложновато добиться той интерактивности,
что и в традиционной базе данных, навроде, вводишь в поле
со списком начальные буквы слова, и ищется первое подходящее,
в то же время такое решение не генерирует лишний траффик.
Я вот всегда ориентируюсь на модем 9600, в некоторых деревнях
такая ужасная связь.
Используя Java, можно сделать что-то еще более интерактивное,
но с ней вечные проблемы.
В то же время я не являюсь противником Windows, удобно писать
быстренько какие-нибудь интерфейсы к базам данных, ну и
запускать IE. Все-таки мне приходится подлаживаться под нужды
народа.
Если нужен Oracle 8.0.5 под Linux, могу выложить на свой ftp.


farit
()
Ответ на: комментарий от farit

Про безопасность и т.п.

По поводу того, кто что хочет поломать - согласен. Вопрос лишь в
затраченном времени и силах. А моя задача - сделать так, чтобы и первое
и второе стали как можно больше - только-то :-)) Иными словами, чтобы
дешевле было информацию купить, нежели украсть, например. Или чтобы повредить
ее было ну ОЧЕНЬ дорого.

Ладно, пора, видимо "открыться": я работаю в ГУВД области - выводы
делайте сами. Базы розыска и т.д. и т.п.... Отсюда и все заморочки.
И федеральная программа, и маленькая зарплата, и обилие "недоделанных"
юзеров... И повышенные требования к безопасности. А модем 9600 - это
для нас даже неплохо. У нас на входе - серия модемов 14400. А у некоторых
юзеров даже 2400 встречается.

По поводу Web - приложений - приходилось видеть НУ ОЧЕНЬ красивые вещи.
Да, была там и "жаба" и прочие фокусы. А особенно впечатляет поиск по созвучиям
в словах. Но это не по теме...

По поводу дистрибутива - а сколько он весит? Я тут, вроде, договорился
на 7-с-чем-то. За предложение в любом слуаче спасибо!

Всего наилучшего!

NMaximA
() автор топика

Занимает дистрибутив где-то 140Мб, особо не покачаешь.
Проще отыскать где-нибудь у соседей. Мне вот когдато добрые
люди из Oracle прислали бету через DHL.
Правда, я ею так и не воспользовался, скачал более новую
версию.
Все красивости потребляют кучу ресурсов при скачивании.
По-моему, теперь на первое место по посещаемости выходят
те сайты, где каждый день можно найти что-то новое,
особенно с интерактивными базами данных. А на изыски
дизайна можно посмотреть разок и больше не ходить.
С той же java много проблем, связанных с совместимостью.
Есть, например, известный сайт http://nevod.perm.su/linux
У меня там постоянно Netscape слетает из-за какого-то
дурацкого счетчика пользователей Linux во всем мире.
Да и с кодировками, кажется, не все хорошо.
По правде говоря, неохота изучать эту самую Java,
привык как-то к Perl. Так много готовых программ на нем,
остается лишь пройтись по http://www.cgi-resources.com
выбрать что-то похожее по теме, собрать из нескольких
программ что-то свое, русифицировать и все.
Чем мне нравится мир Unix - это тем, что полно исходников
программ и обычно забесплатно. Всегда проще посмотреть, как
делают программы люди, чем начинать с нуля.
Мне самому как-то непривычно, когда ставят несколько
серверов, на одном крутится база данных, на другом http,
на третьем ftp. У меня самого на одном компьютере висит
куча демонов, и еще я сам постонно работаю, и иногда
Windows в окошечке запускаю, чтобы сбацать что-нибудь для
клиентских мест.

farit
()
Ответ на: комментарий от farit

Про дистрибутив и не только

Доброе утро, farit! (если оно доброе:-((...)

Я здесь вроде нашел, у кого добыть дистрибутивчик.
Если что не так, то видимо придется все же покачать.
Благо канал круглосуточный, и можно wget смело запускать.
Что ж теперь - если для дела надо, то и 140 можно "вытянуть"...
За пару суток вытяну. Поэтому, если не тяжело, положите его (дистриб),
пожалуйсто, куда-нибудь в доступное место. И url сообщите. Или по
email, или сюда.

Хотел еще че-нить умное написать, поддержать, так сказать, беседу, но башка
совершенно чугунная. Ночью сегодня по тревоге подняли, паразиты. Учения у них,
видите ли... У них учения, а у нас сегодня весь ВЦ спит на рабочих местах!
Еще бы - до трех ночи продержали, а к 8-30 - на работу!

Ну да ладно, не в тему это совсем. Снова я "плакаться" начал :-))
Засыпаю просто.

Всего наилучшего!

NMaximA
() автор топика

Если нужно, то farit@proxy.bashnet.ru

farit
()

Кстати кроме Perl, можно использовать PHP 3/4, но дистрибутив тащить
все равно прийдется. Можно конечно понаковырять библиотек и прочего,
но это достаточно долгое и нудное занятие.
Все равно sqlplus например иметь на машине доступа очень полезно,
для проверок программ интерфейса.
А дистрибутив можно посмотреть у нас:
http://www.podolsk.ru/~tid/ora_linux
http://central.inetcomm.net

tid
()
Ответ на: комментарий от tid

Спасибо всем

Спасибо всем за помощь советом и участие.
Добыл дистрибутив 8.05 под Linux.
Читаю доки и скоро начну инсталлить.

Одна беда - отвлекают часто. Ну да это дело победимое :-))

Всем большой привет! Будьте здоровы!

NMaximA
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.