Skip to Main Content

Breadcrumb

Question and Answer

Connor McDonald

Thanks for the question, Luis.

Asked: March 02, 2018 - 8:31 pm UTC

Last updated: March 04, 2018 - 5:00 am UTC

Version: 11G

Viewed 1000+ times

You Asked

Hello, i have problem with my Oracle 11G XE

I can log into db with : sqlplus "sys as sysdba"

Then to modify : alter system set processes=5000 scope=spfile;

I do : shutdown immediate;

And then startup but receive this error :
ORA-04031: unable to allocate 2320008 bytes of shared memory ("shared pool","unknown object","sga heap(1,0)","Temporary Tables State Object Type")

And cannot start this db again.


How can i fix this problem ?

Thanks for your help !

Luis


and Connor said...

each process needs a fixed amount of reserved memory and hence setting it to 5000 has blown the limit for XE.

Under your Oracle installation, look for a file "alertXE.log" (or similar). It is the alert log for the database. Open that with text editor, and every time you start the database (or try to) you will see a listing of the parameters we tried to use. For example, this from mine:

System parameters with non-default values:
  processes                = 320
  cpu_count                = 4
  sga_max_size             = 6G
  nls_language             = "AMERICAN"
  nls_territory            = "AMERICA"
  resource_manager_plan    = "DEFAULT_PLAN"
  sga_target               = 6G
  control_files            = "C:\ORACLE\ORADATA\DB122\CONTROL01.CTL"
  control_files            = "C:\ORACLE\ORADATA\DB122\CONTROL02.CTL"
  db_block_size            = 8192
...


Extract these into a file called (say) "manual.ora" and adjust the processes parameter downwards in that file.

Now you can do:

sqlplus / as sysdba
create spfile from pfile = 'manual.ora';
startup




Is this answer out of date? If it is, please let us know via a Comment

More to Explore

Administration

Need more information on Administration? Check out the Administrators guide for the Oracle Database