ORA-01081: cannot start already-running ORACLE - shut it down first
2016-10-18 02:05
459 查看
当检查oracle实例后台进程不存在这时启动启动数据库报错:
ORA-01081: "cannot start already-running ORACLE - shut it down first"
造成此种原因是
Orphaned shared memory segments and semaphores did not get cleared properly
from the last instance shutdown.
在oracle实例最后一次shutdown时,某一个孤立的共享内存段和信号没有被清理干净
解决方法
可以利用ipcs来找出共享内存段或者信号,利用ipcrm来手动清除
orphaned shared memory segments(孤立的共享内存段) 和semaphores(信号量)
[root@wl ~]# ipcs -a
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 688138 oracle 640 4096
0
0x00000000 720907 oracle 640 4096 0
------ Semaphore Arrays --------
key semid owner perms nsems
0x000000a7 0 root 600 1
0x00000000 688138 oracle 640 4096
0
0x00000000 720907 oracle 640 4096 0
[root@wl ~]# ipcs -m
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x00000000 688138 oracle 640 4096 0
0x00000000 720907 oracle 640 4096 0
[root@wl ~]# ipcrm - m 720907
ipcs: 检查分配的共享内存
ipcrm:手动释放共享内存段
取得ipc信息:
ipcs [-m|-q|-s]
-m 输出有关共享内存(shared memory)的信息
-q 输出有关信息队列(message queue)的信息
-s 输出有关“信号量”(semaphore)的信息
-a 使用所有打印选项. (针对 -b, -c, -o, -p, and -t的速记符)
Example:
ipcrm -m shmid 号 - for shared memory
ipcrm -s semid 号 - for semaphores
OR
Shutdown all the instances belonging to the user. Next, run "ipcs -b" to find the remaining IPC
facilities, owned by the same user, and remove them. However, if you're running multiple production
instances, this may not be acceptable.
在多实例的情况下
1. 运行
ipcs -a > /tmp/ipcs_before.out
2. 用 SQL*Plus 连接所有实例做一个简单的查询
select * from dual;
3. 再次运行
ipcs -a > /tmp/ipcs_after.out
4. 对比 "/tmp/ipcs_before.out" 与 "/tmp/ipcs_after.out" 文件
查找 LPID 没有改变的共享内存段
These are the orphaned shared memory segments you are looking for:
LPID 显示最后过程中附加或者分立共享内存段的进程 ID
因为,通过在每一个活着的实例中执行查询,你会涉及到属于各自实例的共享内存段,
但是未涉及的共享内存段将变成孤立的一个
5. After identifying the orphaned shared memory segments, you can find
the orphaned semaphores by locating the semaphores with the same
value of CTIME in "ipcs -a" output as the value of CTIME for the
orphaned shared memory segments: CTIME shows the time when the
associated entry was created or changed.
在识别孤立的共享内存段后,可以通过ipcs -a的输出确定具有相同CTIME值的信号找到孤立的共享内存段
作为相关孤立共享内存段的值
相关文章推荐
- ORA-01081:cannot start already-running ORACLE - shut it down first
- ORA-01081: "cannot start already-running ORACLE - shut it down first"
- ORA-01081: "cannot start already-running ORACLE - shut it down first"
- ORA-01081:cannot start already-running ORALCE - shut it down first(转贴)
- CRS-2800: Cannot start resource 'ora.DATADG.dg' as it is already in the INTERMEDIATE state on se
- ORA-01146: cannot start online backup - file 1 is already in backup ORA-01110: data file 1: 'C:\ORACLE\ORADATA\ORCL8\SYSTEM01.DBF'
- ORA-01081: cannot start already-…
- ORA-01541: system tablespace cannot be brought offline; shut down if necessary
- OUI-10022:The target area /oracle/oraInventory cannot be used because it is in an invalid state.
- Cannot upgrade/downgrade to Dynamic Web Module 3.0 facet. It is incompatibile with already installed
- Oracle TTS ORA-39322: Cannot use transportable tablespace with different timezone version 说明
- Oracle TTS ORA-39322: Cannot use transportable tablespace with different timezone version 说明
- Oracle TTS ORA-39322: Cannot use transportable tablespace with different timezone version 说明
- 使用QProcess要注意的问题(QProcess::start: Process is already running)
- 关于session_start() [function.session-start]: Cannot send session cookie - headers already sent 的解决办法
- Oracle TTS ORA-39322: Cannot use transportable tablespace with different timezone version 说明
- RAC root.sh Oracle CRS stack is already configured and will be running under init(1M) 的解决方法
- RAC root.sh Oracle CRS stack is already configured and will be running under init(1M) 的解决方法
- process.start (shut down pc)
- [转] Oracle initialization or shut down in progress解决方法