I have a new Linux 7 system when Oracle 19C starts, it throws the following errors in the alert.log
SGA_MAX_SIZE specified is high
Errors in file /opt/oracle/diag/rdbms/prod/PROD/trace/PROD_ora_10899.trc (incident=208027):
ORA-00700: soft internal error, arguments: [sms physmem limit], [103079215104], [101163243929], [], [], [], [], [], [], [], [], []
Incident details in: /opt/oracle/diag/rdbms/prod/PROD/incident/incdir_208027/PROD_ora_10899_i208027.trc
Other than the error itself, everything seems to be working fine. This Linux system has 120G memory and it is a dedicated database server — no other application running on it. Hugepage is used for SGA. SGA_MAX_SIZE, SGA_TARGET are set to 96G, PGA_AGGREGATE_LIMIT is set to 8G.
sga_max_size big integer 96G
sga_target big integer 96G
pga_aggregate_limit big integer 8G
( 96 + 8 ) / 120 = 86.67%
According to this MOS article — Getting ORA-00700 Message when Starting the Database (Doc ID 2610312.1), Oracle will gvie this warning message when SGA+PGA exceeds 80% of the overall physical memory and suggest only allocate 80% of memory to Oracle, leave 20% for OS. For a small system, leaving 20% for OS make sense; but for a large system like mine which has 120G memory, 20% would be 24G. That’s a lot for a dedicated database system.
As you can see below, my system has 86.67% of memory allocated for Oracle, it still has 16G for OS which I think should be enough. I’ll leave it and if there is anything wrong later, I may reduce my SGA to a smaller number — maybe start with 90G?
( 96 + 8 ) / 120 = 86.67%
PGA_AGGREGATE_LIMIT is a new parameter introduced in Oracle 12c. It’s an interesting parameter and I’ll talk about it in another post.