在Linux虚拟机中装好Oracle之后,就一直没有管这台虚机。最近因为项目需要,就想到这台机器了,但是Oracle怎么也启动不了,具体表现如下:
SQL> startup ORA-48108: invalid value given for the diagnostic_dest parameter ORA-48140: the specified ADR Base directory does not exist [/home/oracle/102/dbs/<ORACLE_BASE>] ORA-48187: specified directory does not exist Linux Error: 2: No such file or directory Additional information: 1 SQL> |
结合网上其他技术大拿的经验,删除diagnostic_dest这行记录。
然后再启动数据库
SQL> startup nomount
SQL> alert database mount
此时出错,ORA-00205: error in identifying control file, check alert log for more info
还是查看$ORACLE_HOME/dbs/中的内容,发现control_files = (ora_control1, ora_control2)有问题,修改为control_files = ("/u01/oradata/orcl/", "/u01/flash_recovery_area/orcl/")
注:上面的control_files以机器上实际路径为准。
然后再启动Oracle,即可以了。
第二,在上面的过程中,还可能会碰到如ORA-09925: Unable to create audit trail file这样的问题,均于<ORACLE_BASE>有关,修改之即可。
另外,在解决上述问题过程中,还出现了像如下一样的错误:
SQL> conn sys
SQL> show parameter
SP2-0640: Not connected
SQL> conn / as sysdba
ERROR:
ORA-09925: Message 9925 not found; product=RDBMS; facility=ORA
Linux-x86_64 Error: 30: Read-only file system
Additional information: 9925
ORA-01075: you are currently logged on
SQL>
如果出现上面的问题,无法手动停止Oracle,于是找到pmon进程,然后再kill之,即可关停Oracle.
PS:操作时没有留下太多的记录,只好凭记意及网上其他人碰到的同样问题来写本日志了。