关于oracle spfile配置文件问题

时间:2022-07-01 11:50:04

$ORACLE_SID决定spfile dbs

默认

在启动Oracle数据库时报错,如下:

[oracle@localhost ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Sat Feb 16 19:43:43 2013

Copyright (c) 1982, 2009, Oracle. All rights reserved.

Connected to an idle instance.

SQL> startup
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/initorcl.ora'

原理:在oracle9i和oracle10g中,数据库默认将使用spfile启动数据库,如果spfile不存在,则就会出现上述错误。

第一步:验证启动实例是否正确

在我们数据启动的时候是启动icpdb实例,发现文件却为initorcl.ora(本应该为initicpdb.ora文件)说明实例未导入进来,则可输入:echo $ORACLE_SID真的是orcl不是test;

则可发现问题症结所在了。所以可以再次export ORACLE_SID=test,注意不是“export $ORACLE_SID=test”很多时候会粗心犯这种低级错误。最后数据库启动成功。

若上面问题是打不开文件inittest.ora的话,则表示此文件不存在,则可通过第二步来解决问题:

第二步:将$ORACLE_BASE/admin/$ORACLE_SID/pfile目录下的init.ora.0312013174228形式的文件copy到/home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/目录下inittest.ora即可。(注:inittest.ora中的icpdb为你的实例名ORACLE_SID,这里我的SID为:test)

[oracle@localhost pfile]$ cp
/home/oracle/app/admin/test/pfile/init.ora.0312013174228
/home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/inittest.ora

然后再次 sqlplus / as sysdba 进入,启动数据库startup,最后成功