Oracle21c安装后初始占用内存超过4G(进程名 Oracle RDBMS Kernel Executable,仅包含OracleServiceORCL服务),sga_max_size= sga_target=3364m.几乎占了30%内存,必须优化。
记录如下:
sqlplus下 账号 system, cmd下 :sqlplus / as sysdba
- show parameter sga;
- alter system set sga_max_size=384M scope=spfile;
alter system set sga_target=380M scope=spfile; - 重启服务 OracleServiceORCL
注意: sga_max_size> sga_target,其他参数不用修改,如果 sga_max_size和sga_target修改的值过小,比如小于380M(依据:Specified value of sga_target 316M is too small, needs to be at least 380M),服务起不来。
补救办法:
1.cmd下 sqlplus / as sysdba
2. create spfile from pfile=‘D:\Users\develop\oracle21c\database\initorcl.ora’;
3. shutdown immediate
4. 修改上述文件中*.sga_max_size和sga_target(默认单位是B,可以直接写成380m这种)
5. cmd 下 exit后 sqlplus / as sysdba
6. startup nomount pfile=‘D:\Users\develop\oracle21c\database\initorcl.ora’;
7. create spfile from pfile=‘D:\Users\develop\oracle21c\database\initorcl.ora’;
8. shutdown immediate
9. startup
10.完毕,可以打开任务管理器, OracleServiceORCL跑在限定内存范围附近(大点,因为有基础服务),sqlplus连接正常。
优化后占用 Oracle RDBMS Kernel Executable占用约774m
如果关闭 pre_page_sga ,alter system set pre_page_sga=false scope=spfile;
占用大致在710m。