这个问题的根本 发现是lk<SID>文件造成的,该文件位于ORALCE_HOME下的dbs目录下,检查该文件:
[oracle@vincent dbs]$ fuser -u lk<SID>
lkVINCENT:            5466(oracle)  5531(oracle) 28419(oracle) 28421(oracle) 28423(oracle) 28425(oracle) 28427(oracle) 28429(oracle) 28431(oracle) 28433(oracle) 28435(oracle) 28437(oracle) 28439(oracle) 28460(oracle) 28560(oracle) 29479(oracle)
[root@qa-oracle dbs]# fuser -k
lk<SID>

SQL> startup mount
ORACLE instance started.

Total System Global Area  285212672 bytes
Fixed Size                  1218992 bytes
Variable Size              92276304 bytes
Database Buffers          188743680 bytes
Redo Buffers                2973696 bytes
Database mounted.

数据库成功OPEN.

当发生1102错误时,可以按照以下流程检查、排错:
1.如果是HA系统,检查其他节点是否已经启动实例;
2.检查Oracle进程是否存在,如果存在则杀掉进程;
3.检查信号量是否存在,如果存在,则清除信号量;
4.检查共享内存段是否存在,如果存在,则清除共享内存段;
5.检查锁内存文件lk<sid>和sgadef<sid>.dbf是否存在,如果存在,则删除