day & night

Установка Oracle На Linux, Статьи
Дата обновления: , перейти к новому сообщению
#1
Modernistka



Опытный юзверь
**

Группа: Пользователи
Сообщений: 61
Регистрация: 25.08.2008
Пользователь №: 1.043.597


Респектов: 18
-----X----


Предупреждений: 0


Автор: 10001100

УСТАНОВКА ORACLE НА LINUX


Хотелось бы рассмотреть установку [acronym='Система Управления Базами Данных']СУБД [/acronym] Oracle на Linux, так как она вызывает некоторые сложности. Пару слов о дистрибутивах Oracle и Linux, используемых мной. Изначально Oracle я хотел поставить на свой нетбук ASUS Eee PC, на котором установлена Xandros OS (Debian-like дистрибутив). Прочитав великое множество статей и заметок, я выбрал Oracle-XE, но видимо не судьба... Не заработал TNS Listener (если не учитывать большого ряда все-таки решенных мною проблем). Затем я устремил свой взор на Oracle 10g (поговаривают, что лучше использовать эту версию, нежели нестабильную 11g), решив перебраться на стационарный компьютер со Slackware 12.1 на борту. После установки [acronym='Система Управления Базами Данных']СУБД [/acronym] (и ряда неудобств, с этой установкой связанных) меня постигло разочарование - работать Oracle отказался. Тогда-то я и решил рискнуть и попытать счастья с 11g. К чему это привело - читаем далее.

0. Лирическое отступление.

На нетбуке мной также был протестирован Oracle 9i. Результат меня мягко говоря не удовлетворил, так что на Eee также решено было попытаться поставить 11g. В целом, процесс шел довольно успешно до старта графического инсталлятора. Проблемка получилась при конфигурации, но так как у меня к тому времени уже была установлена [acronym='Система Управления Базами Данных']СУБД [/acronym] на стационарном компьютере, я не стал вникать в подробности и оставил попытки установки Oracle на нетбук. Однако, параллельно рекомендациям к установке Oracle на Slackware, я буду давать советы по инсталляции [acronym='Система Управления Базами Данных']СУБД [/acronym] на Xandros. Различия между двумя установками будут выделены красным цветом (это нужно делать в Xandros). Так что те, кто захочет довести инсталляцию на Eee до конца встретят меньше проблем на своем пути. Ну что ж, начнем.

1. Проверяем систему.
Итак. Мы имеем компьютер с установленной Slackware 12.1 (Xandros). В дальнейшем подразумевается, что все команды выполняются с правами пользователя root (для удобства). Установленный Oracle 11g занимает около 3.5Гб дискового пространства. Выполнение дальнейших команд подразумевает использование bash (или sh, но не csh).

Для начала может потребоваться сменить имя хоста. В Xandros, например, имя по умолчанию что-то вроде asus-[id], где id - длинный числовой идентификатор. Очень неудобно. Узнаем текущее имя:
Code
~# hostname
linux

В моем случае это "linux" и я буду менять его скажем на "slackware". Для смены имени нужно подправить два файла: /etc/hosts и /etc/HOSTNAME (/etc/hostname):
Code
~# nano /etc/hosts
 
 GNU nano 2.0.7     Файл: /etc/hosts
...
# For loopbacking.
127.0.0.1      localhost
127.0.0.1      linux.localhost linux   #меняем linux на желаемое имя
...
# End of hosts.

Нажимаем ^X (Ctrl-X), Y и Enter. Теперь редактируем /etc/HOSTNAME:
Code
~# nano /etc/HOSTNAME
  GNU nano 2.0.7    Файл: /etc/HOSTNAME

linux.localhost      #меняем linux на желаемое имя

(Идентичные операции, правда придется использовать kwrite или vi (впрочем, любой редактор подойдет). Также стоит учесть, что второй файл в Xandros называется /etc/hostname.)
Проверяем /etc/profile на предмет строки "umask 022":
Code
~# cat /etc/profile | grep umask
# Default umask.  A umask of 022 prevents new files from being created group
umask 022

Если вывод отсутствует, необходимо эту строку добавить.
Скачиваем дистрибутив Oracle 11g отсюда. Выбираем Linux x86. Пока скачивается дистрибутив можно сделать необходимые приготовления. Тут необходимо сказать, что приготовлений этих в официальной документации хватит на пять скачиваний [acronym='Система Управления Базами Данных']СУБД [/acronym], поэтому предлагаю свой вариант (только необходимое). После команд предоставлен мой вывод, т.к. у меня все пользователи и группы уже существуют внимания на него обращать не стоит. Так должно будет быть после приготовлений. Приступим.

2. Предустановочные приготовления. Пользователи и группы.

Проверяем, существует ли группа dba:
Code
~# grep dba /etc/group
dba:x:103:oracle

Если нет - создаем:
Code
~# groupadd oinstall
~# groupadd dba

Создаем домашний каталог для пользователя oracle:
Code
~# mkdir /home/oracle

Проверяем, существует ли пользователь oracle:
Code
~# id oracle
uid=1000(oracle) gid=102(oinstall) группы=102(oinstall),103(dba)

Если нет - создаем:
Code
~# useradd -g oinstall -G --home /home/oracle dba oracle

Если же существует, проверяем принадлежность его к группе oinstall. Если к таковой группе он не принадлежит:
Code
~# usermod -g oinstall -G dba --home /home/oracle oracle

Далее, задаем пароль пользователю oracle (в выводе - предупреждение о слишком слабом пароле, т.к. СУБД устанавливается дома и только для ознакомления - не принципиально):
Code
~# passwd oracle
Changing password for oracle
Enter the new password (minimum of 5, maximum of 127 characters)
Please use a combination of upper and lower case letters and numbers.
New password:
Bad password: too simple.
Warning: weak password (enter it again to use it anyway).
New password:
Re-enter new password:
Password changed.

Проверяем существует ли пользователь nobody:
Code
~# id nobody
uid=99(nobody) gid=99(nogroup) группы=99(nogroup),98(nobody)

Если нет - создаем:
Code
~# useradd nobody

Все, часть приготовлений с пользователями и группами закончена.

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

Создаем файл /etc/sysctl.conf со следующим содержанием:
Code
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144

Сделать это можно так:
Code
~# touch /etc/sysctl.conf

(В Xandros такой файл уже существует, строки можно просто дописать в конец.)
Меняем текущие параметры ядра:
Code
~# sysctl -p

Создаем директорию /u01/app/ и меняем ее владельца на oracle, а также меняем права:
Code
~# mkdir -p /u01/app/
~# chown -R oracle:oinstall /u01/app/
~# chmod -R 775 /u01/app/

(Во время установки на Xandros необходимо учитывать, что дисковое пространство доступно в директории /home. Если попытаться установить Oracle, используя вышеуказанные пути, то будет выведено сообщение о нехватке места. Создавать директорию нужно в /home, например /home/u01/app. То же касаемо остальных директорий, упоминаемых далее.)
Перезагружаем компьютер (надеюсь Oracle уже скачался? =)).

4. Заканчиваем приготовления.

Для определенности решим, что скачанный архив находится в папке /home. Распакуем его:
Code
~# unzip linux_11gR1_database_1013.zip

Поменяем права на созданный каталог ./database:
Code
~# chmod -R 777 ./database

Все приготовления окончены, пора приступать к началу установки.

5. Геморрой с X-сервером.

Разрешаем клиентам подсоединяться к X-серверу, затем смотрим и запоминаем значение переменной окружения $DISPLAY:
Code
~# xhost +
access control disabled, clients can connect from any host
~# echo $DISPLAY
:0.0

Логинимся под пользователем oracle с правами суперпользователя:
Code
~# su - oracle

Проверяем переменную $DISPLAY, видим что ее не существует. Значит нам нужно ее установить (не забыли значение, подсмотренное под рутом? =)) и сразу же проверить работоспособность X-сервера, запустив xclock:
Code
~$ export DISPLAY=:0.0
~$ echo $DISPLAY
:0.0
~$ xclock

Если появятся часики - все хорошо.
Теперь необходимо установить еще несколько переменных окружения. Но сначала следует создать директорию /u01/app/tmp и задать права:
Code
~$ mkdir /u01/app/tmp
~$ chmod a+wr /u01/app/tmp

Теперь можно установить переменные:
Code
~$ TMP=/u01/app/tmp
~$ TMPDIR=/u01/app/tmp
~$ export TMP TMPDIR
~$ ORACLE_BASE=/u01/app/oracle
~$ ORACLE_SID=mydb
~$ export ORACLE_BASE ORACLE_SID

Теперь нужно удалить переменные $ORACLE_HOME и $TNS_ADMIN, которые могли остаться от прошлых неудачных установок:
Code
~$ unset ORACLE_HOME
~$ unset TNS_ADMIN

Проверим настройки среды:
Code
~$ umask
0022
~$ env | more

umask может возвращать одно из значений: 22, 022, 0022. В выводе env не должно быть переменных $ORACLE_HOME и $TNS_ADMIN, остальные должны присутствовать.
Проверяем, существуют ли файлы /etc/oraInst.loc и /etc/oratab, если да - удаляем (он мог остаться с предыдущих установок):
Code
~$ sudo rm /etc/oraInst.loc
Password:
~$ sudo rm /etc/oratab
Password:

(При попытке дальнейшей установки в Xandros получим ошибку "Assertion `c->xlib.lock' failed". Описание бага можно найти здесь. Решение состоит в том, чтобы присвоить переменной окружения $LIBXCB_ALLOW_SLOPPY_LOCK значение "1":
Code
~$ export LIBXCB_ALLOW_SLOPPY_LOCK=1
)

6. Наконец-то установка.

Запускаем инстяллятор:
Code
~$ /home/database/runInstaller
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 80 MB.   Actual 28612 MB Passed
Checking swap space: 0 MB available, 150 MB required. Failed <<<<
Checking monitor: must be configured to display at least 256 colors. Actual 16777216 Passed

Some requirement checks failed. You must fulfill these requirements before

continuing with the installation,at which time they will be rechecked.

Continue? (y/n) [n] y

Несмотря на проваленный тест, отвечаем "Да" (проверка не пройдена из-за отсутствия у меня свопа). Запускается графический установщик.

7. Графический инсталлятор или проблемы только начинаются.

Рассмотрим установку по шагам.

ШАГ 1. Select Installation Method.

Твой софтовый форум


Выбираем группу oinstall (!!!) в UNIX DBA Group. Задаем пароль (для определенности qwerty). Пароль будем действителен для пользователей SYS, SYSMAN, DBSNMP. Жмем "Next".

ШАГ 2. Specify Inventory Directory and Credentials.

Твой софтовый форум


Проверяем, установлена ли группа oinstall и жмем "Next".

ШАГ 3. Product-Specific Prerequisite Checks.

Твой софтовый форум


Смотрим на результаты проверок и вне зависимости от них нажимаем "Next" и затем "Yes".

ШАГ 4. Oracle Configuration Manager.

Твой софтовый форум


Нажимаем "Next".

ШАГ 5. Summary.

Твой софтовый форум


Проверяем правильность введенной информации и жмем "Install".

ШАГ 6. Install.

Твой софтовый форум


Здесь можно наблюдать за ходом установки. При ошибках жмем "Ignore" или "Continue".

ШАГ 7. Configuration Assistants.
(Именно на этом шаге возникли проблемы с Xandros, которые я не стал решать. Кто сможет получить положительный результат - пишите =))

Дожидаемся окончания работы конфигураторов и смотрим на появившееся окно

Твой софтовый форум


Здесь нужно запомнить (а лучше записать) строки "Global Database Name", "SID", "The Database Control URL is ...". Жмем "ОК".
Жмем "Next" и видим окно

Твой софтовый форум


Execute Configuration Scripts. Открываем новый сеанс консоли (с правами root, не закрывая текущий) и вводим там команды из появившегося окна:
Code
~# /u01/app/oraInventory/orainstRoot.sh
~# /u01/app/oracle/product/11.1.0/db_1/root.sh

Возвращаемся в Execute Configuration Scripts и жмем "ОК".

ШАГ 8. End of Installation.
Твой софтовый форум


Жмем "Exit" и "Yes".

8. Проверка.

Все установлено, осталось проверить работу [acronym='Система Управления Базами Данных']СУБД [/acronym]. Откроем любой браузер, например firefox, и введем в адресную строку то, что было в поле "The Database Control URL is ...". У меня это https://localhost:1158/em. Видим форму входа. В поле "User Name" вводим SYSTEM, а в качестве пароля используем то, что указали в шаге 1 (у меня qwerty).

9. Вместо заключения.

Вроде все работает, всевозможные проверки оставим за пределами данного произведения =). Думаю, стоит сделать несколько замечаний:
  • Все-таки статья эта получилась довольно узконаправленной.. думаю, на других дистрибутивах могут возникнуть (а может и наоборот) другие проблемы. Например, из-за отсутствия некоторых пакетов, которые упоминаются в зависимостях Oracle. Так что... Не судите строго, если что не так.
  • Если что-то не получается - пишите. Не обязательно по конкретной статье, по установке Oracle на другие дистрибутивы вопросы также принимаются. Условие: содержание полной нформации об ошибке + наработки и мысли автора вопроса по устранению неполадки.
  • Как всегда принимается конструктивная критика. Уверен, что все можно сделать проще и красивее. Если кто-то знает как - жду с нетерпением.
P.S. Между прочим, после всего этого я Xandros благополучно снес и поставил Debian. Гораздо стабильней и удобней. Так что... рекомендую =) Вообще, на eee много различных дистрибутивов, есть из чего выбрать.. Почитать можно например тут.

BiT-Team.com
User is offline
Go topGo end
 

Ответов(1 - 1)
10.04.2009 - 9:32
#2
zema_v



Опытный юзверь
**

Группа: Пользователи
Сообщений: 93
Регистрация: 1.11.2005
Пользователь №: 61.285


Респектов: 3
-----X----


Предупреждений:


Спасибо за статью. Очень интересно, одно время думал об этом, но не решался. Вот теперь думаю займусь.
User is offline
Go topGo end

Topic Options
Сейчас: 28.03.2024 - 23:09
Мобильная версия | Lite версия