在虚拟机中安装了oracle10g,由于虚拟机的空间有限,看到磁盘空间快没了,就手贱把oracle目录中的空文件夹(E:\oracle\product\10.2.0\flash_recovery_area)删除了,导致oracle用不了了,报如下错误,让我蛋疼了很久,现在问题解决,在此记录一下,记录曾经2B的程序猿生活。
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
step1:
网上找了很久找不到原因,网上查该问题错误信息,大部分人的回答都是 conn /as sysdba; startup;
这两步操作,但是我依旧没有解决问题(可能起因不一样,所以同样的操作依旧解决不了问题)。
step2:网上查找第二步,在E:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\listener.ora文件中添加了如下红色部分
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
(SID_NAME = orcl)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = aaron)(PORT = 1521))
)
)
step3:
C:\WINDOWS>sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 12月 4 16:42:59 2013
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn /as sysdba;
已连接到空闲例程。
SQL> startup
ORA-01261: Parameter db_recovery_file_dest destination string cannot be transla
ed
ORA-01263: Name given for file destination directory is invalid
OSD-04018: ??????????????????????????
O/S-Error: (OS 2) ?????????????????????
step4:
继续google,OK问题就在这里了,SPFILEORCL.ORA文件中某些定义对应的文件夹不存在。
Ok,打开文件E:\oracle\product\10.2.0\db_1\dbs\SPFILEORCL.ORA一看,果然找到了元凶。
flash_recovery_area文件夹不存在,手动建立文件夹之后,重启服务。
OK,问题解决。。。。。。。。。。。