暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

I am getting a database startup error about being unable to start "with new and and old " values for parameters. (9.0.1)

2011-01-01
914

The Oracle (tm) Users' Co-Operative FAQ

I am getting a database startup error about being unable to start "with new and and old " values for parameters. (9.0.1)


Author's name: Jonathan Lewis

Author's Email: Jonathan@jlcomp.demon.co.uk

Date written: 18th July 2002

Oracle version(s): 9.0.1

I am getting error while restarting the database after changing the parameter db_block_buffers in SPFILE<SID>.ora file.
The error was "could not start the database with old and new parameter". What could be the reason.


Errors come with error numbers - if you are on a UNIX machine you can always try the oerr call to get more details about the error message, including (sometimes) a cause and action. For example, of the program returns error ORA-00381, you can try

$ oerr ora 381
00381, 00000, "cannot use both new and old parameters for buffer cache size specification"
// *Cause:  User specified one or more of { db_cache_size ,
//          db_recycle_cache_size, db_keep_cache_size,
//          db_nk_cache_size (where n is one of 2,4,8,16,32) }
//          AND one or more of { db_block_buffers , buffer_pool_keep ,
//          buffer_pool_recycle }. This is illegal.
// *Action: Use EITHER the old (pre-Oracle_8.2) parameters OR the new
//          ones. Don't specify both. If old size parameters are specified in
//          the parameter file, you may want to replace them with new parameters
//          since the new parameters can be modified dynamically and allow
//          you to configure additional caches for additional block sizes.

Note, the necessary file ($ORACLE_HOME/rdbms/mesg/oraus - or local language equivalent) does not exist on NT boxes, but you could try raiding your nearest friendly unix box for the file, and just search it for the error number.

I assume that you have used SQL*Plus to issue a command like:

	alter system set db_block_buffers=4000 scope=spfile

In this case, your spfile now has two lines like:

	*.db_block_buffers=4000
	*.db_cache_size=16777216 

This is what the complaint is about. You need to fix the spfile, expect you can't until you've started the database, and you can't start the database until you've fixed the spfile. Rename the spfile to something else so that it doesn't get accessed by accident from now on.

To fix this problem: if you have a pfile (init{SID}.ora file) that is reasonably up to date, use

	startup pfile={fully qualified name of pfile}
	create spfile from pfile;

You now have a file spfile{SID}.ora sitting in the default location ($ORACLE_HOME/dbs for Unix), so copy it, and start issuing commands to patch it up for all the paramters that are currently not what you want.

Second option - spfiles are 'binary' files, which in this case means that have some extra junk in them, but you can read most of the text. Copy the spfile, and edit it to extract the text (string -a is a useful command under Unix). Use the resulting file as the pfile in option 1.


Further reading: N/A



最后修改时间:2020-04-16 15:11:58
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论