« shutdown immeidateしない、ほかの理由に遭遇! | トップページ | shutdown immeidateしない、ほかの理由に遭遇! #3 »

2011年2月 9日 (水) / Author : Hiroshi Sekiguchi.

shutdown immeidateしない、ほかの理由に遭遇! #2

さて、昨日のつづきです。

Oracle11g R2 11.2.0.1.0 for Linux x86 をVirtualBox4.0 for MacOS XのCentOS5.5にインストールしてあります。

昨日は、SQL*Plusの!(host command)でshellへ入っている状態、かつ、別端末のSQL*plusからshutdown immeidate文を発行してしまうとSQL*Plusのプロセスの子プロセスに<defunct>なプロセスが登場して、shutdown immeidateを待機させてしまうところまでを再現してみました。

今日は、shutdown immediate文を発行するsysユーザ以外のsysユーザがSQL*Plusから接続しているだけでもshutdown immediateを待機させるんじゃないか?疑惑の確認と、shutdown immeidateの待機させるだけじゃなく、shutdown timeoutも抑止しちゃってるよね疑惑などを検鏡検証してみようと思います。

短期遠征先から帰宅している予定だったのによそーーーーー外の1日延泊となってしまった次いでに、VirtuslBox4.0のCentOS5.5のOracle11g R2でたっぷり検証してみましょうw

では、最初に、shutdown immeidateを実行するsysユーザ以外のsysユーザがSQL*Plusから接続しているだけでも実行に他の端末のSQL*Plusでsysユーザが接続しているだけでもshutdown immeidateを待機させるんじゃないか?疑惑するんじゃね?疑惑の検証から。

まず、SQL*Plusでsysユーザに接続している端末を2つ用意して…

一つめのSQL*Plusで〜す。

[oracle@leaffish ˜]$ 
[oracle@leaffish ˜]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 水 2月 9 00:09:00 2011

Copyright (c) 1982, 2009, Oracle. All rights reserved.

00:09:00 > conn / as sysdba
接続されました。
00:09:11 SYS>
00:09:12 SYS>
00:09:12 SYS>

2つめのSQL*Plusで〜す。

[oracle@leaffish ˜]$ 
[oracle@leaffish ˜]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 水 2月 9 00:08:39 2011

Copyright (c) 1982, 2009, Oracle. All rights reserved.

00:08:39 > conn / as sysdba
接続されました。
00:08:44 SYS>
00:08:45 SYS>
00:08:45 SYS>

この状態で1つめのSQL*Plusのsysユーザでshutdown immeidate文を実行します…

00:22:43 SYS> 
00:22:43 SYS> shutdown immediate
データベースがクローズされました。
データベースがディスマウントされました。
ORACLEインスタンスがシャットダウンされました。
00:22:57 SYS>

待機させられることなく、shutdown immeidate文が実行されました。Oracle11g R2 11.2.0.1.0 for Linuxでは”疑惑”だけだったようですね。一安心w。他のバージョンだとどうなんだろ=>TODO.
(昨日の記事では、systemユーザがSQL*Plusで接続している場合、他の端末のSQL*Plusのsysユーザがshutdown immeidateを実行した場合の検証もしていましたよね。これでshutdown immeidate文を実行するセッション以外にsysユーザやsystemユーザのセッションが存在していてもshutdown immeidateが待機させられることは、すくなくともOracle11g R2 11.2.0.1.0 for Linuxでは発生しないことは確かなようです。)


つづいて、SQL*Plusのhost command(!)からshellへ入ったままのセッションが存在している状態でshutdown immeidate文を別セッションから実行してしまうとshutdown immediateを待機させるだけでなく、shutdown timeoutも妨害してしまい1時間を経過してもハングしたままじゃね疑惑を検証してみたいと思います。

同じように2つのSQL*Plusを起動し、ともにsysユーザで接続して、一方のセッションではhost command (!)でshellへ入ったままにしておきます。

1つめのSQL*Plusです…

[oracle@leaffish ˜]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 水 2月 9 00:36:01 2011

Copyright (c) 1982, 2009, Oracle. All rights reserved.

00:36:01 > conn / as sysdba
接続されました。
00:36:04 SYS>
00:36:04 SYS>

2つめのSQL*Plusです〜、こちらはhost commandでshellへ入っておきます。

[oracle@leaffish ˜]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on 水 2月 9 00:35:51 2011

Copyright (c) 1982, 2009, Oracle. All rights reserved.

00:35:51 > conn / as sysdba
接続されました。
00:35:54 SYS>
00:35:56 SYS> !
[oracle@leaffish ˜]$
[oracle@leaffish ˜]$

この状態で1つめのSQL*Plusのセッションからshutdown immeidate文を実行してみます…

00:39:34 SYS> 
00:39:34 SYS> shutdown immediate

見事にshutdown immeidateは待機させられます。すばらし〜。
このまま放置してみます。Oracle10g以降の機能であるshutdown timeoutが働いて1時間程度でshutdownはキャンセルされるはずです。しばしの間、ご歓談くださいませ。:)

・・・・・・・・・中略・・・・・・・・・・・

ながらくお待たせいたしました〜、shutdown immeidateを実行してから2時間以上経過しましたが、shutdown timeoutでshutdownがキャンセルされるどころか、止まる気配すらありません…

以下、アラートログの内容です。

Wed Feb 09 00:39:41 2011
Shutting down instance (immediate)
Stopping background process SMCO
Shutting down instance: further logons disabled
Stopping background process QMNC
Stopping background process MMNL
Stopping background process MMON
License high water mark = 2
All dispatchers and shared servers shutdown
Wed Feb 09 00:44:51 2011
SHUTDOWN: Active processes prevent shutdown operation
Wed Feb 09 00:50:05 2011
SHUTDOWN: Active processes prevent shutdown operation
Wed Feb 09 00:55:20 2011
SHUTDOWN: Active processes prevent shutdown operation
Wed Feb 09 01:00:36 2011
SHUTDOWN: Active processes prevent shutdown operation
Wed Feb 09 01:05:48 2011
SHUTDOWN: Active processes prevent shutdown operation
Wed Feb 09 01:10:57 2011
SHUTDOWN: Active processes prevent shutdown operation
Wed Feb 09 01:16:12 2011
SHUTDOWN: Active processes prevent shutdown operation

・・・中略・・・

Wed Feb 09 02:28:17 2011
SHUTDOWN: Active processes prevent shutdown operation
Wed Feb 09 02:33:21 2011
SHUTDOWN: Active processes prevent shutdown operation
Wed Feb 09 02:38:25 2011
SHUTDOWN: Active processes prevent shutdown operation
Wed Feb 09 02:43:28 2011
SHUTDOWN: Active processes prevent shutdown operation
Wed Feb 09 02:48:32 2011
SHUTDOWN: Active processes prevent shutdown operation
Wed Feb 09 02:53:38 2011
SHUTDOWN: Active processes prevent shutdown operation


ということで、「shutdown immeidateを待機させるだけじゃなく、shutdown timeoutも抑止しちゃってるよね!疑惑」は、疑惑じゃなくて真実。


次回へつづく。



shutdown immeidateしない、ほかの理由に遭遇!
shutdown immeidateしない、ほかの理由に遭遇! #2
shutdown immeidateしない、ほかの理由に遭遇! #3
shutdown immeidateしない、ほかの理由に遭遇! おまけ

| |

トラックバック


この記事へのトラックバック一覧です: shutdown immeidateしない、ほかの理由に遭遇! #2:

コメント

コメントを書く