(ORA-01102)–异常关闭导致Oracle数据库启动失败
现象描述
启动Oracle数据库(11.1.0.7.0)时,系统提示如下错误信息:
ORACLE instance started. .... .... .... ORA-00205: cannot mount database in EXCLUSIVE mode
处理步骤
- 以oracle用户登录数据库所在机器。
- 检查“$ORACLE_HOME/dbs”目录下是否存在“lk<ORACLE_SID>”文件和“sgadef<ORACLE_SID>.bdf”文件。
说明: <ORACLE_SID>为Oralce数据库的环境变量“$ORACLE_SID”的值。
% cd $ORACLE_HOME/dbs
% ls lk<ORACLE_SID> sgadef<ORACLE_SID>.bdf
如果存在“lk<ORACLE_SID>”文件和“sgadef<ORACLE_SID>.bdf”文件,请执行以下命令删除:
# rm lk<ORACLE_SID> sgadef<ORACLE_SID>.bdf
- 检查数据库共享内存及信号量是否存在。
% ipcs
------ Shared Memory Segments -------- key shmid owner perms bytes nattch status 0x00000000 131073 oracle 660 4096 0 0x00000000 163842 oracle 660 4096 0 0x60c1edf0 196611 oracle 660 4096 0 ------ Semaphore Arrays -------- key semid owner perms nsems 0x71070831 0 root 666 1 0x3fdf6c2c 131073 oracle 660 804 ------ Message Queues -------- key msqid owner perms used-bytes messages
如果命令结果显示信息中有“oracle”字样,则表明存在数据库共享内存及信号量,需要删除。
- 删除共享内存段
% ipcrm -m <shmid>
- 删除信号量
% ipcrm -s <semid>
- 删除共享内存段
- 检查数据库进程是否存在。
% ps -ef | grep ora_ | grep $ORACLE_SID
oracle 20695 1 0 15:02 ? 00:00:00 ora_pmon_ora11g
如果命令结果有显示信息输出,表明存在数据库进程,请执行以下命令停止数据库进程:
% kill -9 <pid>
说明: <pid>为ps -ef | grep ora_ | grep $ORACLE_SID命令结果显示信息的第二列。
- 尝试重新启动数据库。
% sqlplus / as sysdba
SQL> startup
SQL> exit
如果数据库启动仍失败,请联系华为工程师。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




