如何提高Oracle的内存占用量,以及调整后Oracle无法启动的解决方法。

首先第一个要提高的是 MEMORY_TARGET, 这个是总内存占用量,也就是MAX(SGA+PGA) 这个量大概是物理内存的80%, 超过86%就不好了。 操作系统很容易触发虚拟内存。这是我们个人笔记本上的建议, 如果是服务器上,128G的情况下可以适当提高比例。

1.第一步一定是要修改 MEMORY_TARGET 否则有可能因为SGA的内存设置过高,超过MEMORY_TARGET 导致Oracle无法启动。估计很多人都中招了把。

SQL->alter system set MEMORY_TARGET=2100M scope=spfile;

2.然后修改SGA的最大峰值内存

SQL->alter system set sga_max_size=1800M scope=spfile;

3.最后修改SGA的目标值

SQL->alter system set sga_target=1800M scope=spfile;

4.最后重启服务器。

SQL->shutdown immediate;  

SQL->startup; 

网上百度到的很多教程是错误的。没有说明要防止参数范围不要超出合适的值。很多无辜的小白因此重装Oracle

如果你不幸中招了, 导致Oracle无法启动。不要慌。
首先进入管理模式,(Oracle无法启动也能进入!!!)

这个是在命令行里执行。 或者运行中执行。 后面的参数一定要带上。就直接进入管理模式了。不需要账号密码。

 sqlplus / as sysdba

然后启动Oracle

SQL->startup;

在SGA大于memory_target的情况下,使用startup 会出现异常:

SQL->
ORA-00844: Parameter not taking MEMORY_TARGET into account
ORA-00851: SGA_MAX_SIZE 1073741824 cannot be set to more than MEMORY_TARGET 872415232.

这个时候解决方法如下。先创建启动配置文件 init0321.ora

SQL> create pfile='D:\init0321.ora' from spfile;
File created. 

然后修改:init0321.ora 文件内容

*.memory_target=1073741824 //主要是这个数值要大于sga_max_size 确保 memory_targe 大于 SGA+PGA 

*.sga_max_size=805306368  //sga_max_size单位是字节,最好和sga_target相等

*.sga_target=805306368

sga_max_size等于memory_target会出现,

ORA-00838: Specified value of MEMORY_TARGET is too small, needs to be at least 1036M,


SQL> startup pfile='D:\init0321.ora';

SQL> create spfile from pfile='D:\init0321.ora';

SQL> shutdown;

Database closed.

Database dismounted.

ORACLE instance shut down.

SQL> startup;
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值