Error Description:
-----------------------------
While settings dynamic memory components ORA-00384: is raised.
SQL> alter system set db_4k_cache_size=800M;
alter system set db_4k_cache_size=800M
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-00384: Insufficient memory to grow cache
Cause of The Problem:
--------------------------------------------
This problem can be raised for several reasons.
1)SGA_MAX_SIZE is not set
--------------------------------------------------
The initialization parameter SGA_MAX_SIZE is not set explicitly either in spfile or in pfile and hence its default value at the time of startup is set to sum of the total memory parameters plus some overhead.
You can check your current sga memory by issuing any one of the following in SQL*plus,
show sga;
show parameter sga_max_size;
So, whenever you use ALTER SYSTEM SET to set the value of dynamic memory components like DB_CACHE_SIZE , DB_nK_CACHE_SIZE this will fail as it cannot grow beyond SGA_MAX_SIZE . Thus, the errors which your are seeing is expected.
2)SGA_MAX_SIZE is set but not enough to allow memory to allocate
--------------------------------------------------------------------------------
There may be explicitly set SGA_MAX_SIZE but it is not enough to allow the memory settings as it set by ALTER SYSTEM SET statement. Suppose total sga memory after setting sga dynamic components exceeds SGA_MAX_SIZE.
3)Oracle Bug
---------------------------
There is oracle Bug 4587117 and Bug 4919526 which is responsible to cause the above error.
Solution of the Problem:
----------------------------------
The solution is based on the cause of the error.
For Case 1)
Increase the SGA_MAX_SIZE parameter of the database and bounce the database. As SGA_MAX_SIZE is invoked only at startup so in order to affect the changes database need to be restarted. You can set it in spfile from sql*plus by,
ALTER SYSTEM SET SGA_MAX_SIZE=4G scope=spfile;
SHUTDOWN;
STARTUP;
For Case 2)
If you have limited memory in your system then set the lower value of the dynamic components. Suppose you tried to set 800M which raised error. You may set it lower value which will not raise error. Like,
alter system set db_4k_cache_size=300M;
For Case 3)
Install Server Patch Set from metalink.
Related Documents
http://arjudba.blogspot.com/2008/05/startup-fails-with-ora-27102-out-of.html
http://arjudba.blogspot.com/2008/12/expdp-fails-with-ora-39125-ora-04031.html
http://arjudba.blogspot.com/2009/05/ora-27100-shared-memory-realm-already.html
http://arjudba.blogspot.com/2008/05/startup-fails-with-oracle-error-ora.html
http://arjudba.blogspot.com/2008/09/database-startup-fails-with-ora-27302.html
http://arjudba.blogspot.com/2008/07/database-startup-fails-with-error-ora.html
http://arjudba.blogspot.com/2008/08/startup-fails-with-ora-01261-parameter.html
Saturday, July 12, 2008
ORA-02097, ORA-00384 while setting memory components
| Reactions: |
Subscribe to:
Post Comments (Atom)
Tag Cloud
10.2g
10g
11g
11gR2
Abasa
About Oracle
Administration
Adsense
Alerts
Archival
ASM
ASP.Net
Audit
Audit Vault
Backup
Bangladesh
Block Corruption
Blogger
Browser
Bug
Business
Clone
Clusterware
Comments
Concepts
Connection
Controlfiles
Crime
CSS
Data Block
Data Dictionary
Data Guard
Data Mining
Data Pump
Data Type
Database Administration
Database Vault
DBConsole
Developer
Economics
EM
Excel
Exercise
Explain plan
Export
External Table
Facebook
Firefox
Firmware
Flashback
Forum
Functions
Games
Globalization Support
Grid Control
Hardware
History
HTML
IE
Import
Indexes
initializaion parameter
initialization parameter
Installation
Internals
Internet
Interview
isql*plus
Java
JavaScript
Job
Joins
Joke
Limitation
Linux
Listener
Logminer
Magento
Mail
Materialized View
Medical
Memory
Mobile
Money
Multimedia
MySQL
Net Services
Network
OCP
Operators
Oracle
Oracle Concepts
Oracle Recovery
OS
Others
OUI
Package
Packages
Parameters
Partitioning
Patchset
Performance
Perl
Pfile
Photos
PHP
PL/SQL
Profile
Pseudocolumns
Puzzle
Quiz
Quota
RAC
RAC Installation
Recovery
Recovery Problems
Redo Log
Reports
RMAN
Scripts
Security
SEO
Server Administration
SGA
Shell Script
Smarty
Social Marketing
Solaris
Spfile
SQL
SQL Tuning
SQL*Loader
Sql*Plus
Startup Problem
Streams
SwingBench
System Analysis
Tablespaces
Technology
Temp
TNS Error
Tools
Troubleshooting
Tuning
Undo
UNIX
Upgradation
Utilities
Version
Views
Vmware
Windows
Wordpress
XML
2 comments:
Dear Arju vi,
This is Nayan, Now I am working as a oracle developer in King Saud Medical Complex,Riyadh, Saudi Arabia. I am practing DBA to handle our database.I faced a problem when I changed sga_max_size to 4G.
-------------------------------
After setting the sga_max_size to 4g
I shutdown the database and try to startup the database but it is not starting and showing the following error.
------------------------------
SQL> startup;
ORA-27102: out of memory
OSD-00022: additional error information
O/S-Error: (OS 8) ■■ط╟ ╩╩µ▌╤ ع╙╟═╔ ╩╬╥وغ ▀╟▌و╔ طع┌╟ط╠╔ ف╨╟ ╟ط├ع╤.
SQL> startup nomount;
ORA-27100: shared memory realm already exists
SQL> select status from v$instance;
select status from v$instance
*
ERROR at line 1:
ORA-01034: ORACLE not available
----------------------------
Even I cant startup the database in the nomount state.So how can I solve the problem and startup my database.
May be you don't have enough free memory for your database. So keep the SGA_MAX_SIZE low and then start up.
Post a Comment