rac环境修改spfile后遭遇ora-29250小例
环境:
操作系统:CENTOS6.4 64BIT
数据库:RAC ORACLE 11.2.0.3 64BIT
启库后出现错误,之前修改过参数:filesystemio_options参数,但是重启库后,报如下错误:
SQL> startup
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORACLE instance started.
Total System Global Area 730714112 bytes
Fixed Size 2216944 bytes
Variable Size 557845520 bytes
Database Buffers 167772160 bytes
Redo Buffers 2879488 bytes
Database mounted.
Database opened.
官方文档:
ORA-32004: obsolete or deprecated parameter(s) specified forstring instance
Cause: Obsolete or deprecated parameters for this instance type 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.
跟踪告警日志,锁定如下信息:
由于某参数设置不正确将引起以上问题。所以计划修改参数文件中参数设置。
开始如下步骤:
先在线根据spfile文件生成一个pfile文件。
SQL> create pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initxcky_001.ora' from spfile;
[oracle@node1 dbs]$ vi initxcky_001.ora
然后修改参数文件。
把filesystemio_options参数设置删除、把告警日志中提示的log_archive_start删除。
然后保存退出。
利用修改后的pfile文件启库。
SQL> startup pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initxcky_001.ora'
ORACLE instance started.
Total System Global Area 730714112 bytes
Fixed Size 2216944 bytes
Variable Size 557845520 bytes
Database Buffers 167772160 bytes
Redo Buffers 2879488 bytes
Database mounted.
Database opened.
利用pfile文件生成一个spfile文件。
SQL> create spfile='+DG1/xcky/spfilexcky.ora' from pfile;
File created.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORA-01506: missing or illegal database name
启库,报错了!
查看官方文档:
ORA-01506: missing or illegal database name
Cause: No db_name INIT.ORA aprameter was specified.
Action: The database name must be given in the db_name INIT.ORA parameter.
产生这个错误,说明spfile文件中没有指定db_name。spfile是由pfile生成的,但是查看pfile文件中确实已经设置了。回看步骤时发现上面有一个隐蔽的错误。那就是生成的spfile文件的方式。以上步骤中没有指定pfile位置,这时oracle找的pfile文件并不是启动时使用的pfile文件,而是$ORACLE_HOME/dbs下的默认的pfile文件,里面的内容是这样的:
[oracle@node1 dbs]$ vi initxcky1.ora
SPFILE='+DG1/xcky/parnew/spfilexcky.ora'
所以通过这个pfile文件创建出的spfile文件当然是缺少参数的。
所以重新创建spfile文件:
SQL> startup pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initxcky_001.ora'
ORACLE instance started.
Total System Global Area 730714112 bytes
Fixed Size 2216944 bytes
Variable Size 557845520 bytes
Database Buffers 167772160 bytes
Redo Buffers 2879488 bytes
Database mounted.
Database opened.
SQL> create spfile='+DG1/XCKY/parnew/spfilexcky.ora' from pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initxcky_001.ora.bak.bak';
下面我们关库、启库,看一下状态,如下:
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 730714112 bytes
Fixed Size 2216944 bytes
Variable Size 557845520 bytes
Database Buffers 167772160 bytes
Redo Buffers 2879488 bytes
Database mounted.
Database opened.
数据库已经成功启动了。