Not sure how many of you run into this problem. It happens to one of our production database after we trying to increase the SGA size to 320G.
Oracle version is 10.2.0.4, AIX 5.3 L6 32CPUs 750G RAM
The error is
ORA-00064: object is too large to allocate on this O/S (1,16777216)
It seems pretty conclusive OS limit problem. However our OS ulimit for Oracle user is set to unlimited.
Actually the problem is _ksmg_granule_size SGA units of granules
Granule size is determined by total SGA size. On most platforms, the size of a granule is 4 MB if the total SGA size is less than 1 GB, and granule size is 16MB for larger SGAs.
In our case since we increased our SGA so big, even 16MB is not big enough to fix our needs.
After increased _ksmg_granule_size to 32MB, we are able to start the instance with 350MB SGA.
alter system set "_ksmg_granule_size"=33554432 scope=spfile;