$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,最后成功