Wednesday, December 06, 2006

Suse Linux and ORA-27125

It's basically Unix, right, so you almost never reboot it. That's great, except when you can't remember what you did the last time to fix something. Well, I rebooted today. I didn't really need to, but something made me do it. Then I tried to bring up my database. I saw the following:

SQL> startup;
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORA-27125: unable to create shared memory segment
Linux-x86_64 Error: 1: Operation not permitted

What to do about it!? It turns out I had two distinct problems. That can be tough, because it looks like it could be one problem. Somehow the database OEM had introduced an old init.ora parameter, that's the ora-32004. If the db won't start, you don't get the output in the alert log telling you which parameter is the problem. First I solved the ora-27125, then I found that I had plsql_compiler_flags specified and reset it.

So, what caused the ora-27125? Would you believe... metalink had the answer, note: 293988.1

I'm going to paste the note here just so it is handy.

Applies to:

Oracle Server - Enterprise Edition - Version: 9.2 to 10.2
Linux Itanium
SUSE \ UnitedLinux x86-64
Linux x86-64
Linux x86
This Problem can be seen on the SUSE SLES9 linux distribution which runs on kernel '2.6.5-7.191'

Symptoms

While starting the database instance following error is encountered.

SQL> startup
ORA-27125: unable to create shared memory segment
Linux Error: 1: Operation not permitted

Cause

This is caused by '2.6.5-7.nnn' kernels requiring MLOCK privilege for hugetlb memory.

Solution



To enable use of "hugetlb memory", or to allow the init.ora parameter "lock_sga=true" to be used, do:
--- Login as root
--- # echo 1 > /proc/sys/vm/disable_cap_mlock
If you need to make this change persistent
--- Login as root
--- Edit /etc/sysctl.conf
Add following lines
# Oracle requires MLOCK priviledge for hugetlb memory.
vm.disable_cap_mlock=1
--- Execute the command
#/etc/init.d/boot.sysctl start
Setting current sysctl status from /etc/sysctl.conf
vm.disable_cap_mlock = 1
--- Dont forget to enable the service.
chkconfig boot.sysctl on

3 comments:

Rajesh said...

thanks dear u r so gud.............................

adithya said...

hi sir i have installed oracle universal express edition 10g on suse 11.1 but when i click on the go to database homepage button the browser shows an error that the server is not available


what can i do please reply me @ adithya.addanki@gmail.com

please please do reply me
i vl be waiting for ur reply

thanqs in advance

blurguy said...

Thanks Anton!!! You are real life saver for putting this online!