Значение "shmmax" слишком велико при установке Oracle 11g на RHEL7

я пытаюсь установить Oracle Database 11g Release 2 on RHEL 7.2. Выполнение runfixup.sh, он выводит:

# /tmp/CVU_11.2.0.1.0_oracle/runfixup.sh
Response file being used is :/tmp/CVU_11.2.0.1.0_oracle/fixup.response
Enable file being used is :/tmp/CVU_11.2.0.1.0_oracle/fixup.enable
Log file location: /tmp/CVU_11.2.0.1.0_oracle/orarun.log
Setting Kernel Parameters...
/tmp/CVU_11.2.0.1.0_oracle/orarun.sh: line 244: [: 18446744073692774399: integer expression expected
The value for shmmax in response file is not greater than value of shmmax for current session. Hence not changing it.
/tmp/CVU_11.2.0.1.0_oracle/orarun.sh: line 335: [: 18446744073692774399: integer expression expected
The value for shmall in response file is not greater than value of shmall for current session. Hence not changing it.
The value for semmni in response file is not greater than value of semmni for current session. Hence not changing it.

Take shmmax например, код runfixup.sh такой:

 239           #current value of shmmax - value in /proc/sys/kernel/shmmax
 240           cur_shmmax=`/sbin/sysctl -n kernel.shmmax`
 241           #remove the extra spaces in the line.
 242           cur_shmmax=`echo $cur_shmmax | sed 's/ //g'`
 243           echo "shmmax for current session:$cur_shmmax" >> $log_file/orarun.log
 244           if [ $SHMMAX -gt $cur_shmmax ]
 245           then
 246               if  ! $SYSCTL_LOC -w kernel.shmmax="$SHMMAX"
 247               then
 248                 echo "$SYSCTL_LOC failed to set shmmax" |tee -a $log_file/orarun.log
 249               fi
 250            else
 251                  echo "The value for shmmax in response file is not greater than value of shmmax for current session. Hence not changi     ng it." |tee -a $log_file/orarun.log
 252            fi

Регистрация shmmax конфигурация системы:

# /sbin/sysctl -a | grep shm
kernel.shm_next_id = -1
kernel.shm_rmid_forced = 0
kernel.shmall = 18446744073692774399
kernel.shmmax = 18446744073692774399
kernel.shmmni = 4096
vm.hugetlb_shm_group = 0

и shmmax значение конфигурации выглядит так:

enter image description here

мои вопросы:


(1) The if [ -gt ] in Bash работает только на целые числа? Как работать с 64-битным длинным целым числом?


(2) Можно ли изменить shmmax как ожидается, стоимостью Oracle намек?

5
задан Burgi
источник

2 ответов

Bash работает нормально на подпись 64 битных чисел. Если вам нужна еще большая надежность, используйте bc, например, на этих беззнаковых 64-битных целых числах, которые bash не может обработать.

echo "18446744073709551615 * 2" | bc -l
36893488147419103230
echo "18446744073709551615 > 2" | bc -l
1
echo "18446744073709551615 < 2" | bc -l
0

навскидку я бы изменил shmmax, как указывает Oracle. Есть любое количество веб-страниц, объясняющих, что именно это будет делать, в случае, если у вас есть некоторые сомнения по поводу мастерить с распределением общей памяти.

0
отвечен Erik Bryer 2016-01-16 01:37:57
источник

же мне проблема установки данных Oracle XE на RHEL7, значение shmmax и делать же вам показать. Но машина имеет только 3Г рам, этого огромные значения не необходима. Итак, я изменил параметры, значения меньше этого в sysctl.conf, и установка пошла без проблем.

с наилучшими пожеланиями, Régis

0
отвечен Regis Vaz 2018-06-06 14:00:42
источник

Другие вопросы bash linux oracle-11g redhat-enterprise-linux shell