Oracle Databaseのサービス設定

Oracle Databaseによる開発時及び納品時に重要なポイントととなるサービスの設定について記述します。
なお、Oracle Databaseの技術書などには、サービス設定を起動する方法としてコントロールパネルから選ぶなどの遠回りな方法が散見されますが、Windowsのバージョンに依存しない方法として、
Windows+R → services.msc
を利用するとサービス設定の起動方法をいちいち覚えなくて済むし、キーボード操作だけで起動できるので時間も手間も省けます。
00.png
上記方法はWindowsXP/Vista/7/8/server2003/server2008/server2012で共通です。

さて、開発環境及び納品時に起動するべきサービスは
OracleXXXXXTNSListener
Oracle ServiceXXXXX
の2つです。
これはOracle 8i/9i/10g/11g/12cで共通です。
納品時はサービス自動起動にしがちですが、エンドユーザの状況に応じて手動起動にする場合もあります。この辺りはフィールドSEが導入する前にサポートSEと相談したほうがいいかもしれません

01_a.png

さて、サービス設定でもう一つ重要な項目があります。
OracleDBConsoleXXXXです。
これはOEM(Oracle Enterprise Manager)の起動に必要です。しかしOEMはメモリの使用量が大きく、それでいてSQL*PLUSおよびそれに準ずるツールで実現可能な項目も多く、わざわざユーザや表領域、さらにはテーブルの作成に使うほどではありません。
Oracle 10g以降のORACLE MASTER関連書籍を読むと、テーブルの操作に対してもわざわざOracle Enterprise Managerを使うような指導がなされていますが、マシンに負荷がかかるし、かえって時間がかかってしまうのでメモリのチューニングなどOEMが必要な場面に限って使う方がいいかと思われます。

参考までにメモリ使用量の遷移です。

↓Oracle関連サービス未起動
02.png

↓リスナ起動
03.png

↓サービス起動
04.png

↓Console起動
05.png

また、Oracle関連サービスを全部停止した場合についてです。

↓Oracle関連サービス全停止
06.png

Oracle関連サービス未起動時の263MBにはならず、ガーベジコレクションが完全ではないことが分かります。
システム不具合発生時のサポート時の対応の例として、「Oracle Serverを再起動する」というものがあります。一般的にはOracle関連サービスを全部再起動することを指し、実際にこの方法で現象解決に至る場合もありますが、この方法を何度も行うと、上記の理由によりOSを再起動しないと現象が解決しない場合もあります。
ここで問題なのがエンドユーザ環境でOS再起動ができない場合です。実際にあったケースでは、OS再起動をせずガーベジコレクションをする方法を試しましたがリモートでは解決に至らず、結局担当者がエンドユーザ先に行って再起動の作業をしたことがありました。