statistics_level与SGA_TARGET冲突

上一篇 / 下一篇  2007-11-28 00:00:00 / 个人分类:Oracle技术

今天有朋友数据库启动报错,向我求助。其中报错信息如下:
SQL> startup
ORA-00824: cannot set sga_target due to existing internal settings, see alert log for more information
最后发现问题出在参数设置冲突上,下面模拟这个过程。


--设置参数并重启
SQL> alter system set statistics_level=basic scope=spfile;

System altered.

SQL> show parameter sga_target

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
sga_target big integer 160M

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORA-00824: cannot set sga_target due to existing internal settings, see alert log for more information

这里报错信息不明确,并且有些误导人。很多人看到这个信息第一时间是去查看background_dump_dest参数设置的路径下查看alert文件,但你会发现在那个路径下alert文件什么有用的信息都没有。
因为此时oracle实例还没有起来,oracle还不知道background_dump_dest设置的路径是什么,所以,无法把出错信息往那个路径下写。
这种情况下,oracle会把alert信息写到$ORACLE_HOME/dbs下(linux系统),在$ORACLE_HOME/dbs下查看alert文件内容:

[oracle@suk1 dbs]$ more alert_test1.log
Wed Nov 28 16:50:10 2007
Cannot set sga_target with statistics_level=BASIC

从这个信息看,错误原因就很明显了:statistics_level=BASIC和sga_target的设置不兼容。

因为在10g中,sga_target>0时,表示启用sga自动管理特性,这个特性是基于oracle收集到的数据库运行状态数据来动态调整SGA的,而如果statistics_level=BASIC的话,oracle只会收集一些很基本的信息,不会收集SGA自动调整需要的信息,导致sga自动调整特性不可用。

知道原因了,解决方法有两种:
1、设置sga_target=0,禁用sga自动调整
2、设置statistics_level=typical


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-08-22  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 9739
  • 日志数: 410
  • 建立时间: 2007-12-30
  • 更新时间: 2008-08-21

RSS订阅

Open Toolbar