「Windows Server 2012 R2」でのサービス停止でオラクルDBインスタンス停止手順です。

オラクルは普通にインストールすると、OS起動時に自動でオラクルインスタンス起動も設定がされます。
しかし、停止時は自動でインスタンスは停止されません。
自分で設定しないとオラクルのインスタンス停止は行われず、強制インスタンス停止されている状態です。

「オラクルのインストール」は、過去ブログの「Windows Server 2012 R2 でオラクルクライアントのインストール手順」を参照して下さい。

では、強制インスタンス停止されていると何が起こっているかと言うと、

インスタンス起動時に毎回DBへ対してリカバリーを行っています。

上記をDBのログから確認することが可能です。

ログ場所:「XXXX」¥diag¥rdbms¥「YYYY」¥「YYYY」¥trace
「XXXX」:オラクルインストール場所
「YYYY」:オラクルのSID名
ファイル名:alert_「YYYY」.log

20180409_01

ログファイルから「Shutting down instance」、「Instance shutdown complete」で検索してみて下さい。
「Shutting down instance」:インスタンス停止開始
「Instance shutdown complete」:インスタンス停止完了

DBインストール日付付近には、もしかすると上記項目があるかもしれませんが
現在の日付のログには存在しないと思います。

インスタンス停止ログが存在しないと、「Beginning crash recovery of 1 threads」、「Completed crash recovery at」で検索してみて下さい。
「Beginning crash recovery of 1 threads」:リカバリー開始
「Completed crash recovery at」:リカバリー完了

20180409_02

上記項目が存在するとリカバリーが行われている事が分かります。

摩訶不思議なのですが、
Windowsサービス起動とインスタンス起動は連動しますが、
Windowsサービス停止とインスタンス停止は連動していません。

ためしにWindowsサービス停止を行ってログファイルの確認をして頂ければわかると思います。

Windowsサービス停止は下記の順で行って下さい。
「リスナーサービス」停止→「DBサービス」停止の順です。
①「OracleOraDb11g_home1TNSListener」停止
②「OracleServiceYYYY」停止
「YYYY」:オラクルのSID名

ここから設定ですが、Windowsサービス停止とインスタンス停止の連動を行います。

「Administration Assistant for Windows」ソフトを実行させます。
スタートの「Oracle – OraDb11g_home1」→「コンフィグレーションおよび移行ツール」配下に存在します。

20180409_03

ツリー画面から「データベース」までを開きます。

20180409_04

対象のDBを選択してコンテキストメニューを開きます。

20180409_05

「起動/停止オプション」を選択します。

20180409_06

20180409_07

「Oracleインスタンス」タブの「サービス停止時にインスタンス停止」にチェックを入れます。
「停止モード」は「即刻停止」を選択します。

20180409_08

「OK」ボタンで確定させます。
画面を閉じようとすると下記確認が出ますが、「はい」を選択します。

20180409_09
20180409_10

では、サービスを停止させて確認します。

Windowsサービス停止は下記の順で行って下さい。
「リスナーサービス」停止→「DBサービス」停止の順です。
①「OracleOraDb11g_home1TNSListener」停止
②「OracleServiceYYYY」停止
「YYYY」:オラクルのSID名

設定通り、ログファイルに「Shutting down instance」、「Instance shutdown complete」が出力されました。
「Shutting down instance」:インスタンス停止開始
「Instance shutdown complete」:インスタンス停止完了

20180409_11

次にサービスを起動させて確認します。

Windowsサービス起動は下記の順で行って下さい。
「DBサービス」起動→「リスナーサービス」起動の順です。
①「OracleServiceYYYY」起動
②「OracleOraDb11g_home1TNSListener」起動
「YYYY」:オラクルのSID名

設定通り、ログファイルに「Beginning crash recovery of 1 threads」、「Completed crash recovery at」が存在しません。
「Beginning crash recovery of 1 threads」:リカバリー開始
「Completed crash recovery at」:リカバリー完了

以上からサービス停止でのオラクルDBインスタンス停止設定が出来ました。