代码改变世界

ORA-32004: obsolete and/or deprecated parameter(s) specified

2016-05-03 12:07  潇湘隐者  阅读(2600)  评论(0编辑  收藏  举报

如果在启动数据库时遇到ORA-32004: obsolete and/or deprecated parameter(s) specified 错误,这个是因为数据库里面设置了过时或不推荐使用的参数,如下描述所示:

SQL> ho oerr ora 32004
32004, 00000, "obsolete and/or deprecated parameter(s) specified"
// *Cause:  One or more obsolete and/or parameters were specified in
//          the SPFILE or the PFILE on the server side.
// *Action: See alert log for a list of parameters that are obsolete.
//          or deprecated. Remove them from the SPFILE or the server
//          side PFILE.


具体怎么排除和解决呢? 那么我们先从下面例子来,注意,这个仅仅是在测试服务器用作测试的案例。

SQL> ALTER SYSTEM SET SQL_TRACE=TRUE;
 
System altered.
 
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORA-32004: obsolete and/or deprecated parameter(s) specified
ORACLE instance started.
 
Total System Global Area 1090519040 bytes
Fixed Size                  1218920 bytes
Variable Size             234882712 bytes
Database Buffers          838860800 bytes
Redo Buffers               15556608 bytes
Database mounted.
Database opened.
SQL> 

修改SQL_TRACE参数的值后,关闭实例,重启实例是报错:ORA-32004,一般如果遇到ORA-32004错误时,首先查看告警日志记录,你会发现在告警日志里面有这么一段信息。

Deprecated system parameters with specified values:
  sql_trace               
End of deprecated system parameter listing

另外,你也可以通过下面SQL查看相关过时或不推荐设置的参数。

SQL> SELECT  NAME, DESCRIPTION FROM V$PARAMETER V WHERE V.ISDEPRECATED='TRUE';
 
NAME                                                                DESCRIPTION
-----------------                 -------------------------------------------------------------------------------
lock_name_space                        lock name space used for generating lock names for standby/clone database
buffer_pool_keep                       Number of database blocks/latches in keep buffer pool
buffer_pool_recycle                    Number of database blocks/latches in recycle buffer pool
max_commit_propagation_delay           Max age of new snapshot in .01 seconds
remote_archive_enable                  remote archival enable setting
log_archive_start                      start archival process on SGA initialization
parallel_server                        if TRUE startup in parallel server mode
parallel_server_instances              number of instances to use for sizing OPS SGA structures
fast_start_io_target                   Upper bound on recovery reads
logmnr_max_persistent_sessions         maximum number of threads to mine
serial_reuse                           reuse the frame segments
max_enabled_roles                      max number of roles a user can have enabled
global_context_pool_size               Global Application Context Pool Size in Bytes
plsql_compiler_flags                   PL/SQL compiler flags
sql_trace                              enable SQL trace
parallel_automatic_tuning              enable intelligent defaults for parallel execution parameters
drs_start                              start DG Broker monitor (DMON process)
 
17 rows selected

另外,我们来看看一个使用过时参数的案例,例如,在设置了参数log_archive_start后,重启就会遇到ORA-32004: obsolete and/or deprecated parameter(s) specified

SQL> ALTER SYSTEM SET LOG_ARCHIVE_START=TRUE SCOPE=SPFILE;

此时查看告警日志,就会看到下面对应信息,那么就可以确认是参数log_archive_start的问题。

Deprecated system parameters with specified values:
  log_archive_start
End of deprecated system parameter listing


此时执行下面SQL语句,即可解决这个问题。

SQL> alter system reset log_archive_start scope=spfile sid='*';
 
System altered.