構築中の検証環境で、DBの停止に失敗するという事象が発生しました。
環境は以下の通りです。
Windows上のOracleRestart環境なので、停止するには以下の3つの方法があります。
- sqlplusで接続し、shutdown immediateで停止する
- srvctl stop databaseコマンドで停止する
- Windowsのサービスから停止する
まず1.と2.の方法で停止を試みましたが、いずれもハングしたような状態になり、コマンドが終了しません。
アラートログを確認すると、下記のようなメッセージが出力されていました。
SHUTDOWN: Active sessions prevent database close operation
Shutdown did not complete in 60 minutes
<中略>
Instance shutdown cancelled
MOS(My Oracle Support)で検索すると、以下のドキュメントが見つかりました。
バグ 33681991 : SHUTDOWN IMMEDIATE HANGS DUE TO KILL FAILED FOR QNNN PROCESS
ドキュメントには回避策もパッチ情報も何も載っていなかったのでサポートに問い合わせたところ、以下の2つが必要との回答を得ました。
- 19.16以降、できれば最新のBPを適用する
- 「ALTER SYSTEM SET EVENT='10027 trace name context forever, level 8' SCOPE=SPFILE;」を実行する
19.14をインストールしたのはアプリ要件だったので、19.16以降のBP適用以外に解決策がないか、いくつか試してみました。
何度かテストした結果では、3.の「Windowsのサービスから停止する」ではハングせず、またsqlplusやsrvctlでの停止でもabortモードであればハングしませんでした。
とは言え、abortモードで停止するとクラッシュ・リカバリが必要になるので、これはあくまで最終手段です。
また、サポートに問い合わせた結果では「Windowsのサービスから停止する」は有効な回避策として認定されていないそうです。
業務側との調整の結果、19.21のBPを適用する事で解決となりました。
[rakuten:vistajapan:10000507:detail]
以下、雑談です。
最近、多肉にはまりました。画像のカクレイは届いた時には見本の三分の一ていどしか紅葉していませんでしたが、2月末ごろから暖かくなったので日光浴させたところ、紅葉部分が倍くらいに広がりました。
赤と緑のコントラストが綺麗です。