ORACLE连接到空进程的错误汇总及解决 ORA-01078

这个问题困扰了很久,貌似每次过一段时间就会产生这样的问题,通常是因为数据库的不正常关闭所造成的,我猜原因是我用的计算机是ORACLE学习和平常娱乐一体的,所以会产生问题。解决方式亲测有效,大体来说就是:先确定sid名称,找到pfile将其复制到/home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/目录下init***.ora  (***是你的sid名!!)   


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

[oracle@localhost ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Sat May 30 19:43:43 2018

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'

原理:在oracle9ioracle10g中,数据库默认将使用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,最后成功。

猜你喜欢

转载自blog.csdn.net/weixin_42045591/article/details/80511695