Oracle 19c 有很多优点,其中插件数据库是11G以前是没有的新功能,PostgreSQL数据库类似,估计是Oracle学了PostgreSQL的。
近期碰到的问题16G内存的电脑,Oracle 19c启动,IDEA启动后,java没法运行和编译了。查其原因:机器内存占用90%左右,没有java运行所使用的内存了。
解决办法:Oracle占用内存太多,限制Oracle内存占用。IDEA也占用不少,也限制。这里只说明限制Oracle内存使用:
使用主库的dba登录处理:
sqlplus / as sysdba
SQL> show parameter target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 0
db_big_table_cache_percent_target string 0
db_flashback_retention_target integer 1440
fast_start_io_target integer 0
fast_start_mttr_target integer 0
memory_max_target big integer 0
memory_target big integer 0
parallel_servers_target integer 400
pga_aggregate_target big integer 1600M
sga_target big integer 4800M
target_pdbs integer 9
其中:
SGA_TARGET最大占用最初设定是:48000M,大约4.5GB。
PGA_AGGREGATE_TARGET最大占用1600M,大约1.5GB。
把这两个参数同时缩小
继续操作:
ALTER SYSTEM SET SGA_TARGET = '2G' SCOPE=SPFILE;
ALTER SYSTEM SET PGA_AGGREGATE_TARGET = '1G' SCOPE=SPFILE;
重启Oracle数据库:
shutdown immediate
startup
再查看内存占用:
SQL> show parameter target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 0
db_big_table_cache_percent_target string 0
db_flashback_retention_target integer 1440
fast_start_io_target integer 0
fast_start_mttr_target integer 0
memory_max_target big integer 0
memory_target big integer 0
parallel_servers_target integer 400
pga_aggregate_target big integer 1G
sga_target big integer 2G
target_pdbs integer 4
SQL>
然后打开Windows任务管理器查看,少了不少,内存占用到了72%,可以运行java并编译了。
End.