Oracle Databaseを学び始めた際、「バックグラウンドプロセス」という用語に戸惑う方は少なくありません。この記事では、バックグラウンドプロセスとは何か、なぜ必要なのか、どんな種類があるのかをわかりやすく解説します。加えて、初心者でも視覚的に理解できるように図も交えて紹介します。
Oracleインスタンスの解説はコチラ。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
バックグラウンドプロセスとは?
Oracleデータベースは、ユーザーのSQL処理以外にも、さまざまな「裏方作業」を自動で行っています。これらの裏方処理を担っているのが「バックグラウンドプロセス」です。
バックグラウンドプロセスは、データベースの起動時に自動的に立ち上がり、以下のような重要な役割を果たします:
- メモリ上のデータをディスクに書き込む
- データファイルや制御ファイルを同期する
- リカバリや障害復旧をサポートする
テキスト図:Oracleインスタンスの構成
以下の図は、Oracleインスタンスの構成とバックグラウンドプロセスの関係を示したものです。
【Oracleインスタンスの構成】
+----------------------------+
| SGA(共有メモリ) |
| +----------------------+ |
| | データバッファキャッシュ | ← DBWR が書き出し
| | REDOログバッファ | ← LGWR が書き出し
| +----------------------+ |
+----------------------------+
↑ ↑
| |
+----+--------+----+
| バックグラウンドプロセス群 |
+----------------------+
| DBWR(データ書き出し) |
| LGWR(REDOログ書き出し) |
| CKPT(チェックポイント) |
| SMON(障害復旧) |
| PMON(プロセス管理) |
| ARCn(アーカイブ) |
| MMON(監視・統計収集) |
| CJQ0(ジョブ管理) |
| RECO(分散トランザクション復旧)|
| MMNL(軽量監視ログ) |
| RVWR(フラッシュバックログ) |
+----------------------+
主なバックグラウンドプロセスの解説(基本編)
1. DBWR(Database Writer)
SGAのバッファキャッシュから、変更されたデータをデータファイルに書き出します。
一括して書き出すことでディスクI/Oを最適化します。
2. LGWR(Log Writer)
トランザクションの変更内容(REDOログ)をディスク上のREDOログファイルに書き込みます。
COMMIT時の処理にも関わります。
3. CKPT(Checkpoint)
チェックポイント処理をトリガーし、SCNをデータファイルや制御ファイルに記録します。
実際の書き出しはDBWRが行います。
4. SMON(System Monitor)
インスタンス障害後の自動リカバリを実行します。
一時セグメントの解放も担当します。
5. PMON(Process Monitor)
異常終了したユーザープロセスのリソース解放を行います。
リスナーとの通信確認も担当します。
6. ARCn(Archiver)
アーカイブログモード有効時に、REDOログファイルをアーカイブファイルにコピーします。
複数のARCプロセスが同時に動作することもあります。
追加:代表的なバックグラウンドプロセス(応用編)
7. MMON(Manageability Monitor)
AWRスナップショットの収集や自動ワークロードリポジトリに関する統計情報を管理します。
自動パフォーマンス管理(ADDM)とも密接に関連しています。
8. CJQ0(Job Queue Coordinator)
DBMS_JOBやDBMS_SCHEDULERによるジョブの管理を行います。
必要に応じてJnnnプロセスを起動し、バッチ処理を実行します。
9. RECO(Recoverer)
分散トランザクション(2フェーズコミット)において障害が発生した場合、そのリカバリを行うプロセスです。
異常終了した他データベースとの接続を監視し、トランザクションの整合性を保ちます。
10. MMNL(Memory Monitor Light)
MMONの補助プロセスであり、軽量な統計情報やアラートログの書き出しを担当します。
監視対象データをメモリからディスクへ非同期に記録します。
11. RVWR(Recovery Writer)
フラッシュバック・リカバリ領域(FRA)にフラッシュバックログを記録します。
フラッシュバック・データベース機能に必要不可欠なプロセスです。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
バックグラウンドプロセスの確認SQL
現在稼働しているバックグラウンドプロセスは、以下のビューで確認できます。
SELECT name, description
FROM v$bgprocess
WHERE paddr != '00';
PADDR列が00でないプロセスが現在稼働中のものです。
コマンド実行例
SQL> SELECT name, description
2 FROM v$bgprocess
3 WHERE paddr != '00';
NAME DESCRIPTION
----- -------------------------------------------
PMON process cleanup
CLMN process cleanup
PSP0 process spawner 0
VKTM Virtual Keeper of TiMe process
GEN0 generic0
GEN1 generic1
MMAN Memory Manager
SCMN
DIAG diagnosibility process
OFSD Oracle File Server BG
SCMN
DBRM DataBase Resource Manager
VKRM Virtual sKeduler for Resource Manager
SVCB services background monitor
PMAN process manager
DIA0 diagnosibility process 0
DBW0 db writer process 0
LGWR Redo etc.
CKPT checkpoint
SMON System Monitor Process
SMCO Space Manager Process
RECO distributed recovery
W000 space management slave pool
LREG Listener Registration
W001 space management slave pool
PXMN PX Monitor
FENC IOServer fence monitor
MMNL Manageability Monitor Process 2
MMON Manageability Monitor Process
D000 Dispatchers
S000 Shared servers
TMON Transport Monitor
M000 MMON slave class 1
TT00 Redo Transport
TT01 Redo Transport
TT02 Redo Transport
AQPC AQ Process Coord
QM02 QMON MS
Q001 QMON MS
QM03 QMON MS
Q003 QMON MS
CJQ0 Job Queue Coordinator
W002 space management slave pool
P000 Parallel query slave
P001 Parallel query slave
M004 MMON slave class 1
W003 space management slave pool
W004 space management slave pool
M002 MMON slave class 1
M001 MMON slave class 1
M003 MMON slave class 1
Q004 QMON MS
Q005 QMON MS
Q006 QMON MS
Q007 QMON MS
Q008 QMON MS
Q009 QMON MS
Q00A QMON MS
Q00B QMON MS
Q00C QMON MS
Q00D QMON MS
Q00E QMON MS
Q00F QMON MS
Q00G QMON MS
Q00H QMON MS
Q00I QMON MS
Q00J QMON MS
Q00K QMON MS
Q00L QMON MS
Q00M QMON MS
70 rows selected.
まとめ:バックグラウンドプロセスの理解がOracle運用の第一歩
Oracleのバックグラウンドプロセスは、データベースが「黙って」正しく動作するための基盤です。
本記事で紹介したプロセスは一部に過ぎませんが、主要なものを理解することで、より深い運用・監視・トラブルシュートが可能になります。
[参考]
データベース・リファレンス – F バックグラウンド・プロセス
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?




コメント