Саратов + 26 °C 

Храмы Высота ЧБ Люди Вокзалы Парк Зима. Снег Саратов Сад-огород. Хлеба Грибы Лес Зима. Снег Цветы Живность Кошки Река Хлеба Лес Зима. Снег Новый Год Небо. Облака Радуга Курьезы Река Хлеба Лес Зима. Снег Небо. Облака Курьезы Астро Зима. Снег Новый Год Шарм Эль Шейх. Тропикана Гранд Азур Кошки Ящерица Йошкар-Ола. Казань. Чебоксары Гуамское ущелье Майкоп Грибы Зима. Снег Лошади Сад-огород. Зима. Снег Должанка Египет Люди Санкт-Петербург Санкт-Петербург Финляндия Финляндия Греция. Родос. Детский Сад 158 Новый Год Авто Мото Макро Карта Дети Питание Шарм Эль Шейх. Тропикана Гранд Азур Астро Набережная Петрозаводска Карелия. Путешествия. Весна Макро Карта Отдых Лыжные прогулки Стихи CentOS Oracle SAMBA GlassFish LAMP Motion EJabberd Postfix. Dovecot. Amavisd Perl Jabber VLC M3U Ubuntu
Твоя картинка. YouPict.Ru. Загрузи и Покажи
ДНЕВНИКИ


Назад >> Сергей ШИБКА >> 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)


[ Назад ]


© 2005 - 2018 * Сергей Шибка