スレッドベースのアーキテクチャ
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 Oracle Databaseスレッド
Oracle Databaseスレッド | 説明 | 必須/オプション |
---|---|---|
|
データベース・ライター |
必須 |
|
ログ・ライター |
必須 |
|
メモリー・マネージャ・プロセス |
必須 |
|
プロセス・モニター |
必須 |
|
プロセス起動プロセス |
必須 |
|
システム・モニター |
必須 |
|
Windows上でデフォルトで動作するチェックポイント・プロセス(Windowsのスレッド) |
必須 |
|
アーカイブ・プロセス(またはWindowsのスレッド) |
必須 |
|
分散リカバリ・バックグラウンド・プロセス |
必須 |
Oracle Database for Windowsは、一連の実行可能ファイルおよびDynamic Link Library(DLL)として提供されます。ORASTACK
を使用して実行可能ファイルのイメージを変更し、Oracle Databaseプロセスのスレッドで使用されるスタックのサイズを変更できます。このツールは、必ずOracleサポート・サービスの指示に従って使用してください。