ITPub博客

首页 > Linux操作系统 > Linux操作系统 > statistics_level与SGA_TARGET冲突

statistics_level与SGA_TARGET冲突

原创 Linux操作系统 作者:space6212 时间:2019-03-05 19:06:05 0 删除 编辑

今天有朋友数据库启动报错,向我求助。其中报错信息如下:
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博客 ” ,链接:http://blog.itpub.net/231499/viewspace-63887/,如需转载,请注明出处,否则将追究法律责任。

上一篇: Linux裸设备总结
下一篇: dd工具使用
请登录后发表评论 登录
全部评论

注册时间:2005-01-25

  • 博文量
    81
  • 访问量
    56636