有台测试环境的数据库,因磁盘爆了,新加了一块硬盘,在启动的时候数据库崩了
完成启动mount ,,,,,,,
ORACLE实例开始。
,
总系统全球Area , 608174080字节
固定Size ,,,,,,,,,,,,,,,, 1220844字节
变量Size ,,,,,,,,,,, 176164628字节
数据库Buffers ,,,,, 427819008字节
重做Buffers ,,,,,,,,,,,, 2969600字节
<强> ora - 01102:不能挂载数据库中独占模式强>
,
<>强分析原因:强>
一、在HA系统中,已经有其他节点启动了实例,将双机共享的资源(如磁盘阵列上的裸设备)占用了;
,
二,<强>说明强> <强>甲骨文强> <强>被异常关闭时,有资源没有被释放>强,一般有以下几种可能,
1,甲骨文的<强>共享内存段或信号量强>没有被释放;
2,甲骨文的后台进程(如SMON, PMON, DBWn等)没有被关闭,
3,用于<强>锁内存的文件强> <强> lk
,
<强>解决思路:强>
当发生1102错误时,可以按照以下流程检查,排错:
,
<强>具体做法:强>
首先,虽然我们的系统是HA系统,但是备节点的实例始终处在关闭状态,这点通过在备节点上查数据库状态可以证实。
其次,是因系统掉电引起数据库宕机的,系统在接电后被重启,因此我们排除了第二种可能种的1、2点。最可疑的就是第3点了。
<强>查$ ORACLE_HOME/dbs 强> <强>目录:强>
$ cd $ ORACLE_HOME/dbs
$ ls sgadef *
sgadef *未找到
$ ls路*
/opt/oracle/产品/10.2.0/db_1/dbs/lkSIMPLY lkSIMPLY
果然,lk
$ rm路*
,
<强>再次启动>强时又遇到下面的错误,不过别担心,继续后面的操作就搞定
完成启动挂载
ORACLE实例开始。
Total System Global Area 608174080 bytes
Fixed Size 1220844 bytes
Variable Size 176164628 bytes
Database Buffers 427819008 bytes
Redo Buffers 2969600 bytes
ORA-00205: error in identifying control file, check alert log for more info : (
查看共享内存段
[root@simply bdump]# ipcs -map
------ Shared Memory Creator/Last-op --------
shmid owner cpid lpid
786444 root 6490 6438
819213 root 6549 6438
1409040 oracle 31502 16728
查看信号量
[root@simply bdump]# ipcs -s
key semid owner perms nsems
0x17ff6454 360448 oracle 640 154
清除oracle的信号量
[root@simply bdump]# ipcrm -s 360448
再次查询确认
[root@simply bdump]# ipcs -s
------ Semaphore Arrays --------
key semid owner perms nsems
再查询共享内存段也ok了!
[root@simply bdump]# ipcs -m
如果是Oracle进程没有关闭,
$kill -9
再次启动数据库,OK!