I am running the following command:
dbca -silent -createDatabase -templateName foobar.dbt -responseFile NO_VALUE -gdbname foo1 -sid foo1 -emConfiguration NONE -automaticMemoryManagement true -initParams memory_max_target='2048M',memory_target='1638M',sga_max_size='1638M',sga_target='0M',pga_aggregate_target='0M',pga_aggregate_limit='0M'
This fails and I receive the following in the log:
The specified shared pool size or SGA size "80MB" does not meet the recommended minimum size requirement "331MB". This will make database creation fail. Do you want to continue?
Unique database identifier check passed.
/apps/oradata/ has enough space. Required space is 1775 MB , available space is 2507 MB.
File Validations Successful.
Cleaning up failed steps
DBCA_PROGRESS : 5%
Creating and starting Oracle instance
DBCA_PROGRESS : 6%
DBCA_PROGRESS : 8%
DBCA_PROGRESS : 9%
ORA-01078: failure in processing system parameters
DBCA_PROGRESS : 10%
ORA-01034: ORACLE not available
ORA-01034: ORACLE not available
DBCA_PROGRESS : DBCA Operation failed.
The parameters specified are our standard. (1638M is 80% of MAX_MEMORY_TARGET
). Usually we set the memory parameters after the database is created, I'm trying to do it during creation instead.
I do not know where the log is grabbing "80MB" from. To my knowledge, it should be set to 0
because I am setting SGA_TARGET
to 0
.
I suspect that maybe I am doing something contradicting, or maybe I should be considering other parameters to set manually. Could it be that by setting SGA_TARGET
to 0
and MEMORY_TARGET
to 0
, that I am confusing Oracle on whether or not it should be using Automatic Memory Management, and it tries using it anyway which is setting the shared pool to 80MB?
Best Answer
After testing your code, found the issue and modified the command which works fine for me.
The error log.
I faced the same error as you have.
Further information is the error message
ORACLE not available
, which means instance creation is failed.During the database creation, DBCA creates a dummy init.ora files under the
ORACLE_BASE/cfgtoollogs/dbca/<oracle_SID>/
directory.Let's see what parameters were used in the init files for that instance.
There was the main problem. Then I tried to edit the command and removed that size delimiter
M
then ran the command once again.And it has completed successfully.
The memory target value appeared as
memory_target=1300m
.I don't know why the DBCA has made that error. Same time other parameters are using same values(with the character
M
) as valid value.If you wish to use automatic memory management and provide memory related parameters with templates in DBCA silent mlde, you can use
-automaticMemoryManagement true
(which forces to use memory target hence its not necessary to use memory parameters) along with-totalMemory <memory allocated for Oracle in MB>
.Example:
...-automaticMemoryManagement true -totalMemory 1650
is equivalent to... -initParams memory_target = '1650'
. Size is expressed in MB.sga_target
andsga_max_target
parameters are not supported on command line. Details are in MOS document(2212857.1)