Solved

Is there memory leak in oracle?

Posted on 2004-03-23
6
1,504 Views
Last Modified: 2013-12-11
there's several times oracle in one of my servers ate all the memory.
first I thought it's maybe my code cause the problem, but then i shut down everything, wrote a simple asp page with only open adodb.connection object connect to a oracle 8i database, run a simple select sql script, then close the connection, if i let the page run enough times, oracle.exe will eat all my memory.
the memory leak occure either with microsoft odbc driver for oracle or oracle obdc driver, so it's not driver problem.
0
Comment
Question by:dragonemp
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
6 Comments
 
LVL 8

Expert Comment

by:baonguyen1
ID: 10663894
Hi dragonemp, What is your OS version ? What is the machine type ?

0
 
LVL 48

Expert Comment

by:schwertner
ID: 10665254
Oracle can not ate the whole memory.
The main component of oracle placed in the memory is the SGA.
You can see the size of the SGA so:

SQL> show sga;

Total System Global Area  386998364 bytes
Fixed Size                   454748 bytes
Variable Size             360710144 bytes
Database Buffers           25165824 bytes
Redo Buffers                 667648 bytes
SQL>

Look at this parameter. You can change the size if it is too high.
0
 

Author Comment

by:dragonemp
ID: 10669190
My OS is win2k server with sp4 on a pentium 4 2.4G.

Total System Global Area  185710620 bytes
Fixed Size                    75804 bytes
Variable Size              66846720 bytes
Database Buffers          118710272 bytes
Redo Buffers                  77824 bytes
and before I stop the service and restart again, oracle.exe took 300M RAM + 200M VM.......
0
Online Training Solution

Drastically shorten your training time with WalkMe's advanced online training solution that Guides your trainees to action. Forget about retraining and skyrocket knowledge retention rates.

 
LVL 5

Accepted Solution

by:
Pontis earned 125 total points
ID: 10696934
Hi!

  The total size of the memory that Oracle will use is the size of SGA (which is "fixed" by setting the appropriate parameters in init.ora) plus PGA - the dynamic memory allocated to each connection (thread in your case on win2k).

  The PGA in 8i does have some problems and I've seen the cases when it could grow for sepearet users to the order of hundreds of megabytes and not freeing it up.
 
  What I suggest you do is try to see if your connections get _disconnected_ when you run your test asp program. It could be that IIS or whatever else you use as web server keeps a pool of connections. This coupled with PGA problem can lead to memory exhaustion.

 Yu might want to look at your sort_area_size parameter and also you can increase the size of memory available to oracle by setting /3G parameter in your boot.ini.

Pontis
0
 
LVL 48

Expert Comment

by:schwertner
ID: 10701719
Look v$process view (as sys) or via Oracle Enterprise Manager. If there are to much processes, try to figure out why. You can limit the number of the processes using init<sid>.ora processes parameter.
0
 

Author Comment

by:dragonemp
ID: 10706161
accepted Pontis's comment. thanks.
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
use lov values 2 72
Help on model clause 5 48
Oracle - Query link database loop 8 55
SQL Workhours Count beetween Workhours 3 40
Working with Network Access Control Lists in Oracle 11g (part 1) Part 2: http://www.e-e.com/A_9074.html So, you upgraded to a shiny new 11g database and all of a sudden every program that used UTL_MAIL, UTL_SMTP, UTL_TCP, UTL_HTTP or any oth…
Checking the Alert Log in AWS RDS Oracle can be a pain through their user interface.  I made a script to download the Alert Log, look for errors, and email me the trace files.  In this article I'll describe what I did and share my script.
This video shows setup options and the basic steps and syntax for duplicating (cloning) a database from one instance to another. Examples are given for duplicating to the same machine and to different machines
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.

726 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question