Oracle 12c占用系统内存太高,几行命令帮你搞定
·
##使用场景
开发机被oracle占用了10G内存,由于经常要同时使用多个开发软件,导致内存不够用
解决方案
方法一:不用时关闭
写个bat命令,需要用的时候再打开,对开发人员来说有点麻烦,经常要切下项目又得重新操作,也要关掉多余的项目
方法二:降低ORALCE的内存占用
操作前,先悉知下这些注意事项:
1、内存大小建议:对于开发环境,SGA 设置为 2G-4G 通常足够;生产环境需根据实际负载和物理内存总量合理分配,一般建议 SGA 不超过物理内存的 60%-70%。
2、PGA 内存:除了 SGA,Oracle 还会使用 PGA。如果总内存占用依然高,可以检查 pga_aggregate_target 并适当调低。
3、备份配置:在进行重大参数修改前,建议备份当前的 spfile 或创建 pfile 备份,以防启动失败。
4、Windows 服务:如果在 Windows 上,重启数据库实例即可;如果是 Linux,确保使用正确的脚本重启实例。
实操案例
结果:将占用10g内存,降低到4G;
注意:以下命令中,sga_target 必须小于或等于 sga_max_size。
SQL*Plus: Release 12.1.0.2.0 Production on 星期六 5月 9 09:30:40 2026
Copyright (c) 1982, 2014, Oracle. All rights reserved.
请输入用户名: sqlplus / as sysdba
输入口令:
连接到:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> show parameter sga;
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
lock_sga boolean
FALSE
pre_page_sga boolean
TRUE
sga_max_size big integer
9792M
sga_target big integer
9792M
unified_audit_sga_queue_size integer
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
1048576
SQL> alter system set sga_target=4096m scope=spfile;
系统已更改。
SQL> alter system set sga_max_size=4096m scope=spfile;
系统已更改。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup;
ORACLE 例程已经启动。
Total System Global Area 4294967296 bytes
Fixed Size 4626744 bytes
Variable Size 1073743560 bytes
Database Buffers 3204448256 bytes
Redo Buffers 12148736 bytes
数据库装载完毕。
数据库已经打开。
SQL> show parameter sga;
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
lock_sga boolean
FALSE
pre_page_sga boolean
TRUE
sga_max_size big integer
4G
sga_target big integer
4G
unified_audit_sga_queue_size integer
NAME TYPE
------------------------------------ ----------------------
VALUE
------------------------------
1048576
SQL>
更多推荐


所有评论(0)