调整OracleSGA大小的解决方法Oracle认证考试

文章作者 100test 发表时间 2009:09:02 22:36:25
来源 100Test.Com百考试题网


"mkhgigh">   在修改数据缓冲区的时候,提示错误如下:
  SQL>. alter system set db_cache_size=25165824 scope=both.
  alter system set db_cache_size=25165824 scope=both
  *
  ERROR at line 1:
  ORA-02097: parameter cannot be modified because specified value is invalid
  ORA-00384: Insufficient memory to grow cache
  SQL>.
  出现这种错误的具体原因:
  SGA(sga_max_size)是由共享池(shared_pool_size),缓冲区高速缓存(db_cache_size 9i以上版本),大型池(large_pool_size),Java池(java_pool_size)组成的,在我们安装的时候这些已经分配了一定的值,由于需求需要对其进行调整。
  现在sga的值是一定的,sga通常是大于等于以上几项的值之和。
  假如正好sga等于各项之和,那么调大其中任何一项都会出错,调小是不成问题的。
  在此情况下也就出现了以上的错误:
  下面我们以db_cache_size为例:
  解决方法如下:
  1、调小其它项的值,一般情况下我们不会采用这种方法,随着业务的增大对内存的需求越来越高,估计其它项也没有调小的余地
  2、调大sga此时数据库需要是在关闭状态,由于sga不是动态参数,所以我们需要修改init$Oracle_SID.ORA的中sga的大小
  (1)首先创建参数文件,这是为了保持和服务器参数文件一致SQL>.create pfile from spfile.
  (2)修改init$ORACLE_SID.ORA中对应的sga_max_size大小
  (3)创建服务器参数文件SQL>.create spfile from pfile.
  (4)启动数据库 修改db_cache_size的大小
  SQL>. alter system set db_cache_size=25165824 scope=both.
  System altered.
  修改完毕。
  总结:
  sga_max_size需要重启数据库来进行调整,而其中的db_cache_size等可以动态调节,在调节共享池时需要计算好SGA的总容量,假如超过了sga_max_size,就会出现报错的现象。

相关文章


Oracle数据库的建模与具体设计Oracle认证考试
Oracle10gMaterialized视图的改进Oracle认证考试
Oracle学习:分区表和索引Oracle认证考试
dumpOracle数据库的内部结构Oracle认证考试
调整OracleSGA大小的解决方法Oracle认证考试
大型数据库设计原则Oracle认证考试
Oracle数据库并行处理技术详解Oracle认证考试
大型应用面临数据库架构危机Oracle认证考试
解决DB2数据库备份参数修改后的报错问题Oracle认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛