11gの新しいバックグラウンド・プロセス
Oracle Database 11gで新しく導入された主要なバックグラウンド・プロセスは以下の6個です。
DBRMプロセス(データベース・リソース・マネージャ・プロセス)
DBRMプロセスはリソース・プランを設定してデータベース・リソース・マネージャに関連するタスクを実行します。リソース・プランが有効でない場合、このプロセスはアイドル状態になります。
DIA0プロセス(診断プロセス)
DIA0プロセスはハングおよびデッドロックを検出して解決します。
DIAGプロセス(診断取得プロセス)
DIAGプロセスは他のプロセスから要求された診断情報のダンプを実行します。また、プロセスまたはインスタンスの終了によって引き起こされるダンプも実行します。
GEN0プロセス(一般タスク実行プロセス)
GEN0プロセスはSQLとDMLを含む要求されたタスクを実行します。
PSP0プロセス(プロセス・スポーナ・プロセス)
PSP0プロセスは初期のインスタンス起動後にOracleバックグラウンド・プロセスを起動します。
VKTMプロセス(時間の仮想キーパー・プロセス)
VKTMプロセスはOracleインスタンスに対して時間パブリッシャとして機能します。VKRMタイマー・サービスは時間追跡を集中化して、他のクライアントからの複数のタイマー・コールをオフロードします。
上記以外にも、RAC(Real Application Cluster)やASM(Automatic Storage Management)といった機能やその他の設定によって、以下のようなバックグラウンド・プロセスが導入されています。
プロセス名 | 説明 |
ACMSプロセス
(メモリー・サービスへのアトミック制御ファイル・プロセス)
|
Oracle RAC環境内のすべてのインスタンス上の対応するSGAおよび制御ファイル・リソースへの更新の一貫性が保持されるように調整します。 |
EMNCプロセス
(EMONコーディネータ・プロセス)
|
データベースでのイベントの管理および通知アクティビティを調整します。 |
FBDAプロセス
(フラッシュバック・データベース・アーカイバ・プロセス)
|
フラッシュバック・データ・アーカイブに追跡対象の表の履歴行をアーカイブし、アーカイブの領域、編成、保存を管理します。 |
GMONプロセス
(ASMディスク・グループ・モニター・プロセス)
|
ASMインスタンスにマウントされているすべてのディスク・グループを監視し、ディスクのメンバーシップとステータスに関する情報の一貫性を保持します。 |
GTXnプロセス
(グローバル・トランザクション・プロセス)
|
クラスタ全体のXAグローバル・トランザクションに関するグローバル情報の保持をサポートします。 |
MARKプロセス
(再同期化用AUマーキング・コーディネータ・プロセス)
|
オフライン・ディスクに対して欠落している書込みを追跡し、ASM割当て単位を失効としてマーキングします。 |
PINGプロセス
(インターコネクト待機時間測定プロセス)
|
クラスタ・インスタンス・ペアごとに通信に伴う待機時間を評価します。 |
RMSnプロセス
(Oracle RAC管理プロセス)
|
Oracle RACの様々な管理タスクを実行します。 |
RSMNプロセス
(リモート・スレーブ・モニター・プロセス)
|
RAC環境におけるスレーブ・プロセスの作成を管理し、スレーブ・プロセスのコーディネータおよびピアとの通信を管理します。 |
SMCO/Wnnnプロセス
(領域管理コーディネータ・プロセス)
|
様々な領域管理タスクの実行を調整します。 |
VKRMプロセス
(リソース・マネージャ・プロセス用バーチャル・スケジューラ)
|
管理対象のすべてのOracleプロセスのCPUスケジュールを管理します。 |
第9回目となる今回は、Oracle Database 11gのバックグラウンド・プロセスについて解説しました。
次回はいよいよ最終回です。アップグレード関連を中心とした情報を提供しているサイトを紹介する予定です。
それでは、最後に津島博士のワンポイントアドバイスです。津島博士、よろしくお願いいたします。
みなさんこんにちは。日本オラクルの津島と申します。
Oracleインスタンス内には、さまざまな役割を持ったバックグラウンド・プロセスが起動しており、効率的なデータベース管理を実現しています。
各プロセスがどのような役割を果たして実行されているかを理解することは、性能向上等のチューニングを考える際にも役に立ちます。
例えば、初期化パラメータに「FILESYSTEMIO_OPTIONS」がありますが、このパラメータは、DBWn等のプロセスがOSのファイルシステムに対して、非同期I/OやDirect I/Oを有効にするかどうかを設定するパラメータであり、システムの用途に合わせてパフォーマンス・チューニングが可能となっています。DB管理者が各プロセスの役割、アーキテクチャを理解した上でシステムを設計/設定することが重要ということですね。
また、記事で紹介されているとおり、バージョンを追うごとにバックグラウンド・プロセスの数も増えてきています。新しいプロセスの役割について確認するとともに、初期化パラメータ「processes」で指定する値(専用サーバプロセス+バックグラウンド・プロセス)についても、システムで用いるバックグランド・プロセスの数を考慮して設定する必要があるということも意識しておきましょう。
OTNセミナーオンデマンドにて、バックグラウンド・プロセスを含む内部構造をおさらいできます。
「今さら聞けない!? Oracle入門 アーキテクチャ編」(wmv)
「今さら聞けない!? Oracle入門 アーキテクチャ編」(mp4)
また、チューニングに関して、Oracle DBA & Developer Days にて私がセッションを持つ予定です。そもそもパフォーマンスの問題はなぜ起こるのか?アーキテクチャをふまえて、パフォーマンス・チューニングについて分かりやすく解説します。是非ご参加ください。
「津島博士のパフォーマンス講座「パフォーマンス問題はなぜ起きるのか」
それでは、次回もお楽しみに。
◆◆◆
【津島博士プロフィール】
長年に渡りデータベースの構築やパフォーマンスチューニングなどに従事し、最近では若手エンジニアの育成および大規模データベース案件などの支援に従事。
「津島博士のパフォーマンス講座」を連載中です。
【関連情報】「好奇心が、エンジニア人生を豊かにする。」