ORA-00824: cannot set sga_target due to existing internal settings, see alert log for more information
这篇文章是上篇文章”Expdp 导数错误 ORA-00832”的延续,前几天工作比较忙、累,直到今天才整理发出来。这个数据库实例的参数设置比较诡异其实是有原因的,由于这台数据库服务器系统是32位,数据库也是32位的。对于绝大部分32位系统上的32位数据库,SGA最大的设置都不能超过2G,有的系统最大值甚至不能超过1.7G左右。DBA为了让内存充分利用,不至于浪费内存资源,于是想让SGA_MAX_SIZE最大化,对数据库相关参数做了调整,设置参数USE_INDIRECT_DATA_BUFFERS为TRUE,调整SGA_MAX_SIZE为3424M,然而使用USE_INDIRECT_DATA_BUFFERS参数,就不能在使用其他9i以后新增的内存控制参数了,比如SGA_TARGET、DB_CACHE_SIZE等等,必须通过DB_BLOCK_BUFFERS参数来指定内存的容量。所以SGA_TARGET为0,关闭了ASSM特性。下面述说一下当时的解决问题思路和过程。

首先我试着启用ASSM,设置sga_target的大小跟sga_max_size的大小一致,如下所示,结果报错:
epps> alter system set sga_target=3424M scope=both;
alter system set sga_target=3424M scope=both
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-00824: cannot set sga_target due to existing internal settings, see alert log for more information
使用命令“oerr 错误类型 错误编号” ,查看错误信息的详细原因和Action,
[oracle@get-orasvr02 db_com_sql]$ oerr ora 00824
00824, 00000, "cannot set sga_target due to existing internal settings, see alert log for more information"
// *Cause: Unable to set sga_target due to current parameter settings.
// *Action: See alert log for more information.
通过告警日志查看详细出错信息,结果查看告警日志发现如下提示信息:
Cannot set sga_target with db_block_buffers set
Tue Sep 2 16:08:51 2013
在Metalink上查询了一下这方面的资料,发现SGA_TARGET > 0 不能与db_block_buffer这个过时的参数共存,否则就会出现ORA-00824错误。具体信息如下
Cause
If you enable automatic SGA Management by setting SGA_TARGET >0 and also have db_block_buffers(Obsolete parameter) in your parameter file (pfile/spfile)
Startup of Database fails with ORA-00824 Error
Solution
A) Either you need to disable the Automatic SGA Mangement by setting SGA_Target=0
==OR==
B) Replace the db_block_buffers parameter with db_cache_size parameter
STEPS TO RESOLVE
1. Make an OS copy of the spfile if you do not have a pfile for this database
2. Edit the copy of the spfile to remove the binary stuff before the first parameter
3. Remove the binary stuff after the last parameter.
4. Edit parameters needed to be changed.
5. Save the file and note name and location.
6. Start sqlplus and connect / as sysdba
7. Issue startup pfile = '<full path and file name of file just updated>'
8. Create spfile from pfile.
DB_BLOCK_BUFFERS cannot be combined with the dynamic DB_CACHE_SIZE parameter; combining these parameters in the same parameter file will produce an error.
epps> show parameter db_block_buffers
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_block_buffers integer 240000
epps> show parameter db_cache_size
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_cache_size big integer 0
epps>

解决步骤:
Step 1:备份spfile文件,避免修改数据库参数导致数据库宕机或启动不了的意外情况出现。
epps> show parameter spfile
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /u01/app/oracle/product/10.2.0
/db_1/dbs/spfileepps.ora
epps> !
cd /u01/app/oracle/product/10.2.0/db_1/dbs/
cp spfileepps.ora spfileepps.ora.bak
epps> create pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/pfile_20130903_bak.ora' from spfile;
File created.

Step 2: 修改pfile下的数据库参数,例如去掉*.db_block_buffers=240000,如果只删除db_block_buffers参数,这时启动数据库就会报ORA-32006、ORA-00385错误,如下图所示
epps> startup pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/pfile_20130903_bak.ora'
ORA-32006: PARALLEL_AUTOMATIC_TUNING initialization parameter has been deprecated
ORA-00385: cannot enable Very Large Memory with new buffer cache parameters

所以还需要修改USE_INDIRECT_DATA_BUFFERS等参数。到此,问题出现的来龙去脉,解决方法都已全部给出,当然最后还是直接修改streams_pool_size来解决问题方便,如果将SGA_MAX_SIZE改回去,肯定会对数据库性能产生比较大的影响。
[参考资料]:
http://blog.sina.com.cn/s/blog_7c0ae04b0100rhae.html
http://space.itpub.net/4227/viewspace-616466
http://yangtingkun.itpub.net/post/468/492617
ORA-00824: cannot set sga_target due to existing internal settings, see alert log for more information的更多相关文章
- ORA-00824:cannot set SGA_TARGET or MEMORY_TARGET due to existing internal settings
练习时执行一条修改数据库连接数的语句: alter system set processes=1 scope=spfile; 然后关闭数据库: shutdown 再启动数据库时,出现异常,报错信息如下 ...
- 解决ORA-00824: cannot set sga_target due to existing
今天Linux服务器机子重启了下,Oracle启动不起来,提示:解决ORA-00824: cannot set sga_target due to existing 看了很多解决方法,发现下面这个特别 ...
- WCF 异常 The server was unable to process the request due to an internal error.
实习用的C#,不搞.NET,但且记下. 只有标题中的错误提示,完全不知道哪里出错,要么是Oracle服务器.要么是服务程序,最不愿代码有问题. <behaviors> <servic ...
- 静默方式安装10g数据库软件+升级patch+手工建库
通常我们安装Oracle数据库软件,都是用OUI图形界面来完成的,但有些Unix/Linux系统中并未安装图形系统,也就无法使用图形界面来安装Oracle的产品了,对于这种场景,就只能采用静默方式来安 ...
- ORACLE 博客文章目录(2015-05-27更新)
从接触ORACLE到深入学习,已有好几年了,虽然写的博客不多,质量也参差不齐,但是,它却是成长的历程的点点滴滴的一个见证,见证了我在这条路上的寻寻觅觅,朝圣的心路历程,现在将ORACLE方面的博客整理 ...
- ORACLE 博客文章目录(2015
从接触ORACLE到深入学习,已有好几年了,虽然写的博客不多,质量也参差不齐,但是,它却是成长的历程的点点滴滴的一个见证,见证了我在这条路上的寻寻觅觅,朝圣的心路历程,现在将ORACLE方面的博客整理 ...
- ORACLE 博客文章目录
从接触ORACLE到深入学习,已有好几年了,虽然写的博客不多,质量也参差不齐,但是,它却是成长的历程的点点滴滴的一个见证,见证了我在这条路上的寻寻觅觅,朝圣的心路历程,现在将ORACLE方面的博客整理 ...
- ocp 1Z0-042 61-120题解析
61. View the Exhibit.Which statement regarding the dept and emp tables is true?A) When you delete a ...
- ocp 1Z0-042 121-178题解析
121. You want to create a new optimized database for your transactional production environment to be ...
随机推荐
- 重温JSP学习笔记--JSTL标签库
以前写jsp的时候对jstl标签库是有些抵触的,因为我觉得嵌入java代码的方式几乎无往不利,没有必要使用标签库,不过这次复习还是好好地学习了一下,发现这个还是很有用处的,用得好能省不少事,JSTL是 ...
- Fragment基础----信息传递
如何通过activity来访问fragment的信息呢,我们可以通过一个实例来了解. 使用两个Fragment和一个activity管理 效果图: 第一个fragment来表示输入框 第二个fragm ...
- 自定义iOS 中推送消息 提示框
看到标题你可能会觉得奇怪 推送消息提示框不是系统自己弹出来的吗? 为什么还要自己自定义呢? 因为项目需求是这样的:最近需要做 远程推送通知 和一个客服系统 包括店铺客服和官方客服两个模块 如果有新的消 ...
- Python_Day_01(使用环境为Python3.0+)
Python 变量与赋值. Python在赋值时时不需要进行定义类型,可直接进行定义赋值. #直接赋值字符串格式 value = "Char" #直接赋值为数字 value = 1 ...
- 用c#开发微信(5)自定义菜单设置工具 (在线创建)
读目录 1 使用 2 原理 3. 错误 上次写了<用c#开发微信 (4) 基于Senparc.Weixin框架的接收事件推送处理 (源码下载)>,有园友问到如何创建菜单的问题,今天就介绍下 ...
- xp IP安全策略 ipseccmd
///下载 ipseccmd.exe //禁止 xp 连接 public static void BannedXPRunCmd() { string str = Console.ReadLine(); ...
- javaweb学习总结(三十八)——事务
一.事务的概念 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功. 例如:A——B转帐,对应于如下两条sql语句 update from account set mone ...
- 《数据结构与算法Python语言描述》习题第二章第一题(python版)
题目:定义一个表示时间的类Timea)Time(hours,minutes,seconds)创建一个时间对象:b)t.hours(),t.minutes(),t.seconds()分别返回时间对象t的 ...
- php实现设计模式之 备忘录模式
<?php /*备忘录模式:在不破坏封装的前提下,获取对象的内部状态,并且在对象外保存该状态.这样就可以将该对象恢复到保存之前的状态(行为模式) * * 发起人:记录当前时刻的内部状态,负责定义 ...
- java代码实现队列的优化
package com.voole.queun; /** * @Decription 队列 * @author TMAC-J * */ public class Queun { /** * 初始化队列 ...