ENG: | Preparation of Linux to install Oracle Oracle Grid Infrastructure and Oracle DB. (Part 2). |
ПРЕДЫДУЩАЯ СТАТЬЯ -> Установка Oracle 11g Release 2 (11gR2) на Linux. Введение. (Часть 1).
В этой статье описана предварительная подготовка ОС Linux для установки Oracle Grid Infrastructure + Oracle DB. Если вы хотите установить просто Oracle DB без Grid Infrastructure то всё равно можно выполнить предварительную подготовку ОС как описано.
Установка описана на примере установки Oracle 11g Release 2 (11.2.0.3) x64 на Oracle Linux 6 (OL 6.2) x64 (на другие версии установка будет аналогичной).
1. Что почитать
Сводная статья в которой приводятся требования к различным ОС (также содержит шпаргалки по командам ОС для определения некоторых требований) — Oracle Database (RDBMS) on Unix AIX,HP-UX,Linux,Mac OS X,Solaris,Tru64 Unix Operating Systems Installation and Configuration Requirements Quick Reference (8.0.5 to 11.2) (Doc ID 169706.1).
Самые свежие требования для установки — Requirements for Installing Oracle 11gR2 RDBMS on RHEL (and OEL) 5 on AMD64/EM64T (Doc ID 880989.1).
2. Подготовка ОС
(На примере 11.2.0.3 + OL 6.2. Требования для других версий Linux и Oracle могут отличаться — уточняйте в документации).
Все действия подготовки выполняются под учётной записью root. (Все команды для выполнения можно просто копировать).
2.1) Проверка аппаратных требований
Мы знаем, на какую железку мы ставим, но проверить всё-таки нужно, на всякий случай.
2.1.1) Определение размера RAM (нужно минимум 1,5Гб рекомендуется 4Гб и больше).
grep MemTotal /proc/meminfo
2.1.2) Определение размера Swap
(нужно:
RAM между 1Гб и 2Гб Swap = 1.5хRAM
RAM между 2Гб и 16Гб Swap = RAM
RAM больше 16GB Swap = 16Гб)
grep SwapTotal /proc/meminfo
2.1.3) Определение, сколько реально доступно RAM и Swap.
free
2.1.4) Проверка Архитектуры системы.
Нужно убедиться, что используемый дистрибутив Oracle соответствует архитектуре процессора.
uname -m
2.1.5) Определение свободного места в /tmp (нужен 1Гб).
df -h /tmp
2.1.6) Определение свободного места для устанавливаемого ПО. Я собираюсь создавать папку для установки в корневой файловой системе (/), поэтому смотрю на наличие свободного места в ней. Файлы установки Oracle Grid займут на диске минимум 5,5Гб.
df -h
2.1.7) Разрешение экрана должно быть 1024 x 768 и выше.
xdpyinfo | grep 'dimensions:'
2.1.8) Если предполагается использовать Automatic Memory Management (AMM) — тогда нужно проверить количество разделяемой памяти (/dev/shm). Разделяемая память должна быть большим из MEMORY_MAX_TARGET и MEMORY_TARGET. Т.е. если я хочу установить MEMORY_TARGET=2.5Гб значит /dev/shm должна быть больше 2.5Гб.
ВНИМАНИЕ! Automatic Memory Management (AMM) and HugePages не совместимы! (но ASMM использовать можно) (ASMM versus AMM and LINUX x86-64 Hugepages Support (Doc ID 1134002.1)). На промышленных БД рекомендуется использовать HugePages, т.е. AMM использовать нельзя и соответственно этот пункт можно пропустить.
Для проверки выполнить.
df -h /dev/shm
Если нужно увеличить /dev/shm — выполнить (можно писать size=1500m) и проверить ещё раз.
mount -t tmpfs shmfs -o size=4g /dev/shm
Чтобы при следующей перезагрузке настройки для /dev/shm сохранились, нужно ещё добавить запись в /etc/fstab.
shmfs /dev/shm tmpfs size=4g 0
2.2) Проверка программных требований
2.2.1) Для установки Oracle необходимо наличие установленных некоторых пакетов ОС. В документации для каждой версии ОС указан свой список требуемых пакетов. Сами пакеты можно найти на дистрибутивном DVD Linux (например, для OL 6.2 в папке /media/OL6.2 x86_64 Disc 1 20111212/Server/Packages). Предполагается, что вы должны установить эти пакеты вручную с помощью команд:
-- Проверить установлен пакет или нет
# rpm -q <имя пакета>
-- Установить пакет
# rpm -Uivh <имя пакета>
ПРИМЕЧАНИЕ: Если устанавливаете пакеты вручную, учтите, что начиная с 11.2.0.2 для 64-битной версии ОС больше не требуется установка 32-битных пакетов, которые указаны в списке требуемых (кроме gcc-32bit-4.3) — так написано в документации. На дистрибутивном DVD OL 6.2 не было пакета gcc для x86, и я его не ставил.
Окончательный список пакетов необходимых для установки Oracle обычно больше чем в документации, т.к. пакеты зависят друг от друга. По этой же причине порядок установки пакетов важен. Для данного примера для OL 6.2 x86_64 у меня получился такой список пакетов (можно просто скопировать и выполнить).
cd "/media/OL6.2 x86_64 Disc 1 20111212/Server/Packages"
rpm -Uivh compat-libcap1*`uname -p`*
rpm -Uivh compat-libstdc++*`uname -p`*
rpm -Uivh libstdc++-devel*`uname -p`*
rpm -Uivh ppl-*`uname -p`*
rpm -Uivh cloog*`uname -p`*
rpm -Uivh mpfr*`uname -p`*
rpm -Uivh cpp*`uname -p`*
rpm -Uivh kernel-uek-headers*`uname -p`*
rpm -Uivh kernel-uek-devel*`uname -p`*
rpm -Uivh glibc-header*`uname -p`*
rpm -Uivh glibc-devel*`uname -p`*
rpm -Uivh gcc-4*`uname -p`*
rpm -Uivh gcc-c++-4*`uname -p`*
rpm -Uivh ksh-*`uname -p`*
rpm -Uivh libaio-devel-*`uname -p`*
Все проверки пройдены. Сервер соответствует требованиям — можно начинать конфигурирование сервера.
2.3) Установка драйверов
2.3.1) Для нормального функционирования сервера необходимо установить драйвера, желательно последние версии. Если это brand name сервер, то обычно производитель прилагает DVD диск с драйверами.
******************************************************************************
Если сервер — это виртуальная машина VMware ESXi 5.0 то нужно знать что VMware Tools не поддерживаются — The Oracle Unbreakable Enterprise Kernel (UEK) is not supported with VMware Tools Operating System Specific Packages (OSPs) for vSphere 5.x (2005980), т.е. их лучше не ставить. Но если очень нужно, то можно попробовать «хакерский» способ. Правда после него у меня VM перестала загружаться, так что сделайте предварительный снимок VM.
Если установщик VMware Tools не находит kernel headers — нужно исправить скрипт vmware-config-tools.pl из папки vmware-tools-distrib.
cd /tmp/vmware-tools-distrib
cd bin
-- Правка файла (можно просто скопировать отсюда)
sed -i "s/$content, $image_file, $kernRel/$content,'--builtin=ehci-hcd --builtin=ohci-hcd --builtin=uhci-hcd', $image_file, $kernRel/g" vmware-config-tools.pl
******************************************************************************
2.4) Создание пользователей и групп
— Группы
/usr/sbin/groupadd -g 501 oinstall
/usr/sbin/groupadd -g 502 dba
/usr/sbin/groupadd -g 504 asmadmin
/usr/sbin/groupadd -g 506 asmdba
/usr/sbin/groupadd -g 507 asmoper
— Пользователи
/usr/sbin/useradd -u 501 -g oinstall -G asmadmin,asmdba,asmoper,dba grid
/usr/sbin/useradd -u 502 -g oinstall -G dba,asmdba oracle
— Вновь созданным пользователям нужно задать пароли
passwd grid
passwd oracle
2.5) Конфигурирование параметров ядра
Самая последняя информация по параметрам ядра см. — Oracle Database (RDBMS) on Unix AIX,HP-UX,Linux,Mac OS X,Solaris,Tru64 Unix Operating Systems Installation and Configuration Requirements Quick Reference (8.0.5 to 11.2) (Doc ID 169706.1).
Параметры ядра находятся в файле /etc/sysctl.conf. Его нужно открыть в текстовом редакторе и сверить с параметрами указанными ниже. Если значение параметра меньше чем указано — его нужно изменить на указанное. Если значение параметра больше чем указано — его не нужно менять.
У меня только два параметра отличались от указанных, причём они были больше по значению, поэтому оставил их и добавил недостающие параметры.
— Эти параметры не менял
kernel.shmall = 2097152
kernel.shmmax = 536870912
— Эти добавил
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
net.ipv4.ip_local_port_range = 9000 65500
net.ipv4.tcp_wmem = 262144 262144 262144
net.ipv4.tcp_rmem = 4194304 4194304 4194304
Для того чтобы параметры применились, нужно либо перезагрузить сервер либо выполнить
/sbin/sysctl -p
2.6) Установка ограничений оболочки (shell) для пользователя oracle и grid
Для улучшения производительности необходимо увеличить ограничения оболочки (shell) для пользователей oracle и grid.
2.6.1) Нужно определить параметры, которые находятся в файле /etc/security/limits.conf. Его нужно открыть в текстовом редакторе и сверить с параметрами указанными ниже. Если значение параметра меньше чем указано — его нужно изменить на указанное значение. Если значение параметра больше чем указано — его не нужно менять.
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
У меня в /etc/security/limits.conf вообще не было никаких параметров — просто добавил их.
2.6.2) В файл /etc/pam.d/login нужно добавить строку (если его нет — создать)
session required pam_limits.so
2.6.3) Предлагается добавить в файл /etc/profile следующее (для bash)
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
Но лучше создать файл /etc/profile.d/custom.sh и добавить это туда
#!/bin/bash
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
umask 022
fi
Cохранить файл и выполнить
chmod +x /etc/profile.d/custom.sh
2.7) Создание папок
# Oracle Inventory
mkdir -p /u01/app/oraInventory
chown -R grid:oinstall /u01/app/oraInventory
chmod -R 775 /u01/app/oraInventory
# Grid Infrastructure Home
mkdir -p /u01/11.2.0/grid
chown -R grid:oinstall /u01/11.2.0/grid
chmod -R 775 /u01/11.2.0/grid
# Oracle Base Directory
mkdir -p /u01/app/oracle
mkdir /u01/app/oracle/cfgtoollogs
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/app/oracle
# Oracle RDBMS Home
mkdir -p /u01/app/oracle/product/11.2.0/db_1
chown -R oracle:oinstall /u01/app/oracle/product/11.2.0/db_1
chmod -R 775 /u01/app/oracle/product/11.2.0/db_1
2.8) Установка Automatic Storage Management Library Driver (ASMLib)
Для функционирования ASM на любой версии Linux кроме Oracle Linux необходимо установить три пакета ASMlib — oracleasm-support, oracleasmlib, oracleasm. Пакеты oracleasm-support и oracleasmlib не зависят от версии ядра, а только от платформы.
Для Oracle Linux драйвера ASM интегрированы прямо в ядро UEK и не требуют отдельной установки, т.е. пакет oracleasm не нужен (нужны только два пакета oracleasm-support и oracleasmlib).
Существуют четыре способа получить и установить пакеты ASMlib. Для данного примера использовался комбинированный способ (см.п.2.8.5).
Четыре способа получения и установки пакетов ASMlib:
2.8.1) Взять пакеты с дистрибутивного DVD OL.
Примечание: На дистрибутивном DVD Red Hat обычно этих пакетов нет, т.е. для Red Hat этот способ не подходит.
cd "/media/OL6.2 x86_64 Disc 1 20111212/Server/Packages"exit
rpm -Uvih oracleasm-support-2.1.5-1.el6.x86_64.rpm
2.8.2) Скачать пакеты вручную с OTN и установить их.
Примечание: Этот способ подходит для всех Linux кроме OL, т.к. пакета oracleasm-support для OL на OTN на данный момент нет. В крайнем случае, для OL можно использовать пакет oracleasm-support от соответствующей версии RHEL (например, на OL5 от RHEL 5), но лучше этого не делать. В будущем Oracle намеревается поместить пакет oracleasm-support в OTN, поэтому в будущем возможно этот способ подойдет и для OL.
Чтобы скачать необходимые версии пакетов, нужно определить версию ядра.
uname -rm
Теперь нужно зайти по ссылке — Oracle ASMLib. Выбрать необходимую версию Linux.
В самом верху списка два пакета, которые нужны для любой версии ядра oracleasm-support и oracleasmlib.
Далее ищем по версии ядра 2.6.18-194.el5. Необходим только пакет oracleasm.
Скачиваем пакеты и устанавливаем их.
rpm -Uvih oracleasm-support-2.1.7-1.el5.x86_64.rpm
rpm -Uvih oracleasm-2.6.18-194.el5-2.0.5-1.el5.x86_64.rpm
rpm -Uvih oracleasmlib-2.0.4-1.el5.x86_64.rpm
2.8.3) Установить пакеты с Unbreakable Linux Network (ULN) (Getting Oracle ASMLib via the Unbreakable Linux Network).
Примечание: Для этого нужно быть подписчиком ULN и иметь туда доступ (это платная услуга).
Для установки необходимо зайти по указанной ссылке и следовать инструкции.
2.8.4) Скачать с публичного репозитария Oracle (Public Yum Server).
Зайти по ссылке Public Yum Server. Там есть все инструкции.
Для нашего конкретного примера:
cd /etc/yum.repos.d
wget http://public-yum.oracle.com/public-yum-ol6.repo
yum install oracleasm oracleasm-support
*****************************************************************************
2.8.5) В данном примере применяется комбинированный метод. Т.к. у меня нет доступа к ULN, я устанавливаю пакет oracleasmlib, скачав его с OTN (п.2.8.2) . А пакет oracleasm-support устанавливаю из публичного репозитария (п.2.8.4). Пакет oracleasm устанавливать не нужно, т.к. он интегрирован в ядро UEK.
cd /tmp
rpm -Uvih oracleasmlib-2.0.4-1.el5.x86_64.rpm
cd /etc/yum.repos.d
wget http://public-yum.oracle.com/public-yum-ol6.repo
yum install oracleasm oracleasm-support
2.8.6) Проверки установленных пакетов
rpm -qa | grep oracleasm
Будет выведен список из установленных пакетов. На OL с ядром UEK это будут 2 пакета. На других версиях Linix в списке должно быть 3 пакета.
2.9) Конфигурирование Automatic Storage Management Library Driver (ASMLib)
Выполнить
/etc/init.d/oracleasm configure
2.10) Создание дисков для ASM
2.10.1) Создать разделов на дисках ASM.
Просмотреть список дисков
/sbin/fdisk -l
Создать раздел (один на весь диск) — см. рисунок. Так же создаю разделы на оставшихся дисках.
/sbin/fdisk /dev/sdb
Для проверки
/sbin/fdisk -l
2.10.2) Создать диски ASM
/usr/sbin/oracleasm createdisk ASMDATA01 /dev/sdb1
/usr/sbin/oracleasm createdisk ASMFRA02 /dev/sdc1
/usr/sbin/oracleasm createdisk ASMREDO02 /dev/sdd1
# Проверка
/usr/sbin/oracleasm listdisks
ls -ltr /dev/oracleasm/disks
/usr/sbin/oracleasm-discover ORCL:*
Для удаления диска ASM (если ошиблись) используйте
/usr/sbin/oracleasm deletedisk XXX
ПРИМЕЧАНИЕ: Если ASM диск не создаётся с сообщением «Instantiating disk: failed» — отключите SELinux (Oracle Linux 6 (6.2), Red Hat Enterprise Linux Server 5 (5.5)).
Всё, сервер готов к графической установке.
СЛЕДУЮЩАЯ СТАТЬЯ -> Установка Oracle Grid Infrastructure (ASM + Restart) на Linux. (Часть 3)
Запись Предварительная подготовка ОС Linux к установке Oracle Oracle Grid Infrastructure и Oracle DB. Часть 2. впервые появилась Dmitry Bobrovsky Blog
— Author: Dmitry Bobrovsky Google