Operating System - Linux
1830250 Members
3070 Online
110000 Solutions
New Discussion

Memory issue when I start Oracle 10g

 
SOLVED
Go to solution
Matthew Ghofrani
Regular Advisor

Memory issue when I start Oracle 10g

After starting my Oracle 10g, I get the following in the "ipcs -mba" command.
T ID KEY MODE OWNER GROUP SEGSZ
m 17416 0x00000000 D-rw------- ora10g oinstall 1474564

The man page says "The associated shared memory segment has been removed. It will disappear when the last process attached to the segment detaches it."

Any ideas as why ? Should I worry about this "D”?
Life is full of bugs
3 REPLIES 3
Steven E. Protter
Exalted Contributor

Re: Memory issue when I start Oracle 10g

Shalom,

Probably an Oracle application bug.

Oracle is famous for memory leaks and not releasing memory.

If you have an application written to use oracle code it could also be due to poor programming practices.

If it does not impact the users I would not be overly concerned.

SEP
Steven E Protter
Owner of ISN Corporation
http://isnamerica.com
http://hpuxconsulting.com
Sponsor: http://hpux.ws
Twitter: http://twitter.com/hpuxlinux
Founder http://newdatacloud.com
Matthew Ghofrani
Regular Advisor

Re: Memory issue when I start Oracle 10g

Well, are you suggesting that I should ignore this "D" because it is Oracle related or ignore this "D" no matter what?
Life is full of bugs
Mike Stroyan
Honored Contributor
Solution

Re: Memory issue when I start Oracle 10g

The "D" status is actually associated with a very common practice. The way that system V shared memory works makes it easy to loose track of resources. By default a shared memory segment will continue to exist if the process that created it dies. Its lifespan is kind of like that of a file. (But it goes away on reboot.) That behavior can easily lead to unwanted shared memory segments that linger.

The common practice is to create a shared memory segment and then map it and "remove" it with shmctl(IPC_RMID). The segment continues to exist for processes that have it mapped and for forked child processes. But it will go away as soon as all processes that have it mapped go away. That is the way to ensure that the segment won't linger too long. (It is very like unlinking a tmp file so that it will go away when a process exits.)