Добро пожаловать, Гость
Логин: Пароль: Запомнить меня
Администрирование Oracle Database:
- Установка и настройка базы данных
- Обновление, применение патчей
- Оптимизация, настройка производительности
- Обучение, подготовка персонала, оптимизация
  • Страница:
  • 1
  • 2
  • 3

ТЕМА: Как изменить переменные среды для пользователя "oracle"?

Re: Как изменить переменные среды для пользователя "oracle"? 01 фев 2012 12:01 #4361

  • 1cheburashka5
  • 1cheburashka5 аватар Автор темы
  • Посетитель
  • Посетитель
Там написано об установке пароля для администраторов базы данных - 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 - это юзер в Линуксе. А то о чем вы говорите - это администраторы базы данных.

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



Это можно конечно, но мне надо чтобы при загрузке от имени oracle правильно прописалась переменная среды LD_LIBRARY_PATH. Если я под рутом создам какие-то конфигурационные файлы в домашней директории пользователя oracle, то они будут проигнорированы при старте базы от его имени - потому что они ему просто не требуются для старта. Стартует же он без них.
А если я от имени рута поменяю пароль пользователю oracle, зайду под ним и экспортирую правильную LD_LIBRARY_PATH, то когда я выйду из пользователя oracle, переменная снова обнулится и старт базы будет снова с неправильными переменными среды...

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Как изменить переменные среды для пользователя "oracle"? 01 фев 2012 12:02 #4362

  • Piret
  • Piret аватар
  • Посетитель
  • Посетитель
Ё-маё, а попробовать - религия не позволяет? Мы больше рассуждаем, чем делаем.
Еще раз повторю, при инсталляции пакета на шаге конфигурирования у пользователя запрашивается пароль, который будет общий для пользователей базы данных 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 (надо различать интерактивный и неинтерактивный режимы) и будет вам счастье.

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Как изменить переменные среды для пользователя "oracle"? 01 фев 2012 12:02 #4363

  • 1cheburashka5
  • 1cheburashka5 аватар Автор темы
  • Посетитель
  • Посетитель
Проверил значение ORACLE_OWNER - она вообще не определена под юзером oracle. Как же тогда этот скрипт отрабатывает?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Как изменить переменные среды для пользователя "oracle"? 01 фев 2012 12:03 #4364

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

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

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Как изменить переменные среды для пользователя "oracle"? 01 фев 2012 12:03 #4365

  • 1cheburashka5
  • 1cheburashka5 аватар Автор темы
  • Посетитель
  • Посетитель
Поступил совсем просто - зашёл под пользователем root. Проверил переменные среды - оказалось что ничего не установлено, все пустые. Как такое может быть если база была запущена и скрипт oracle-xe отработал - я не понимаю пока. Ну да ладно. Изменил одну единственную переменную командой под рутом
export LD_LIBRARY_PATH=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/lib
и перезапустил базу. Ошибки в логе исчезли! Значит причина в том что в скрипте переменная устанавливается неправильно. К сожалению не сильно разбираюсь в языке на котором пишется скрипт - не могу так вот сходу поправить его... Да и вопрос остается - почему не сохраняются переменные среды, которые прописаны в этом скрипте? Если эти переменные поместить в конфигурационный файл рута - они будут сохраняться?

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

Re: Как изменить переменные среды для пользователя "oracle"? 01 фев 2012 12:04 #4366

  • Loldis
  • Loldis аватар
  • Посетитель
  • Посетитель
После строчки

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

вставьте строку
export LD_LIBRARY_PATH=$ORACLE_HOME/lib

Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.

  • Страница:
  • 1
  • 2
  • 3