RMAN 세션이 열려있을 때 shutdown immediate hang
테스트환경에서 우연찮게 발견한 현상이다.
OS: centos 5.6
oracle ver: 10.2.0.5
창을 두개 뜨우고 하나는 rman target / 로 접속했다.
다른 하나는 sqlplus 에서 shutdown immediate 를 실행했다.
아무리 시간이 지나도 shutdown이 되지 않는다.
얼럿로그에 다음과 같은 내용이 있다.
Shutting down instance (immediate)
Fri Mar 15 16:02:59 KST 2013
Shutting down instance: further logons disabled
Fri Mar 15 16:02:59 KST 2013
Stopping background process QMNC
Fri Mar 15 16:02:59 KST 2013
Stopping background process CJQ0
Fri Mar 15 16:03:01 KST 2013
Stopping background process MMNL
Fri Mar 15 16:03:02 KST 2013
Stopping background process MMON
License high water mark = 4
Fri Mar 15 16:03:03 KST 2013
Process OS id : 28767 alive after kill
Errors in file /oracle/admin/testdb/udump/testdb_ora_28754.trc
Fri Mar 15 16:03:06 KST 2013
Waiting for Job queue slaves to complete
Fri Mar 15 16:03:06 KST 2013
Job queue slave processes stopped
All dispatchers and shared servers shutdown
28767 OS process ID로 검색해보았다.
[oracle@centos5 testdb]$ ps -ef | grep 28767
oracle 28844 27374 0 16:04 pts/3 00:00:00 grep 28767
안나온다. rman target / 로 접속한걸 확인해봤다.
[oracle@centos5 testdb]$ ps -ef | grep rman
oracle 28789 27154 0 16:02 pts/2 00:00:00 rman target /
oracle 28861 27374 0 16:05 pts/3 00:00:00 grep rman
나온다. 하지만 PID가 틀리다.
트레이스파일 확인해보니
*** 2013-03-15 16:08:54.984
Process diagnostic dump for oracle@centos5.6x64 (TNS V1-V3), OS id=28796,
pid: 23, proc_ser: 2, sid: 144, sess_ser: 14
-------------------------------------------------------------------------------
loadavg : 0.98 0.76 0.40
Memory (Avail / Total) = 89.61M / 1504.47M
Swap (Avail / Total) = 2306.11M / 2306.20M
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
0 Z oracle 28796 28789 0 78 0 - 0 exit 16:02 ? 00:00:00 [oracle] <defunct>
계속 이 프로세스를 죽이려고 시도하고 있다.
해결방법: 결국 아래 두개 모두 같은 결과긴 하다.
1. rman 세션을 exit로 정상 종료한다.
2. ppid인 28789를 죽인다.