ДНЕВНИКИ
Назад >>
Сергей ШИБКА
>>
CentOS
20.02.2012 CentOS 5.x и Oracle
Установка Oracle 11g Release 2 (11.2) for Linux x86 на CentOS 5.x
В мануале, который находиться в дистрибутиве, устновка расписана очень подробно. Все действия по установке производились исходя из рекомендаций этого мануала. Правда по родному мануал все должно "встать как у молодого". Опыт 3-х дней показал, что это не так и получилось маленькое собственноручное эссе.
Перед началом желательно поменять часовой пояс в системе на GMT-4 и включить синхронизацию с сервером времени в интернете, который по времени будет совпадать с Москвой. Если в часовом поясе будет стоять Москва (+00), то полноценно не будет работает веб-интерфейс. Об этом написано конце повествования.
Начинаем выполение от root.
1.
Устновка необходимых пакетов, которые будут нужны при инсталяции Oracle. Список из манула, на нужны для Red Hat Enterprise Linux 5.0:
binutils
compat-libstdc++-33
elfutils-libelf
elfutils-libelf-devel
elfutils-libelf-devel-static
gcc
gcc-c++
glibc
glibc-common
glibc-devel
glibc-headers
kernel-headers
ksh
libaio
libaio-devel
libgcc
libgomp
libstdc++
libstdc++-devel
make
pdksh
sysstat
unixODBC
unixODBC-devel
Для устновки пакетов выполняем:
yum install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make pdksh sysstat unixODBC unixODBC-devel
2.
Создание групп и пользователей для работы с Oracle.
Выполняем для добавления групп:
/usr/sbin/groupadd oinstall
/usr/sbin/groupadd dba
Выполняем для создания пользователя:
/usr/sbin/useradd -g oinstall -G dba oracle
/usr/sbin/usermod -g oinstall -G dba oracle
Проверяем назначение пользователей и групп:
id oracle
Получаем что-то, в таком виде:
uid=501(oracle) gid=502(oinstall) группы=502(oinstall),503(dba)
Выполняем для добавление пароля пользователя:
passwd oracle
3.
Настраиваем параметры ядра. Если не выставить рекомендуемые параметры, то на стадии устновки Oracle будет ругаться и просить их откорректировать.
Открываем редактором файл /etc/sysctl.conf и добавляем необходимые параметры:
# For Oracle
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
Применяем добавленное выполнив, чтобы не перезагружать систему:
/sbin/sysctl -p
4.
Устанавливаем shell лимиты для пользователя oracle.
Открываем редактором файл /etc/security/limits.conf и добавляем необходимые параметры:
# For Oracle
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
Открываем редактором файл /etc/pam.d/login и добавляем необходимые параметры:
# For Oracle
session required pam_limits.so
Открываем редактором файл /etc/profile и добавляем необходимые параметры:
# For Oracle
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
5.
Создаем требуемые директории, для устновки Oracle. И назначаем на них права пользователя oracle. Предварительно определив куда будем ставить.
Выполняем:
mkdir -p /oracle/app/
chown -R oracle:oinstall /oracle/app/
chmod -R 775 /oracle/app/
/oracle/app/ (oracle - точка монтирования, app - папка в точке монтирования)
6.
Настраиваем пользовательское окружение.
Стартуем новый терминал и в нем выполним:
xhost localhost
Должны получить ответ:
localhost being added to access control list
Выполняем для переключения на пользователя oracle:
su - oracle
Открываем в профиле пользователя oracle редактором файл .bash_profile и добавляем необходимые параметры:
umask 022
Запускаем этот shell скрипт, выполнив:
. ./.bash_profile
Устанавливаем переменную DISPLAY, для доступа к X Windows System, выполнив:
DISPLAY=local_host:0.0 ; export DISPLAY
Пробуем запустить xclock, чтобы проверить имеет ли пользователь oracle доступ к X Windows System, выполняем:
xclock
Если появились часы, можем передохнуть и съесть пирожок. Либо встать со стула и размять полужопия.
Но, если эта падла выдаст ошибку, то пирожок на полку, а полужопия обратно на стул.
Возможный вид ошибки:
X11TransSocketINETConnect() can't get address for local_host:6000: Имя или служба не известны
Error: Can't open display: local_host:0.0
Нужно перезайти пользователем oracle еще раз, выполняем:
exit
su - oracle
И выполнить:
xhost +
Получим ответ:
access control disabled, clients can connect from any host
Установим переменные окружения для инсталяции Oracle, выполнив:
ORACLE_BASE=/oracle/app/oracle
ORACLE_SID=orcl
export ORACLE_BASE ORACLE_SID
unset ORACLE_HOME
unset TNS_ADMIN
ORACLE_UNQNAME=orcl
export ORACLE_UNQNAME
Проверка установленных переменных и маски:
umask
env | more
Пойду сожру пирожок...
7.
Установка Oracle.
Инсталляцию Oracle запускаем из под пользователя oracle, предварительно распаковав дистрибутив состоящий из двух zip файлов, выполним:
./runInstaller
В случае, если Oracle будет ругать на то, что он запускается не из под сертифицированной системы, можно отключить предупреждение:
./runInstaller -ignoreSysPrereqs
Если не возникло никаких ошибок увидим долгожданное, все ради чего столько писалось, графическое меню устновки:
Процесс установки Oracle
ещё фотографии, more photos
Процесс установки Oracle
ещё фотографии, more photos
Процесс установки Oracle
ещё фотографии, more photos
Процесс установки Oracle
ещё фотографии, more photos
Процесс установки Oracle
ещё фотографии, more photos
Процесс установки Oracle
ещё фотографии, more photos
Процесс установки Oracle
ещё фотографии, more photos
Процесс установки Oracle
ещё фотографии, more photos
Процесс установки Oracle
ещё фотографии, more photos
Процесс установки Oracle
ещё фотографии, more photos
Процесс установки Oracle
ещё фотографии, more photos
Процесс установки Oracle
ещё фотографии, more photos
Процесс установки Oracle
ещё фотографии, more photos
Процесс установки Oracle
ещё фотографии, more photos
Процесс установки Oracle
ещё фотографии, more photos
Процесс установки Oracle
ещё фотографии, more photos
Процесс установки Oracle
ещё фотографии, more photos
Процесс установки Oracle
ещё фотографии, more photos
Процесс установки Oracle
ещё фотографии, more photos
Процесс установки Oracle
ещё фотографии, more photos
Процесс установки Oracle
ещё фотографии, more photos
Процесс установки Oracle
ещё фотографии, more photos
Процесс установки Oracle
ещё фотографии, more photos
Процесс установки Oracle
ещё фотографии, more photos
Запустить указанные скрипты из под root:
/oracle/app/oraInventory/orainstRoot.sh
/oracle/app/oracle/product/11.2.0/dbhome_1/root.sh
Если вовремя устновки не возникало ошибок, и Вам все же удалось дождаться положительного результат, то можно глянуть, а запустились ли эти противные сервисы oracle и tnslsnr.
Выполняем:
ps -A | grep oracle
ps -A | grep tnslsnr
8.
Послееблия. Пирожков много не съел, т.к. только я его хотел съесть, вылезали разные грабли на стадии запуска после инсталляции. В итоге пирожок откладывался, до следующего раза.
Открываем на редактирование файл .bash_profile пользователя oracle и добавляем ему окружение:
export ORACLE_HOME=/oracle/app/oracle/product/11.2.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export ORACLE_HOME_LISTNER=$ORACLE_HOME
Открываем на редактирование файл /etc/oratab, в нем должны увидеть строку:
orcl:/oracle/app/oracle/product/11.2.0/dbhome_1:N
Включаем запуск нужной базы orcl, т.е. строка будет иметь вид:
orcl:/oracle/app/oracle/product/11.2.0/dbhome_1:Y
Запуск и остановку сервисов производим от пользователя oracle. Если пользователю прописали окружение в профильный файл, то путь до команд бинарников oracle писать не обязательно.
Запуск и остановка базы:
/oracle/app/oracle/product/11.2.0/dbhome_1/bin/dbstart $ORACLE_HOME
/oracle/app/oracle/product/11.2.0/dbhome_1/bin/dbshut $ORACLE_HOME
Запуск и остановка Listener LSNRCTL:
/oracle/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start
/oracle/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl stop
/oracle/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl status
9.
Управление Oracle Enterprise Manager Database Control (веб-интерфейс https://localhost:1158/em/):
/oracle/app/oracle/product/11.2.0/dbhome_1/bin/emctl status dbconsole
/oracle/app/oracle/product/11.2.0/dbhome_1/bin/emctl start dbconsole
/oracle/app/oracle/product/11.2.0/dbhome_1/bin/emctl stop dbconsole
/oracle/app/oracle/product/11.2.0/dbhome_1/bin/emctl status agent
Обнаружился интересный нюанс. Веб-интерфейс не захотел полноценно работать после установки Oracle.
При запуске:
/oracle/app/oracle/product/11.2.0/dbhome_1/bin/emctl status dbconsole
Появлялась надпись:
EM Daemon is not running.
Далее при запуске:
/oracle/app/oracle/product/11.2.0/dbhome_1/bin/emctl status agent
Получали так-же болт:
Agent is Not Running
В результате, если зайти в веб-панель, то не было соединения с самой базой, выдавало ошибку.
Проблема решилась сменой часового пояса на машине. Необходимо выставить Istanbul(Стамбул). Либо GMT-4 и включить синхронизацию с сервером времени в интернете. Далее выполнить:
/oracle/app/oracle/product/11.2.0/dbhome_1/bin/emctl config agent getTZ
/oracle/app/oracle/product/11.2.0/dbhome_1/bin/emctl config agent updateTZ
После этого можно запускать:
/oracle/app/oracle/product/11.2.0/dbhome_1/bin/emctl start dbconsole
И проверить статусы:
/oracle/app/oracle/product/11.2.0/dbhome_1/bin/emctl status dbconsole
/oracle/app/oracle/product/11.2.0/dbhome_1/bin/emctl status agent
Если ошибок нет и нормально отображаются статусы, можно смело идти и смотреть веб-интерфейс. Ну и конечно работать с базой. А самое главное сожрать пирожок, который за три дня экспериментов изрядно засох.
Теперь, если есть желание, можно вернуть часовой пояс на прежний, который ближе к телу. Если выставили GMT-4, то можно ничего не трогать и оставить его как родной, он будет равен Москве.
10.
Автозапуск Oracle при загрузке системы. В интернете куча разных советов, как этого монстра запускать автоматом, чтобы не запускать после загрузки из под пользователя oracle. Я же погрыз последний засохший, плесневелый пирожок и сделал как мне этого захотелось.
Нам понадобиться создать два файла скрипта. Один для запуска все нужных компонентов Oracle, второй для остановки этих комонентов, если требуется это сделать.
Создаем в /etc скрипт запуска oracle.start, он содержит следующее:
#!/bin/bash
# Переменные окружения
export ORACLE_HOME=/oracle/app/oracle/product/11.2.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export ORACLE_HOME_LISTNER=$ORACLE_HOME
# Запуск Listener
su - oracle -c "$ORACLE_HOME/bin/lsnrctl start"
# Запуск базы
su - oracle -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
# Запуск веб-панели
su - oracle -c "$ORACLE_HOME/bin/emctl start dbconsole"
Создаем в /etc скрипт остановки oracle.stop, он содержит следующее:
#!/bin/bash
# Переменные окружения
export ORACLE_HOME=/oracle/app/oracle/product/11.2.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=orcl
export ORACLE_UNQNAME=orcl
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export ORACLE_HOME_LISTNER=$ORACLE_HOME
# Остановка Listener
su - oracle -c "$ORACLE_HOME/bin/lsnrctl stop"
# Остановка базы
su - oracle -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
# Остановка веб-панели
su - oracle -c "$ORACLE_HOME/bin/emctl stop dbconsole"
Для проверки запуска скриптов, выполняем:
/etc/./oracle.start
/etc/./oracle.stop
И наконец, редактором открываем файл /etc/rc.d/rc.local и добавляем строку для запуска нашего скрипта oracle.start при старте системы:
/etc/./oracle.start # Скрип запуска Oracle
11.
Пробуем перезагрузить... За время перезагрузки необходимо размять полужопия, т.к. от долгого сидения они возможно склеились.
• комментарии (0)
[ Назад ]
|