Приветствую друзья. Недавно поднял у себя сервер на Ubuntu 8.04.1 и Oracle Enterprise Edition 10.2.0.1. Девствовал в соответствии с информацией, изложенной в первом посте. Кое-чего та не хватает, кое-чего делал иначе в связи со своими требованиями. В общем, в итоге всё прекрасно заработало.
Посему хочу поделиться информацией с желающими поднять эту махину у себя, дабы не наступали на те камни, что мне попались.
Хочу начать вот с чего.
Выражаю огромную благодарность уважаемому
Denzzzo за его неоценимую помощь и проявленное терпение. Спасибо многоуважаемый.
Теперь нюансы.
1) Как я уже отметил, устанавливаю Oracle Enterprise Edition 10.2.0.1 на Ubuntu 8.04.1.
- Достал дистрибутива, запакованный в zip с оффсайта. Это сделать не составляет никаких проблем, благо он в свободном доступе, нужно лишь зарегать там.
- Теперь кое какие изменения. При установке Убубнты я разбил диск следующим образом.
под
./ - выделен отдельный раздел с запасом около 15 Гб.
под
./home - выделен специально всё оставшееся место 70Гб (плюс оставил 20 Гб под резервное место, на всяк пожарный).
/home - расположил на отдельном разделе, поскольку там планируется установить оракл и все его данные.
2) Информация о моей системе:
Имя хоста - linux-server;
Имя пользователя - akr;
3) Теперь нюанс касательно пакетов. Методом проб и ошибок выяснилось что. При установке пакетов командой:
sudo apt-get install build-essential libaio rpm lesstif2-dev alien
Ubuntu не находит пакет
libaio а предлагает в замен его пакет
libaio1 из своих репов. Что не есть хорошо, более того очень плохо.
возникает это, потому что следую по руководству в первом посте, не было прописано в соурлист офф-репа оракла.
Поэтому нужно делать так:
Отредактируем файл репозитариев apt:
sudo nano /etc/apt/sources.list
Добавим строку
deb http://oss.oracle.com/debian unstable main non-free
Сохраняем файл.
Теперь импортируем ключ подписи репозитария
wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle -O- | sudo apt-key add -
Обновляем apt
sudo apt-get update
Внимание! И только теперь начинает устанавливать пакеты.
sudo apt-get install build-essential libaio rpm lesstif2-dev alien
Эта процедура обязательна как для установке урезанной так и полной версии оракла.
Дальше следуем руководству
Denzzzo из первого поста.
ЗЫ: В моём примере немного изменены пути, поскольку как я отметил выше, ставлю другую папку.
Переходим к созданию пользователя oracle и групп, в которых он будет состоять(после первой команды sudo система запросит пароль пользователя, вводим едем дальше)
akr@linux-server:~$ sudo groupadd oinstall
groupadd: группа oinstall существует
akr@linux-server:~$ sudo groupadd dba
akr@linux-server:~$ sudo groupadd nobody
akr@linux-server:~$ sudo useradd -g oinstall -G dba,nobody -d /home/oracle -s /bin/bash oracle
Назначим пароль пользователю oracle
akr@linux-server:~$ sudo passwd oracle
Введите новый UNIX пароль:
Повторите новый UNIX пароль :
passwd: пароль успешно обновлён
Определимся с базовой директорией oracle, создадим ее и назначим владельцем oracle и группу oinstall
akr@linux-server:~$ sudo mkdir /home/oracle
akr@linux-server:~$ sudo chown -R oracle:oinstall /home/oracle
akr@linux-server:~$ sudo chmod -R 775 /home/oracle
Отредактирум файл .bashrc в домашней директории пользователя oracle
akr@linux-server:~$ sudo nano /home/oracle/.bashrc
и добавим туда следующие переменные окружения
Код:
export ORACLE_BASE=/home/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10gR2
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
Пришло время заняться настройками ядра -
akr@linux-server:~$ sudo nano /etc/sysctl.conf
добавим следующие строки
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
Применяем параметры без перезагрузки (ну, или ребутимся)
akr@linux-server:~$ sudo /sbin/sysctl -p
Правим файл ограничений
akr@linux-server:~$ sudo nano /etc/security/limits.conf
Добавляем строки -
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
Пришла пора притвориться, что у нас rpm-based система типа RHEL
Создадим символические ссылки, чтобы Oracle находил то, что ищет, там, где ищет
akr@linux-server:~$ sudo ln -s /usr/bin/awk /bin/awk
akr@linux-server:~$ sudo ln -s /usr/bin/rpm /bin/rpm
akr@linux-server:~$ sudo ln -s /lib/libgcc_s.so.1 /lib/libgcc_s.so
akr@linux-server:~$ sudo ln -s /usr/bin/basename /bin/basename
4) Теперь продолжение.
Варианты возможно есть и другие но предлагаю, и описываю то который использовал я.
Ребутим систему, или выходим из сеанса akr и заходим в систему под пользователем oracle (ЗЫ: пароль мы ему установили выше.)
Я создал папку install в папке /home/oracle там у меня лежит распакованный архив с дистрибутивом скачанного с оффсайта Oracle.
Перейдем каталог с разархивированной установкой Oracle
oracle@linux-server:~$ cd '/home/oracle/Install/database
и запустим инсталлятор
oracle@linux-server:~/Install/database$ ./runInstaller -ignoreSysPrereqs
Дальше следуем шаг за шагом инсталлятору.
Я выбрал:
DBA: orclsrv
SID: orcl
В процессе установке инсталлятор может ругать иногда тут ничего страшного нет(если конечно не сильно матерится) поскольку не совсем он рассчитан на "Debian-based system". (пример ошибки приложен к посту). Жмём - "Continue" и едем дальше.
В конце устаноке исталятор скажет что нужно запустить некоторые скрипты от имени root`а.
Для этого делаем следующее в консоли:
Становимся пользователем с правами на выполнение команды sudo и выполняем требуемые скрипты.
oracle@linux-server:~$ su -l akr
Пароль:
akr@linux-server:~$ sudo ./home/oracle/oraInventory/orainstRoot.sh
akr@linux-server:~$ sudo ./home/oracle/product/10gR2/root.sh
после чего нужно отредактировать файл oratab, который находится в ./etc
делаем следующее в этой же консоли от имени akr.
sudo mc
запустится консольный фаловый менеджер
находим файл ./etc/oratab и правим его
второй вариант, вместо mc
sudo nano ./etc/oratab
в файле oratab редактируем строку
orcl:/home/oracle/product/10gR2:N
на
orcl:/home/oracle/product/10gR2:Y
тем самым мы скажем скрипту старта оракла и всех его прибамбасин что необходимо запускать нашу базу с SID`ом "orcl"
теперь можем закрыть эту консоль. Дальше делаем всё от имени пользователя "oracle"
После этого откорректируем сам скрипт стара базы. Для этого нужно поправить файл "dbstart" который находится по пути /home/oracle/product/10gR2/bin dbstart. редактируем любым удобным способом. Например через "проводник" (nautilus) заходим в эту папку и используя стандартный редактор "gedit"
В этом файле по умолчанию не правильный путь к листенеру ORACLE_HOME_LISTNER.
меняем его на следующее:
# Set this to bring up Oracle Net Listener
ORACLE_HOME_LISTNER=/home/oracle/product/10gR2/
Теперь всё (ЗЫ: хотя не совсем. Можно и желательно конечно настроить автостарт и автостоп оракла при старте выключении компа, но об этом позже, как удастся самому корректно организовать опишу обязательно, как это сделать, информация есть, но пока у меня нормально это сделать не вышло, а не нормально не хочется).
Запоминаем две команды ну или записываем, в какой нить текстовый файл Start-Stop Oracle.txt и кладём его на рабочий стол.
Start-Oracle:
oracle@linux-server:~$ cd /home/oracle/product/10gR2/bin/
oracle@linux-server:~/product/10gR2/bin$ ./dbstart
Processing Database instance "orcl": log file /home/oracle/product/10gR2/startup.log
Stop-Oracle:
oracle@linux-server:~$ cd /home/oracle/product/10gR2/bin/
oracle@linux-server:~/product/10gR2/bin$ ./dbshut
dbstart - стартует оракл
dbshut - его корректно "уложит".
перегружаемся, заходим под юзером oracle и делаем следующее:
oracle@linux-server:~$ cd /home/oracle/product/10gR2/bin/
oracle@linux-server:~/product/10gR2/bin$ ./dbstart
после чего можно коннектиться к БД.
перед выключением сервера желательно запускать команду - dbshut:
oracle@linux-server:~$ cd /home/oracle/product/10gR2/bin/
oracle@linux-server:~/product/10gR2/bin$ ./dbshut
Думаю, ничего не забыл. Если будут вопросы, пишите, помогу, чем смогу.