oracle.01081 cannot,ORA-01081: cannot start already-running ORACLE - shut it down first
Applies?to:
Oracle?Server?-?Enterprise?Edition?-?Version:?8.1.7.4?to?11.2.0.2.0?-?Release:?8.1.7?to?11.2
Generic?UNIX
當(dāng)檢查oracle實(shí)例后臺(tái)進(jìn)程不存在這時(shí)啟動(dòng)啟動(dòng)數(shù)據(jù)庫(kù)報(bào)錯(cuò):
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實(shí)例最后一次shutdown時(shí),某一個(gè)孤立的共享內(nèi)存段和信號(hào)沒(méi)有被清理干凈
解決方法
可以利用ipcs來(lái)找出共享內(nèi)存段或者信號(hào),利用ipcrm來(lái)手動(dòng)清除
orphaned?shared?memory?segments(孤立的共享內(nèi)存段)?和semaphores(信號(hào)量)
[root@rac01?~]#?ipcs?-a
------?Shared?Memory?Segments?--------
key????????shmid??????owner??????perms??????bytes??????nattch?????status
0x4e44b264?557069?????oracle????640????????287309824??25
0xd06e774c?524302?????oracle????640????????132120576??16
------?Semaphore?Arrays?--------
key????????semid??????owner??????perms??????nsems
0x000000a7?0??????????root??????600????????1
0x2e7fd0cc?131073?????oracle????640????????44
0x334b5294?262146?????oracle????640????????154
[root@rac01?~]#?ipcs?-m
------?Shared?Memory?Segments?--------
key????????shmid??????owner??????perms??????bytes??????nattch?????status
0x4e44b264?557069?????oracle????640????????287309824??25
0xd06e774c?524302?????oracle????640????????132120576??16
ipcs:?檢查分配的共享內(nèi)存
ipcrm:手動(dòng)釋放共享內(nèi)存段
取得ipc信息:
ipcs?[-m|-q|-s]
-m???????輸出有關(guān)共享內(nèi)存(shared?memory)的信息
-q???????輸出有關(guān)信息隊(duì)列(message?queue)的信息
-s???????輸出有關(guān)“信號(hào)量”(semaphore)的信息
-a???????使用所有打印選項(xiàng).?(針對(duì)?-b,?-c,?-o,?-p,?and?-t的速記符)
Example:
ipcrm?-m????shmid?號(hào)???-?for?shared?memory
ipcrm?-s????semid??號(hào)??????-?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.
在多實(shí)例的情況下
1.?運(yùn)行
ipcs?-a?>?/tmp/ipcs_before.out
2.?用?SQL*Plus?連接所有實(shí)例做一個(gè)簡(jiǎn)單的查詢
select?*?from?dual;
3.?再次運(yùn)行
ipcs?-a?>?/tmp/ipcs_after.out
4.?對(duì)比?"/tmp/ipcs_before.out"?與?"/tmp/ipcs_after.out"??文件
查找?LPID?沒(méi)有改變的共享內(nèi)存段
These?are?the?orphaned?shared?memory?segments?you?are?looking?for:
LPID?顯示最后過(guò)程中附加或者分立共享內(nèi)存段的進(jìn)程?ID
因?yàn)?#xff0c;通過(guò)在每一個(gè)活著的實(shí)例中執(zhí)行查詢,你會(huì)涉及到屬于各自實(shí)例的共享內(nèi)存段,
但是未涉及的共享內(nèi)存段將變成孤立的一個(gè)
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.
在識(shí)別孤立的共享內(nèi)存段后,可以通過(guò)ipcs?-a的輸出確定具有相同CTIME值的信號(hào)找到孤立的共享內(nèi)存段
作為相關(guān)孤立共享內(nèi)存段的值
NOTE:??This?step?may?not?be?necessary?on?the?platforms?implementing
post-wait?kernel?extension?(AT&T?Unix,?AIX),?when?semaphores
are?not?used?by?Oracle?at?all.
總結(jié)
以上是生活随笔為你收集整理的oracle.01081 cannot,ORA-01081: cannot start already-running ORACLE - shut it down first的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C语言求一个数组中第k大的数,leetc
- 下一篇: idea打包meven镜像_Inteli