ITPub博客

首页 > 数据库 > Oracle > statistics_level与SGA_TARGET冲突的解决方法

statistics_level与SGA_TARGET冲突的解决方法

原创 Oracle 作者:yaoronghui2005 时间:2009-10-15 15:18:04 0 删除 编辑
http://203.208.39.132/search?q=cache:-y2crSc0FQwJ:/html/20071129/29857.html+oracle+STATISTICS_LEVEL&cd=1&hl=zh-CN&ct=clnk&gl=cn&client=aff-360homepage&st_usg=ALhdy28i7g2w69yXc4P9EBWmA_TlSiDUBA[@more@]

今天有朋友数据库启动报错,向我求助。其中报错信息如下:
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

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/450962/viewspace-1027889/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    153
  • 访问量
    176621