32bit os 突破oracle sga内存1.7G限制方法
Configuration
Please follow steps below:
1. Modify shmmax to be the maximum value for a 32-bit system (no matter what the physical RAM size beyond 4Gb). The maximum value is is 2^32-1 = 4294967295
# echo 4294967295 > /proc/sys/kernel/shmmax
As the above will not be persistent through the reboots, so add the following to /etc/sysctl.conf
kernel.shmmax=4294967295
2. Relocate the SGA. To do this please run the following as the Oracle RDBMS owner account.
$ cd $ORACLE_HOME/rdbms/lib
$ cp ksms.s ksms.s_orig
$ genksms -s 0Xe000000 > ksms.s
$ make -f ins_rdbms.mk ksms.o
$ make -f ins_rdbms.mk ioracle
$
3. drop the oracle process stacklimit from 10MB to 4MB before startup as follows:
$ ulimit -s 4096
*.db_cache_size=2400m
*.shared_pool_size=200m
*.java_pool_size=83886080
*.large_pool_size=8388608
This will lead to a Total System Global Area of 2937135428 bytes, or 2.735Gb