Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Как изменить переменные среды для пользователя "oracle"?  [new]
isabsent
Member

Откуда:
Сообщений: 39
Пробую разобраться в установке oracle-xe-universal.
База работает, но вижу ошибки в файле запускабазы alert_XE.log

Cannot determine all dependent dynamic libraries for /proc/self/exe
Unable to find dynamic library libocr10.so in search paths
RPATH = /ade/aime1_build2101/oracle/has/lib/:/ade/aime1_build2101/oracle/lib/:/ade/aime1_build2101/oracle/has/lib/:
LD_LIBRARY_PATH is not set!
The default library directories are /lib and /usr/lib
Unable to find dynamic library libocrb10.so in search paths
Unable to find dynamic library libocrutl10.so in search paths
Unable to find dynamic library libocrutl10.so in search paths

Подозреваю что они связаны с неправильно установленными переменными среды для пользователя "oracle", от имени которого база запускается. Но его создавал не я, а сама база при установке на Ubuntu 8.04 Desktop (Debian). Никаких файлов типа .bashrc где можно прописать переменные среды в директориях, созданных базой при установке я не нашёл. Как их всё-таки поменять?
11 авг 08, 18:39    [6053972]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить переменные среды для пользователя "oracle"?  [new]
darkky_n
Member

Откуда: Нижний Новгород
Сообщений: 18
/home/oracle/.bash_profile

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
11 авг 08, 19:09    [6054059]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить переменные среды для пользователя "oracle"?  [new]
isabsent
Member

Откуда:
Сообщений: 39
darkky_n
/home/oracle/.bash_profile

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH


Да в том-то и дело что такой директории /home/oracle/ не создается при инсталляции. Если я ее создам руками то никакого отношения к запуску базы она иметь не будет очевидно. И прописывать туда переменные среды никакого смысла нет.
11 авг 08, 19:29    [6054104]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить переменные среды для пользователя "oracle"?  [new]
jan2ary
Member

Откуда: Киев
Сообщений: 1780
isabsent
darkky_n
/home/oracle/.bash_profile

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH


Да в том-то и дело что такой директории /home/oracle/ не создается при инсталляции. Если я ее создам руками то никакого отношения к запуску базы она иметь не будет очевидно. И прописывать туда переменные среды никакого смысла нет.

А вы по какой доке инсталляцию проводите?
Покажите вывод команды:

grep oracle /etc/passwd
11 авг 08, 20:10    [6054177]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить переменные среды для пользователя "oracle"?  [new]
isabsent
Member

Откуда:
Сообщений: 39
jan2ary
isabsent
darkky_n
/home/oracle/.bash_profile

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH


Да в том-то и дело что такой директории /home/oracle/ не создается при инсталляции. Если я ее создам руками то никакого отношения к запуску базы она иметь не будет очевидно. И прописывать туда переменные среды никакого смысла нет.

А вы по какой доке инсталляцию проводите?
Покажите вывод команды:

grep oracle /etc/passwd


Провожу по http://www.oranet.ru/OraDoc10gXE/install.102/b25144/toc.htm#BABCEAHD - это перевод доки с сервера оракла.

lev@athlon:~$ grep oracle /etc/passwd
oracle:x:1001:1001::/usr/lib/oracle/xe:/bin/bash
11 авг 08, 20:43    [6054246]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить переменные среды для пользователя "oracle"?  [new]
Aliona
Member

Откуда: Питер
Сообщений: 4023
isabsent
darkky_n
/home/oracle/.bash_profile

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH


Да в том-то и дело что такой директории /home/oracle/ не создается при инсталляции. Если я ее создам руками то никакого отношения к запуску базы она иметь не будет очевидно. И прописывать туда переменные среды никакого смысла нет.

/home/oracle/ никакого отношения ни к инстоляции оракл , ни к запуску БД не имеет.
Тут имеется в виду рабочая дяректрия пользователя oracle, хозяина ПО оракл. Может быть у вас используется другой пользователь с дугой домашней директорией, а ней как раз и должен находиться файл .bash_profile или .profile, в котором и прописываются переменные окружения этого пользователя и который исполняется во время коннекта пользователя в OC.
12 авг 08, 11:33    [6055604]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить переменные среды для пользователя "oracle"?  [new]
jan2ary
Member

Откуда: Киев
Сообщений: 1780
Значит файлы настроек нало искать в /usr/lib/oracle/xe
12 авг 08, 12:37    [6056111]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить переменные среды для пользователя "oracle"?  [new]
isabsent
Member

Откуда:
Сообщений: 39
jan2ary
Значит файлы настроек нало искать в /usr/lib/oracle/xe

Я там первым делом посмотрел. Ничего похожего на файлы настроек среды в этой директории нет. Более того там вообще никаких файлов нет - только глубже есть скрипты, настраивающие базу данных. Наверное в них надо что-то править...
12 авг 08, 19:26    [6058777]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить переменные среды для пользователя "oracle"?  [new]
isabsent
Member

Откуда:
Сообщений: 39
Если бы я сам создавал пользователя oracle, то появились бы настроечные файлы, но так как его создает база данных при инсталляции, то видимо она применяет какие-то опции создания пользователя, которые исключают появление в его домашней директории файлов настроек среды.
12 авг 08, 19:55    [6058824]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить переменные среды для пользователя "oracle"?  [new]
jan2ary
Member

Откуда: Киев
Сообщений: 1780
А вы просто создайте там эти файлы. Посмотрим, что будет :)
12 авг 08, 22:21    [6059028]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить переменные среды для пользователя "oracle"?  [new]
Мутаген
Member

Откуда:
Сообщений: 719
для XE - в инит-скрипте
12 авг 08, 23:36    [6059198]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить переменные среды для пользователя "oracle"?  [new]
isabsent
Member

Откуда:
Сообщений: 39
Мутаген
для XE - в инит-скрипте

Можно поподробнее? Это файл с расширением .sh или .ora? Есть oracle_env.sh например. Дело в том что инит-скрипт должен отработать в процессе запуска базы. Запускается она от имени пользователя oracle. Где посмотреть какие скрипты отработали при запуске?
13 авг 08, 05:19    [6059448]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить переменные среды для пользователя "oracle"?  [new]
isabsent
Member

Откуда:
Сообщений: 39
Похоже мне нужно войти под пользователем oracle и изменить руками из командной строки переменную LD_LIBRARY_PATH, так как она видимо как-то криво прописана в скриптах, запускающих базу. Перезапустить базу и посмотреть исчезнут ошибки или нет. Как это сделать непонятно - пароля у юзера oracle я не знаю - он создавался в процессе инсталляции самой базой. Менять пароль юзеру oracle? Есть у кого-нибудь идеи?
13 авг 08, 05:47    [6059456]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить переменные среды для пользователя "oracle"?  [new]
jan2ary
Member

Откуда: Киев
Сообщений: 1780
Есть два варианта зайти ораклом:
1. При установке ХЕ пароль для os-пользователя oracle, базейных пользователей sys, sysman устанавливается один на всех - который вводился при установке. Там же написано было.
2. Стать рутом, потом стать ораклом - это в лоб, но работает всегда.
13 авг 08, 10:26    [6060001]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить переменные среды для пользователя "oracle"?  [new]
isabsent
Member

Откуда:
Сообщений: 39
jan2ary
Есть два варианта зайти ораклом:
1. При установке ХЕ пароль для os-пользователя oracle, базейных пользователей sys, sysman устанавливается один на всех - который вводился при установке. Там же написано было.


Там написано об установке пароля для администраторов базы данных - sys и system. Его я конечно установил, но к юзеру oracle, от имени которого база стартует, это не имеет никакого отношения. Его функция - только стартовать базу данных. От его имени висят процессы (которые видны через ps -aux)

oracle 7876 0.0 0.6 21756 5884 ? Ss 13:49 0:00 /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/tnslsnr
oracle 7881 0.0 1.0 323248 9780 ? Ss 13:49 0:00 xe_pmon_XE
oracle 7883 0.0 0.9 322632 8408 ? Ss 13:49 0:00 xe_psp0_XE
oracle 7885 0.0 1.3 322632 12404 ? Ss 13:49 0:00 xe_mman_XE
oracle 7887 0.0 1.1 324700 10732 ? Ss 13:49 0:00 xe_dbw0_XE
oracle 7889 0.0 1.3 338184 12608 ? Ss 13:49 0:00 xe_lgwr_XE
oracle 7891 0.0 1.5 322640 13708 ? Ss 13:49 0:00 xe_ckpt_XE
oracle 7893 0.1 3.3 323172 29840 ? Ss 13:49 0:00 xe_smon_XE
oracle 7895 0.0 0.9 322632 8408 ? Ss 13:49 0:00 xe_reco_XE
oracle 7897 0.2 2.1 324240 19200 ? Ss 13:49 0:00 xe_cjq0_XE
oracle 7899 0.7 4.4 325384 40164 ? Ss 13:49 0:00 xe_mmon_XE
oracle 7901 0.0 1.0 322632 9392 ? Ss 13:49 0:00 xe_mmnl_XE
oracle 7903 0.0 1.0 323272 9732 ? Ss 13:49 0:00 xe_d000_XE
oracle 7905 4.3 7.0 326928 63388 ? Ss 13:49 0:02 xe_s000_XE
oracle 7907 0.0 1.4 323244 12880 ? Ss 13:49 0:00 xe_s001_XE
oracle 7909 0.0 1.3 323244 12376 ? Ss 13:49 0:00 xe_s002_XE
oracle 7911 0.0 1.3 323244 12516 ? Ss 13:49 0:00 xe_s003_XE
oracle 7915 0.0 1.0 322632 9560 ? Ss 13:49 0:00 xe_qmnc_XE
oracle 7921 0.0 1.1 322628 10652 ? Ss 13:49 0:00 xe_q000_XE

То есть oracle - это юзер в Линуксе. А то о чем вы говорите - это администраторы базы данных.

jan2ary
2. Стать рутом, потом стать ораклом - это в лоб, но работает всегда.


Это можно конечно, но мне надо чтобы при загрузке от имени oracle правильно прописалась переменная среды LD_LIBRARY_PATH. Если я под рутом создам какие-то конфигурационные файлы в домашней директории пользователя oracle, то они будут проигнорированы при старте базы от его имени - потому что они ему просто не требуются для старта. Стартует же он без них.
А если я от имени рута поменяю пароль пользователю oracle, зайду под ним и экспортирую правильную LD_LIBRARY_PATH, то когда я выйду из пользователя oracle, переменная снова обнулится и старт базы будет снова с неправильными переменными среды...
13 авг 08, 10:57    [6060280]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить переменные среды для пользователя "oracle"?  [new]
jan2ary
Member

Откуда: Киев
Сообщений: 1780
Ё-маё, а попробовать - религия не позволяет? Мы больше рассуждаем, чем делаем.
Еще раз повторю, при инсталляции пакета на шаге конфигурирования у пользователя запрашивается пароль, который будет общий для пользователей базы данных sys, system и пользователя операционной системы oracle.
Если база у вас стартует автоматически, то надо искать скрипты запуска базы данных и их править.
Только что раскопал:
Запускает базу скрипт /etc/init.d/oracle-xe, там есть строчка в функции start:
$SU -s /bin/bash $ORACLE_OWNER -c "$SQLPLUS -s /nolog @$ORACLE_HOME/config/scripts/startdb.sql" > /dev/null 2>&1

Она все равно выполняется из-под рута (потому как при старте системы) и все равно делает su на пользователя oracle. Пропишите переменные в этот скрипт или в скрипты инициализации оболочки для пользователя oracle (надо различать интерактивный и неинтерактивный режимы) и будет вам счастье.
13 авг 08, 11:10    [6060390]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить переменные среды для пользователя "oracle"?  [new]
isabsent
Member

Откуда:
Сообщений: 39
Да я попробовал уже. Сделал новый пароль пользователю oracle, зашел под ним, посмотрел переменную LD_LIBRARY_PATH - она там стоит как /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib: - вот это двоеточие на конце и дает ошибку скорее всего? Но странно что после того как я изменил под юзером oracle эту переменную на правильное значение база все равно стартовала с этими же ошибками в логе...

Щас поковыряю этот скрипт, которые вы предлагаете
13 авг 08, 11:36    [6060618]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить переменные среды для пользователя "oracle"?  [new]
isabsent
Member

Откуда:
Сообщений: 39
jan2ary

Запускает базу скрипт /etc/init.d/oracle-xe, там есть строчка в функции start:
$SU -s /bin/bash $ORACLE_OWNER -c "$SQLPLUS -s /nolog @$ORACLE_HOME/config/scripts/startdb.sql" > /dev/null 2>&1

Она все равно выполняется из-под рута (потому как при старте системы) и все равно делает su на пользователя oracle. Пропишите переменные в этот скрипт или в скрипты инициализации оболочки для пользователя oracle (надо различать интерактивный и неинтерактивный режимы) и будет вам счастье.

Проверил значение ORACLE_OWNER - она вообще не определена под юзером oracle. Как же тогда этот скрипт отрабатывает?
13 авг 08, 11:51    [6060731]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить переменные среды для пользователя "oracle"?  [new]
jan2ary
Member

Откуда: Киев
Сообщений: 1780
Предлагаю окинуть скрипт /etc/init.d/oracle-xe с самого начала.
Строка 45: ORACLE_OWNER=oracle
Оно?

Скрипт выполняется под пользователем root!
13 авг 08, 12:32    [6061087]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить переменные среды для пользователя "oracle"?  [new]
isabsent
Member

Откуда:
Сообщений: 39
jan2ary
Предлагаю окинуть скрипт /etc/init.d/oracle-xe с самого начала.
Строка 45: ORACLE_OWNER=oracle
Оно?

Скрипт выполняется под пользователем root!


Понял... То есть под пользователем oracle эта переменная и не устанавливается...
13 авг 08, 18:56    [6064057]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить переменные среды для пользователя "oracle"?  [new]
isabsent
Member

Откуда:
Сообщений: 39
Поступил совсем просто - зашёл под пользователем root. Проверил переменные среды - оказалось что ничего не установлено, все пустые. Как такое может быть если база была запущена и скрипт oracle-xe отработал - я не понимаю пока. Ну да ладно. Изменил одну единственную переменную командой под рутом
export LD_LIBRARY_PATH=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib
и перезапустил базу. Ошибки в логе исчезли! Значит причина в том что в скрипте переменная устанавливается неправильно. К сожалению не сильно разбираюсь в языке на котором пишется скрипт - не могу так вот сходу поправить его... Да и вопрос остается - почему не сохраняются переменные среды, которые прописаны в этом скрипте? Если эти переменные поместить в конфигурационный файл рута - они будут сохраняться?
13 авг 08, 19:37    [6064198]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить переменные среды для пользователя "oracle"?  [new]
jan2ary
Member

Откуда: Киев
Сообщений: 1780
После строчки

ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
(у меня это строка 44)

вставьте строку
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
13 авг 08, 20:46    [6064354]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить переменные среды для пользователя "oracle"?  [new]
isabsent
Member

Откуда:
Сообщений: 39
Да вы просто волшебник! )))
После внесения этой строчки скрипт по команде
sudo /etc/init.d/oracle-xe restart
отработал как надо - никаких ошибок в логе!

Осталось понять только почему он не отрабатывает по команде
sudo /etc/init.d/oracle-xe start - хотя должен. А так же почему база не стартует своим нормальным способом - через скрипт
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts/startdb.sh
Но она этого и раньше не делала - поэтому это уже вопросы следующего порядка )))
13 авг 08, 21:59    [6064450]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить переменные среды для пользователя "oracle"?  [new]
jan2ary
Member

Откуда: Киев
Сообщений: 1780
А какую ругань выдает?
/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts/startdb.sh не стартует, вероятно, потому, что его надо запускать из-под пользователя oracle. Возможно, ему унутре тоже надо прописать LD_LIBRARY_PATH.
sudo /etc/init.d/oracle-xe start - рискну предположить, не отработало из-за того, что база уже работает, при этом restart отработает правильно.

isabsent
Да вы просто волшебник! )))

Да нет, просто я тоже на убунте в свое время озадачивался подобными вопросами... Там много всяких недоделок, которые надо самому допиливать.
13 авг 08, 22:52    [6064516]     Ответить | Цитировать Сообщить модератору
 Re: Как изменить переменные среды для пользователя "oracle"?  [new]
isabsent
Member

Откуда:
Сообщений: 39
jan2ary
А какую ругань выдает?
sudo /etc/init.d/oracle-xe start - рискну предположить, не отработало из-за того, что база уже работает, при этом restart отработает правильно.

Нет - я гарантированно погасил базу командой shutdown immediate из под юзера oracle в терминале sqlplus. И в логах посмотрел - база выключилась.
jan2ary

Да нет, просто я тоже на убунте в свое время озадачивался подобными вопросами... Там много всяких недоделок, которые надо самому допиливать.

Вы имеете ввиду недоделок oracle-xe, а не Убунты?
Мне это кажется странным - с 2006 года лежит пакет, весь косой-кривой на сайте самой известной компании в области базы данных и никто не хочет его поправить ))) Кроме того в демонстрационной базе, которая с ним идёт -Human Resourse (HR) есть баг, который тоже 3 года никто не поправил. Интересно - в тех пакетах, которые они за деньги продают тоже куча багов, которые видны даже таким малоквалифицированным пользователям как я?
14 авг 08, 05:08    [6064772]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить