...
Code Block |
---|
# echo "%dba ALL=(oracle) NOPASSWD: ALL" > /etc/sudoers.d/oracle && \ chmod 0440 /etc/sudoers.d/oracle |
Конфигурирование ядра
Необходимо установить следующие значения параметров ядра.Для сохранения и установки необходимых параметров ядра следует воспользоваться следующей командой:
Code Block |
---|
kernel.shmall = $SHMALL
kernel.shmmax = $SHMMAX
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6815744
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576
|
$SHMALL
— количество страниц памяти. Оно равно размеру оперативной памяти, деленной на размер страницы памяти в системе. Получить это значение можно c помощью команды:
Code Block |
---|
echo# setparam() { val=`cat /proc/sys/${1//.//}`; if [ "$1" = "kernel.sem" ] || [ "$2" -gt "$val" ]; then val="$2"; fi; echo "$1 = $val" >> /etc/sysctl.d/oracle.conf; } echo -n "Memory per DB [GB]: " && read DB_MEM && \ echo -n "DB count: " && read DB_COUNT && \ setparam "kernel.shmall" `echo "$(free -b|grep Mem|awk '{print$2}')/$(getconf PAGE_SIZE)"|bc |
$SHMMAX
— максимальное значение разделяемой области памяти в байтах. Рекомендуется устанавливать его в размере 1,5*N*SGA
, где N
— количество БД (инстансов) Oracle на сервере, SGA
— размер области SGA-памяти на БД (4 Гб = 4294967296 байт).
Если значения каких-либо параметров кроме SHMALL
в системе больше указанных, изменять их не требуется. Для проверки текущих значений параметров следует использовать вывод команды sysctl -a
. Например, для проверки значения параметра kernel.shmall
команда проверки будет выглядеть следующим образом:
Code Block |
---|
# sysctl -a | grep kernel.shmall
|
Те параметры, чьи текущие значения в системе меньше минимальных необходимо добавить в файл /etc/sysctl.conf
. После изменения файла /etc/sysctl.conf
для применения новых параметров необходимо выполнить следующую команду:
Code Block |
---|
# sysctl -p
|
bc` && \
setparam "kernel.shmmax" `echo "$DB_COUNT*$DB_MEM*1024*1024*1024*3/2"|bc` && \
setparam "kernel.shmmni" 4096 && \
setparam "kernel.sem" "250 32000 100 128" && \
setparam "fs.file-max" 6815744 && \
setparam "fs.aio-max-nr" 262144 && \
setparam "net.core.rmem_default" 262144 && \
setparam "net.core.wmem_default" 4194304 && \
setparam "net.core.rmem_max" 1048576 && \
setparam "net.core.wmem_max" 1048576 && \
sysctl -p /etc/sysctl.d/oracle.conf
|
В ходе выполнения команды выше будет запрошено количество памяти на одну БД (рекомендуемое значение — 4 Гб) и число устанавливаемых БД на сервере (в большинстве случаев — 1).
Установка системных ограничений для пользователя oracle
...