ヘッダーをスキップ
Oracle® Databaseプラットフォーム・ガイド
11gリリース2(11.2) for Microsoft Windows
B58885-08
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

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

この章では、Oracle DatabaseアーキテクチャでWindowsオペレーティング・システムのより高度なサービスがどのように利用されているかを説明します。

この章の項目は次のとおりです。

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

Windows上のOracle Databaseは、アプリケーションを構築するシステムとして、安定性、信頼性および高いパフォーマンスを提供します。データベースの各リリースでは、Windowsでのパフォーマンスを高めるために、プラットフォーム固有の新しい機能が提供されています。

Oracle Databaseは、Windows上でも他のプラットフォームと同じように動作します。このアーキテクチャは、Windowsで次のような利点を提供します。

自動ストレージ管理

自動ストレージ管理(ASM)は、Oracle Databaseファイル専用に構築されたファイル・システムおよびボリュームの統合マネージャです。ASMは、RAW I/Oのパフォーマンスの高さに加えて、ファイル・システムの管理の容易さも備えています。何千もの数になる可能性があるOracle Databaseファイルを直接的に管理する必要がなくなり、データベース管理が簡素化されます。これは、使用可能なすべての記憶域をディスク・グループに分割することで実現されています。ディスク・グループの小セットを管理し、ASMがこのディスク・グループ内のデータベース・ファイルの配置を自動化します。


関連項目:

『Oracle Database管理者ガイド』の「自動ストレージ管理の使用」

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

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

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

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

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

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

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

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

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

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

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

表1-1 Oracle Databaseスレッド

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

DBW0

データベース・ライター

必須

LGWR

ログ・ライター

必須

MMAN

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

必須

PMON

プロセス・モニター

必須

PSPO

プロセス起動プロセス

必須

SMON

システム・モニター

必須

CKPT

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

必須

ARCH0

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

必須

RECO

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

必須



注意:

次の問合せを発行して、バックグラウンド・プロセスを表示できます。
SQL> select * from v$bgprocess where paddr <> '00'; 

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

ファイルI/Oの拡張

Oracle Databaseでは、64ビットのファイルI/Oをサポートするため、4GBを超えるサイズのファイルを使用できます。さらに、Windows上でOracle Real Application Clusters(Oracle RAC)をサポートし、最大限のパフォーマンスが必要な場合に備え、データファイル、ログ・ファイルおよび制御ファイルとして物理および論理RAWファイルがサポートされています。

Oracle Database 11gでは、オペレーティング・システム・カーネルのNFSクライアントを使用するかわりに、Oracle Databaseを構成し、Oracle内部のダイレクトNFSクライアントを直接使用してNFS V3サーバーにアクセスできます。この統合を通じて、OracleとNFSサーバー間のI/Oパスが最適化されるため、パフォーマンスが大幅に向上します。また、ダイレクトNFSクライアントにより、データベース・ワークロード用のNFSクライアント構成が簡素化および最適化されます。

Direct NFSを構成せずに、CIFSによってマウントされたボリュームをOracle Databaseファイルの保存に使用することはできません。データベース書込みに必要なアトミック書込みの要件は、CIFSプロトコルでは満たすことができないため、CIFSはオペレーティング・システム・レベルのアクセスにしか使用できません。たとえば、コピーのようなコマンドが該当します。

現在、OracleのダイレクトNFSクライアントでは、スケーラビリティと高可用性を実現するために最大4つのパラレル・ネットワーク・パスがサポートされます。ダイレクトNFSクライアントにより、指定したすべてのパスでリクエストが自動的に負荷分散され、パフォーマンスが最適化されます。いずれかのネットワーク・パスに障害が発生すると、ダイレクトNFSクライアントにより残りのパスを通じてコマンドが再発行されるため、フォルト・トレランスと高可用性が保証されます。


関連項目:

NFSの構成とマウントの詳細は、各ベンダーのドキュメントを参照

RAWファイルのサポート

RAWファイルのかわりに、自動ストレージ管理を使用することをお薦めします。これにより、RAWファイルのパフォーマンスの利点を活かしつつ、管理しやすさを飛躍的に向上させることができます。自動ストレージ管理は、インスタンスが1つであり、Oracle RACデータベースが存在する場合に使用できます。

RAWファイルとは、1つの大きなファイルとして使用できるフォーマットされていないディスク・パーティションです。フォーマットされていないパーティションであるため、RAWファイルにはファイル・システムのオーバーヘッドがないという利点があります。Windowsでは、UNIXと同様、RAWファイルがサポートされています。データベース・ファイルまたはログ・ファイルにRAWファイルを使用すると、パフォーマンスが向上することがあります。Windows XPには、全ボリュームを管理するディスク・マネージャ(diskmgmt.msc)があります。Windows 2003以上には、RAWを含むボリュームを管理するコマンドライン・ユーティリティ(diskpart.exe)もあります。RAWボリュームのアドレッシングにはWindowsのボリューム・マウント・ポイントを使用することをお薦めします。

Oracle Databaseでは、RAWファイルは他のOracle Databaseファイルと変わりありません。これらのファイルは、Oracle Databaseでは他のファイルと同様に扱われ、Recovery ManagerまたはOCOPYを使用してバックアップおよびリストアできます。


注意:

  • 管理者としてログオンするか、管理者グループのメンバーであるユーザー名を使用してログオンする必要があります。

  • ディスク管理コンソールを起動するには、「スタート」「ファイル名を指定して実行」をクリックし、diskmgmt.mscと入力します。



関連項目:


WindowsでのOracle Databaseのスケーラビリティ

Oracle Databaseの機能とWindowsオペレーティングシステムの機能が連携することで、スケーラビリティ、スループットおよびデータベースの容量が向上します。この機能には、次のものがあります。

Very Large Memory(VLM)構成のサポート

Oracle Database for Windows(32-Bit)は大規模メモリー(VLM)構成をサポートしているため、Oracle Databaseは、Windowsアプリケーションの従来の最大使用容量である4GBよりも大きいRAMにアクセスできます。具体的に言うと、Oracle DatabaseはAddress Windowing Extensions(AWE)を使用して、4GBを超えるRAMにアクセスします。

このサポートを利用するための要件は、次のとおりです。

  1. Oracle Databaseがインストールされているコンピュータに4GBを超えるメモリーが搭載されている必要があります。

  2. boot.iniに/PAEスイッチを追加して、Physical Address Extensions(PAE)を利用できるようにオペレーティングシステムが構成されている必要があります。PAEを有効にするためにboot.iniを変更する方法は、Microsoft Knowledge Baseの文書番号268363を参照してください。

  3. /3GBパラメータをboot.iniに追加して4GTサポートを有効にすることをお薦めします(ただし、必須ではありません)。boot.iniを変更して4GTを有効にするための追加の要件と方法は、Microsoft Knowledge Baseの文書番号Q171793を参照してください。

  4. Oracle Databaseを実行するユーザー・アカウント(通常はLocalSystemアカウント)には、「Lock pages in memory」権限が必要です。

  5. VLMサポートを使用するデータベース・インスタンスの初期化パラメータ・ファイルにUSE_INDIRECT_DATA_BUFFERS=TRUEが指定されている必要があります。このパラメータが設定されていない場合、Oracle Database 10g リリース1(10.1)以上は以前のリリースと同じように動作します。

  6. 初期化パラメータDB_BLOCK_BUFFERSおよびDB_BLOCK_SIZEは、Oracle Database用に選択した値に設定する必要があります。


    注意:

    データベース・バッファの合計バイト数(DB_BLOCK_BUFFERSDB_BLOCK_SIZEを掛けた値)に対する3GBの制限はなくなりました。

    VLMでは動的SGAおよびマルチ・ブロック・サイズはサポートされません。VLMが有効である場合、次の新しいバッファ・キャッシュ・パラメータはサポートされません。

    • DB_CACHE_SIZE

    • DB_2K_CACHE_SIZE

    • DB_4K_CACHE_SIZE

    • DB_8K_CACHE_SIZE

    • DB_16K_CACHE_SIZE

    • DB_32K_CACHE_SIZE

    インスタンスのブロック・サイズを選択するには、初期化パラメータDB_BLOCK_SIZEを使用します。バッファ・キャッシュ・サイズは、初期化パラメータDB_BLOCK_BUFFERSによって設定されます。


  7. レジストリ・パラメータAWE_WINDOW_MEMORYは、Oracleホームに対して、該当するキーで作成および設定する必要があります。このパラメータはバイト単位で指定され、デフォルト値は1GBです。AWE_WINDOW_MEMORYは、2GB(4GTを有効化している場合は3GB)のアドレス空間のうち、データベース・バッファへのマッピング用として確保する量をOracle Databaseに指示します。

    このメモリーはOracle Databaseの2GB(4GTを有効化している場合は3GB)の仮想アドレス空間のものであるため、その値は3GB未満にする必要があります。このパラメータの値を大きくすると、アドレス空間の多くがバッファ用に使用され、バッファ用に使用されるAWEメモリーの使用量が減る効果があります。ただし、AWEバッファへのアクセス速度は仮想アドレス空間のバッファへのアクセス速度より若干遅いため、データベース操作に悪影響を及ぼさない範囲でできるだけ大きな値をこれらのパラメータに設定することをお薦めします。

    通常、AWE_WINDOW_MEMORYの設定値を高くするほど、Oracle Databaseで可能な接続数およびメモリー割当て量が少なくなります。AWE_WINDOW_MEMORYの設定値を低くするほど、パフォーマンスは低下します。

  8. このパラメータを設定した後に、Oracle Databaseを起動して、以前と同じように機能させることができますが、それまでとは異なり、インスタンスが使用できるデータベース・バッファの量が増えています。また、システム・グローバル領域(SGA)にキャッシュ可能なOracle Databaseのデータ・ブロックの量が増えるため、ディスクI/Oを減らすことができます。


    注意:

    以前のリリースでVLM構成の有効化に使用していたレジストリ・パラメータVLM_BUFFER_MEMORYは、Oracle Database 10gリリース1(10.1)以上ではサポートされません。

VLMインスタンスのチューニング

VLM構成では、メモリーにキャッシュするデータベース・バッファを増やすことで、データベースのパフォーマンスが向上します。これにより、VLMを使用しない構成と比較してディスクI/Oが減少します。Oracle Database 10gリリース1(10.1)以上でのVLMサポートは、Windowsとの統合がさらに緊密になるように変更されています。VLMユーザーにとって、新しい実装では、Oracle8i リリース2(8.1.6)と比較してパフォーマンスが向上しています。

VLMのチューニングは、VLMを使用しない構成のチューニングと同じです。DB_BLOCK_SIZEおよびDB_BLOCK_BUFFERS初期化パラメータの選択を繰り返し、サポートされているアプリケーションに適切な値を見つけます。


注意:

VLM構成では、複数のデータベース・ブロック・サイズをサポートしていません。

AWE_WINDOW_MEMORYというVLM固有の新しいレジストリ・パラメータを使用して、データベース・バッファ内にマッピング用に確保するアドレス・スペースの量をOracle Databaseに通知します。デフォルトの値は1GBですが、ほとんどのインストール環境に適合する値です。DB_BLOCK_SIZEが大きい場合は、AWE_WINDOW_MEMORYのデフォルト値である1GBではデータベースの起動に足りなくなることがあります。

AWE_WINDOW_MEMORYの値を大きくするとパフォーマンスは向上しますが、その他のOracle Databaseスレッド(フォアグラウンド・スレッドなど)に使用できるメモリー量が制限を受けます。この値を大きく設定しすぎると、メモリー不足エラーがクライアントに表示される場合があります。一般的な基準としては、AWE_WINDOW_MEMORYレジストリ値を20%増やします。

たとえば、DB_BLOCK_SIZEを8KB、AWE_WINDOW_MEMORYを1GB、LRUラッチの数を32(16プロセッサ・コンピュータ)に設定すると、メモリー不足エラー27102および34でデータベースの起動が失敗します。AWE_WINDOW_MEMORYの値を1.2GBまで大きくすると、この問題を解決できます。

VLM構成で大容量のキャッシュを使用する場合も、データベース・ライター(DBWR)スレッドが遅くなります。より多くのDBWRスレッドを使用すると、バッファを識別してディスクに書き込むために必要な処理が分散され、I/O負荷がスレッド間で分散されます。初期化パラメータDB_WRITER_PROCESSESを使用すると、複数のデータベース・ライター・スレッドを構成できます。

また、大容量のキャッシュを使用すると、最低使用頻度(LRU)ラッチについて競合が発生します。対称型マルチプロセッサ(SMP)システムの場合、Oracle Databaseは、LRUラッチの数をシステム上のプロセッサ数の半分に設定します。このような構成の場合は、LRUラッチの数をシステム上のプロセッサ数の2倍(または4倍)に増やすことにより、競合を軽減できます。


関連項目:

インスタンスのチューニングの詳細は、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。

Windowsの4GB RAM Tuning(4GT)

次のWindows(32-bit)オペレーティング・システムには、4GB RAM Tuning(4GT)と呼ばれる機能が組み込まれています。

  • Windows Server 2003 R2

  • Windows Server 2003

  • Windows Vista

  • Windows Server 2008

  • Windows 7

この機能により、Oracle Database Enterprise Edition上のメモリー集中型のアプリケーションは、旧バージョンのオペレーティング・システムの標準だった2GBではなく最大3GBのメモリーにアクセスできます。4GTを使用すると、データベース用として50%多いメモリーが使用可能になり、SGAサイズや接続数が増えるという、非常に大きな利点があります。

多数のユーザーのサポート

いくつかの新機能により、Oracle Databaseは、Windows上でより多くのデータベース接続をサポートできます。

  • Oracle Database共有サーバー・プロセスは、Oracle Databaseプロセスで必要なスレッド数を制限しますが、1つのデータベース・インスタンスに対して10,000を超える同時接続をサポートします。

  • Oracle Netの多重化および接続プーリング機能により、大規模構成でより多くのユーザーを1つのデータベース・インスタンスに接続できます。

  • Oracle RACは、スループットを向上させるとともに、複数のサーバー・コンピュータが同じデータベース・ファイルにアクセスできるようにしてユーザー接続数を数万単位で増やし、接続数を大幅に増大します。


    注意:

    Oracle RACは、Windows XPとWindows Vistaではサポートされません。

Oracle DatabaseとWindowsとの統合

Oracle DatabaseはWindowsとの統合を強化することにより、メンテナンスを容易にし、セキュリティ、ディレクトリ、トランザクション・サービスにおけるエンタープライズレベルでのデプロイメントを改善しています。Oracle Databaseの統合機能は次のとおりです。

Oracle PKIとWindowsとの統合

Oracle Advanced Securityには、認証およびシングル・サインオンのためのOracle PKI(公開鍵インフラストラクチャ)が統合されています。Oracle Wallet Managerを使用して、OracleベースのアプリケーションとPKI認証および暗号化フレームワークを統合できます。

Microsoftトランザクション・サーバー用のOracleサービス

Microsoft Transaction Server(MTS)は、分散環境におけるCOMオブジェクトおよびトランザクション用のアプリケーション・サーバーとして中間層で使用されます。これはCOM+およびEnterprise Servicesとも呼ばれます。Oracle Services for Microsoft Transaction Serverを使用すると、Microsoft Transaction Server独自の形式に調整されたトランザクションのリソース・マネージャとしてOracle Databaseを使用できるため、OracleのソリューションとMicrosoft Transaction Serverとの連携が強力になります。オペレーティング・システムの種類を問わず、Oracle Services for Microsoft Transaction ServerとOracle Databaseを連携させることができます。

Oracle Databaseではシステム固有の実装を利用し、リカバリ情報をOracle Databaseそのものに格納します。Oracle Services for Microsoft Transaction Serverにより、Oracle Objects for OLE(OO4O)、Oracle Call Interface(OCI)、ActiveX Data Objects(ADO)、OLE DB、Open Database Connectivity(ODBC)など、業界全体で使用されているすべてのデータ・アクセス・インタフェースでの開発が可能になります。Oracle API、Oracle Data Provider for .NET、OO4OおよびOCIは、効率的に最も優れています。

Oracle Fail SafeとWindowsとの統合

Oracle Fail Safeを使用すると、Oracle Database(および他のOracleアプリケーションとサード・パーティ・アプリケーション)を、Windowsクラスタで高可用性を提供できるように構成および管理できます。インスタンスは、一度に1つのノードでのみ実行されます。

クラスタは、1つの仮想システムとして機能する独立したコンピュータ・システムのグループで、障害の発生箇所となった個々のホスト・システムを排除します。Oracle Fail Safeは、Microsoft Cluster Serverと連動して、1つのクラスタ・システムで障害が発生した場合に、そのシステムのワークロードを正常なシステムへ、迅速かつ自動的にフェイルオーバーします。Windowsクラスタ上でOracle DatabaseとOracle Fail Safeを組み合せることにより、ハードウェアおよびソフトウェア双方の障害からシステムを保護できます。

優れたソリューションにより、Oracle Fail Safeは、使用頻度の高いデータベースの場合も正常なシステムを即座に使用できるようにしています。


注意:

Windowsオペレーティング・システム、Windows XP、Windows VistaおよびWindows 7では、Microsoft Cluster Serverで使用されているクラスタリング技術はサポートされていません。このため、Microsoft Cluster Serverと統合されるOracle Fail Safe Serverは、これらのオペレーティング・システムではサポートされません。


関連項目:

Oracle Fail Safeのドキュメント・セット(Oracle Databaseメディア・パックの個別のメディアで提供)

その他の参考資料

追加情報は、次のドキュメントを参照してください。