分数怎么比大小视频 深入讲解调整OracleSGA大小的解决方法
深入讲解调整OracleSGA大小的解决方法
在修改数据缓冲区的时候 提示错误如下:
SQL> alter system set db_cache_size= scope=both; alter system set db_cache_size= scope=both * ERROR at line : ORA : parameter cannot be modified because specified value is invalid ORA : Insufficient memory to grow cache SQL>
出现这种错误的具体原因
SGA(sga_max_size)是由共享池(shared_pool_size) 缓冲区高速缓存(db_cache_size i以上版本) 大型池(large_pool_size) Java池(java_pool_size)组成的 在我们安装的时候这些已经分配了一定的值 由于需求需要对其进行调整
现在sga的值是一定的 sga通常是大于等于以上几项的值之和

假如正好sga等于各项之和 那么调大其中任何一项都会出错 调小是不成问题的
在此情况下也就出现了以上的错误
下面我们以db_cache_size为例:
解决方法如下
调小其它项的值 一般情况下我们不会采用这种方法 随着业务的增大对内存的需求越来越高 估计其它项也没有调小的余地
调大sga此时数据库需要是在关闭状态 由于sga不是动态参数 所以我们需要修改init$Oracle_SID ORA的中sga的大小
( )首先创建参数文件 这是为了保持和服务器参数文件一致SQL>create pfile from spfile;
( )修改init$ORACLE_SID ORA中对应的sga_max_size大小
( )创建服务器参数文件SQL>create spfile from pfile;
( )启动数据库 修改db_cache_size的大小
SQL> alter system set db_cache_size= scope=both;
System altered
修改完毕
总结
lishixinzhi/Article/program/Oracle/201311/16919