The “shmmax” value is too large when installing Oracle 11g on RHEL7












1















I am trying to install Oracle Database 11g Release 2 on RHEL 7.2. Executing runfixup.sh, it outputs:



# /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 as an example, the code in runfixup.sh is like this:



 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


Check shmmax configuration in system:



# /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


And the shmmax configuration value is like this:
enter image description here



My questions are:

(1) The if [ -gt ] in Bash only operates on integers? How to operate on 64-bit long integer?

(2) Is it OK to modify shmmax as the expected value of Oracle hint?










share|improve this question

























  • you should ask this question on Database Administrators or Unix & Linux and not on superuser. lol

    – Evan Carroll
    Feb 5 '18 at 23:27
















1















I am trying to install Oracle Database 11g Release 2 on RHEL 7.2. Executing runfixup.sh, it outputs:



# /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 as an example, the code in runfixup.sh is like this:



 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


Check shmmax configuration in system:



# /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


And the shmmax configuration value is like this:
enter image description here



My questions are:

(1) The if [ -gt ] in Bash only operates on integers? How to operate on 64-bit long integer?

(2) Is it OK to modify shmmax as the expected value of Oracle hint?










share|improve this question

























  • you should ask this question on Database Administrators or Unix & Linux and not on superuser. lol

    – Evan Carroll
    Feb 5 '18 at 23:27














1












1








1








I am trying to install Oracle Database 11g Release 2 on RHEL 7.2. Executing runfixup.sh, it outputs:



# /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 as an example, the code in runfixup.sh is like this:



 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


Check shmmax configuration in system:



# /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


And the shmmax configuration value is like this:
enter image description here



My questions are:

(1) The if [ -gt ] in Bash only operates on integers? How to operate on 64-bit long integer?

(2) Is it OK to modify shmmax as the expected value of Oracle hint?










share|improve this question
















I am trying to install Oracle Database 11g Release 2 on RHEL 7.2. Executing runfixup.sh, it outputs:



# /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 as an example, the code in runfixup.sh is like this:



 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


Check shmmax configuration in system:



# /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


And the shmmax configuration value is like this:
enter image description here



My questions are:

(1) The if [ -gt ] in Bash only operates on integers? How to operate on 64-bit long integer?

(2) Is it OK to modify shmmax as the expected value of Oracle hint?







linux bash shell redhat-enterprise-linux oracle-11g






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Sep 17 '18 at 23:33









Burgi

3,89892543




3,89892543










asked Jan 15 '16 at 3:51









Nan XiaoNan Xiao

1,64041320




1,64041320













  • you should ask this question on Database Administrators or Unix & Linux and not on superuser. lol

    – Evan Carroll
    Feb 5 '18 at 23:27



















  • you should ask this question on Database Administrators or Unix & Linux and not on superuser. lol

    – Evan Carroll
    Feb 5 '18 at 23:27

















you should ask this question on Database Administrators or Unix & Linux and not on superuser. lol

– Evan Carroll
Feb 5 '18 at 23:27





you should ask this question on Database Administrators or Unix & Linux and not on superuser. lol

– Evan Carroll
Feb 5 '18 at 23:27










2 Answers
2






active

oldest

votes


















0














Bash appears to operate ok on signed 64 bit integers. If you need even more robustness, use bc, e.g. on these unsigned 64 bit integers that bash can't handle.



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


Offhand I would modify shmmax as Oracle indicates. There are any number of web pages explaining exactly what this will do, in case you have some hesitation about tinkering with the shared memory distribution.






share|improve this answer































    0














    Same problem to me installing an Oracle XE on RHEL7, the values of shmmax and shmall was the same you show. But the machine has only 3G of RAM, this huge values are not needed. So, I changed the parameters to values less than this in sysctl.conf, and the installation gone ahead without problems.



    Best regards,
    Régis






    share|improve this answer



















    • 1





      What values did you set these to, exactly?

      – bertieb
      Jun 6 '18 at 14:10











    • show what steps you actually took to solve the problem!

      – Tim_Stewart
      Jun 6 '18 at 14:37











    Your Answer








    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "3"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1026584%2fthe-shmmax-value-is-too-large-when-installing-oracle-11g-on-rhel7%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    Bash appears to operate ok on signed 64 bit integers. If you need even more robustness, use bc, e.g. on these unsigned 64 bit integers that bash can't handle.



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


    Offhand I would modify shmmax as Oracle indicates. There are any number of web pages explaining exactly what this will do, in case you have some hesitation about tinkering with the shared memory distribution.






    share|improve this answer




























      0














      Bash appears to operate ok on signed 64 bit integers. If you need even more robustness, use bc, e.g. on these unsigned 64 bit integers that bash can't handle.



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


      Offhand I would modify shmmax as Oracle indicates. There are any number of web pages explaining exactly what this will do, in case you have some hesitation about tinkering with the shared memory distribution.






      share|improve this answer


























        0












        0








        0







        Bash appears to operate ok on signed 64 bit integers. If you need even more robustness, use bc, e.g. on these unsigned 64 bit integers that bash can't handle.



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


        Offhand I would modify shmmax as Oracle indicates. There are any number of web pages explaining exactly what this will do, in case you have some hesitation about tinkering with the shared memory distribution.






        share|improve this answer













        Bash appears to operate ok on signed 64 bit integers. If you need even more robustness, use bc, e.g. on these unsigned 64 bit integers that bash can't handle.



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


        Offhand I would modify shmmax as Oracle indicates. There are any number of web pages explaining exactly what this will do, in case you have some hesitation about tinkering with the shared memory distribution.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Jan 16 '16 at 1:37









        Erik BryerErik Bryer

        214




        214

























            0














            Same problem to me installing an Oracle XE on RHEL7, the values of shmmax and shmall was the same you show. But the machine has only 3G of RAM, this huge values are not needed. So, I changed the parameters to values less than this in sysctl.conf, and the installation gone ahead without problems.



            Best regards,
            Régis






            share|improve this answer



















            • 1





              What values did you set these to, exactly?

              – bertieb
              Jun 6 '18 at 14:10











            • show what steps you actually took to solve the problem!

              – Tim_Stewart
              Jun 6 '18 at 14:37
















            0














            Same problem to me installing an Oracle XE on RHEL7, the values of shmmax and shmall was the same you show. But the machine has only 3G of RAM, this huge values are not needed. So, I changed the parameters to values less than this in sysctl.conf, and the installation gone ahead without problems.



            Best regards,
            Régis






            share|improve this answer



















            • 1





              What values did you set these to, exactly?

              – bertieb
              Jun 6 '18 at 14:10











            • show what steps you actually took to solve the problem!

              – Tim_Stewart
              Jun 6 '18 at 14:37














            0












            0








            0







            Same problem to me installing an Oracle XE on RHEL7, the values of shmmax and shmall was the same you show. But the machine has only 3G of RAM, this huge values are not needed. So, I changed the parameters to values less than this in sysctl.conf, and the installation gone ahead without problems.



            Best regards,
            Régis






            share|improve this answer













            Same problem to me installing an Oracle XE on RHEL7, the values of shmmax and shmall was the same you show. But the machine has only 3G of RAM, this huge values are not needed. So, I changed the parameters to values less than this in sysctl.conf, and the installation gone ahead without problems.



            Best regards,
            Régis







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Jun 6 '18 at 14:00









            Regis VazRegis Vaz

            1




            1








            • 1





              What values did you set these to, exactly?

              – bertieb
              Jun 6 '18 at 14:10











            • show what steps you actually took to solve the problem!

              – Tim_Stewart
              Jun 6 '18 at 14:37














            • 1





              What values did you set these to, exactly?

              – bertieb
              Jun 6 '18 at 14:10











            • show what steps you actually took to solve the problem!

              – Tim_Stewart
              Jun 6 '18 at 14:37








            1




            1





            What values did you set these to, exactly?

            – bertieb
            Jun 6 '18 at 14:10





            What values did you set these to, exactly?

            – bertieb
            Jun 6 '18 at 14:10













            show what steps you actually took to solve the problem!

            – Tim_Stewart
            Jun 6 '18 at 14:37





            show what steps you actually took to solve the problem!

            – Tim_Stewart
            Jun 6 '18 at 14:37


















            draft saved

            draft discarded




















































            Thanks for contributing an answer to Super User!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fsuperuser.com%2fquestions%2f1026584%2fthe-shmmax-value-is-too-large-when-installing-oracle-11g-on-rhel7%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            How do I know what Microsoft account the skydrive app is syncing to?

            Grease: Live!

            When does type information flow backwards in C++?