日本語PDF

スレッドベースのアーキテクチャ

Oracle Databaseの内部プロセスのアーキテクチャは、スレッド・ベースです。スレッドは、プロセス内のプログラム命令を実行するオブジェクトです。

スレッドにより、1つのプロセス内での同時処理が可能になり、プロセスが、異なるプロセッサ上でプログラムの異なる部分を同時に実行できます。スレッドベースのアーキテクチャには、次の利点があります。

  • コンテキストのスイッチングが高速

  • 共有メモリーを使用する必要がないため、システム・グローバル領域割当てルーチンがシンプル

  • スレッドはプロセスよりも速く作成できるため、新規接続の高速な作成が可能

  • スレッドはプロセスよりも多くのデータ構造を共有するため、メモリー使用量が減少

内部的には、スレッド・モデルを実装するコードはコンパクトで、Oracle Databaseコードの本体から分離されています。例外ハンドラおよびルーチンは、リソースを追跡し、割当てを解除します。これにより、リソース・リークまたはプログラムの誤動作による停止時間が生じず、堅牢性が増します。

Oracle Databaseは、一般的なWindowsプロセスではありません。Windowsでは、Oracle DatabaseまたはOracle Automatic Storage Managementインスタンス(スレッドおよびメモリー構造)はWindowsのサービス、つまりオペレーティング・システムに登録されるバックグラウンド・プロセスです。サービスはWindowsによって起動されるため、ユーザーによる起動操作は必要ありません。このため、コンピュータの起動時にデータベースを自動的にオープンできます。

Windows上で複数のOracle DatabaseまたはOracle Automatic Storage Managementインスタンスを実行する場合、各インスタンスでは、複数のコンポーネント・スレッドを持つ独自のWindowsサービスを実行します。スレッドには、データベースの使用に必須のスレッドと、特定のプラットフォームに固有のオプションのスレッドがあります。バックグラウンド・プロセスは、構成に応じて様々なデータ・ファイルから読取りおよび書込みを行います。WindowsでのOracle Databaseアーキテクチャを「WindowsでのOracle Databaseアーキテクチャ」に示します。WindowsでのOracle Databaseに必須のスレッドの例を「Oracle Databaseスレッド」に示します。

図1-1 WindowsでのOracle Databaseアーキテクチャ

図1-1の説明が続きます
「図1-1 WindowsでのOracle Databaseアーキテクチャ」の説明

表1-1 Oracle Databaseスレッド

Oracle Databaseスレッド 説明 必須/オプション

DBWO

データベース・ライター

必須

LGWR

ログ・ライター

必須

MMAN

メモリー・マネージャ・プロセス

必須

PMON

プロセス・モニター

必須

PSPO

プロセス起動プロセス

必須

SMON

システム・モニター

必須

CKPT

Windows上でデフォルトで動作するチェックポイント・プロセス(Windowsのスレッド)

必須

ARCO

アーカイブ・プロセス(またはWindowsのスレッド)

必須

RECO

分散リカバリ・バックグラウンド・プロセス

必須

注意:

次の問合せを入力して、実行中のバックグラウンド・プロセスを表示できます。

SQL> select * from v$bgprocess where paddr <> '00'; 

Oracle Database for Windowsは、一連の実行可能ファイルおよびDynamic Link Library(DLL)として提供されます。ORASTACKを使用して実行可能ファイルのイメージを変更し、Oracle Databaseプロセスのスレッドで使用されるスタックのサイズを変更できます。このツールは、必ずOracleサポート・サービスの指示に従って使用してください。