Oracle启动过程中碰到的一些问题

时间:2025-04-22 08:33:53

在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>
然后查看$ORACLE_HOME/dbs下的init文件(我的SID名为oracleSid),即,发现该文件中的<ORACLE_BASE>没有更改过来,当然启动不了了,修改本文件里的所有<ORACLE_BASE>为绝对路径。

结合网上其他技术大拿的经验,删除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:操作时没有留下太多的记录,只好凭记意及网上其他人碰到的同样问题来写本日志了。