解决方法:
将$ORACLE_BASE/admin/数据库名称/pfile目录下的init.ora.012009233838形
式的文件copy到$ORACLE_HOME/dbs目录下initoracle.ora即可。(注:
initoracle.ora中的oracle为你的实例名 ORACLE_SID)
find / -nameinit.ora.012009233838
find / -nameinit.ora.*
cp/URP/oracle/admin/oracle/pfile/init.ora.582016101258 /URP/oracle/
product/10.2.01/db_1/dbs/inittest.ora
SQL> startup
[root@orclsrv dbs]#ls
hc_oracle.dat hc_test.dat initdw.ora init.ora inittest.ora lkORACLE orapworacle spfileoracle.ora
[root@orclsrv dbs]#mv lkORACLE /root/
[root@orclsrv dbs]#ls
hc_oracle.dat hc_test.dat initdw.ora init.ora inittest.ora orapworacle spfileoracle.ora
这个lk<sid>
和sgadef<sid>.dbf
文件是用来锁住共享内存的。这意味着即使没有内存分配,Oracle仍然认为内存被锁住了。通过移除sgadef
和k
l文件,就移除了通知Oracle共享内存被使用的信息。这样数据库就可以启动了。
[root@orclsrv dbs]#mv /root/lkORACLE /root/lkORACLE.bak
[root@orclsrv dbs]#ls
hc_oracle.dat hc_test.dat initdw.ora init.ora inittest.ora orapworacle spfileoracle.ora