この章では、Oracle DatabaseアーキテクチャでMicrosoft Windowsオペレーティング・システムのより高度なサービスがどのように利用されているかを説明します。
この章の項目は次のとおりです。
Windows上のOracle Databaseは、アプリケーションを構築するシステムとして、安定性、信頼性および高いパフォーマンスを提供します。データベースの各リリースでは、Windowsでのパフォーマンスを高めるために、プラットフォーム固有の新しい機能が提供されています。
Oracle Databaseは、Windows上でも他のプラットフォームと同じように動作します。このアーキテクチャは、Windowsで次のような利点を提供します。
Oracle Automatic Storage Management(Oracle ASM)は、Oracle Databaseファイル専用に構築されたファイル・システムおよびボリュームの統合マネージャです。Oracle ASMは、RAW I/Oのパフォーマンスの高さに加えて、ファイル・システムの管理の容易さも備えています。何千もの数になる可能性があるOracle Databaseファイルを直接的に管理する必要がなくなり、データベース管理が簡素化されます。これにより、使用可能なすべての記憶域をディスク・グループに分割できます。ディスク・グループの小セットを管理し、Oracle ASMがこのディスク・グループ内のデータベース・ファイルの配置を自動化します。
データ・ファイルの格納には、RAWファイルのかわりに、Oracle ASMを使用することをお薦めします。これにより、RAWファイルのパフォーマンスの利点を活かしつつ、管理しやすさを飛躍的に向上させることができます。Oracle ASMは単一インスタンスおよびOracle Real Application Clusters (Oracle RAC)データベースの両方で使用できます。
Oracle Cluster Registry(OCR)および投票ファイルは、Oracle ASMディスク・グループに格納でき、データベースのデータ・ファイルはdata
ディスク・グループに格納できます。投票ファイルおよびOracle Cluster Registryは、Oracle Clusterwareの2つの重要なコンポーネントです。
注意:
|
Oracle ASMファイル・アクセス制御は、ファイルへのアクセスをSYSDBA
として接続する特定のOracle ASMクライアントに制限します。Oracle ASMクライアントはデータベースで、データベース・インスタンス・ホームを所有するユーザーの名前で識別されます。Oracle ASMファイル・アクセス制御では、データベースの識別にこのユーザー名を使用します。Oracle ASMファイル・アクセス制御は、データベース所有者のオペレーティング・システムおよび有効ユーザー識別番号に基づいてアクセスを制御します。
Oracle Database 12cリリース1 (12.1)ではWindowsでロールを分離するためのアクセス制御が提供されます。Oracle Databaseサービスがローカル・システム・アカウントではなくOracleホーム・ユーザー・アカウントで実行中の場合、Windowsでロールの分離をサポートするには、Oracle ASMアクセス制御機能を有効化する必要があります。以前のリリースでは、すべてのOracle DatabaseサービスがWindowsの組込みローカル・システム・アカウントで実行されたため、Windowsのこの機能は無効になりました。
Oracle Database 12cリリース1 (12.1)に追加された新しいユーザー・グループは、ORA_
HOMENAME
_DBA
、ORA_
HOMENAME
_OPER
、ORA_
HOMENAME
_SYSBACKUP
などです。Oracle ASM管理で、新しいグループORA_ASMADMIN
、ORA_ASMDBA
およびORA_ASMOPER
がOracle Databaseのインストール中に自動的に作成および入力されます。Oracle ASM管理者はこれらのWindowsグループをWindowsツールを使用して管理できるので、必要なユーザー名がこれらのグループから削除されていないことを確認する必要があります。
関連項目:
|
Oracle Database 12cリリース1 (12.1)から、あるオペレーティング・システム・ユーザーから別のオペレーティング・システム・ユーザーに、Oracle ASMユーザーのアイデンティティを変更できます。これにより、エンド・ユーザーがOracle ASMユーザーのIDを変更でき、ユーザーを削除して再作成する必要はありません(この場合、ユーザーが所有するすべてのファイルを削除する必要があります)。この機能により、Oracle ASMのユーザーおよびユーザーが所有するファイルの管理性が向上します。新しいSQL文(ALTER DISKGROUP REPLACE USER
)および新しいASMCMDコマンド(rpusr
)が追加され、ディスク・グループでのユーザー置換をサポートします。
関連項目: 『Oracle Automatic Storage Management管理者ガイド』 |
Oracle Database 12cリリース1 (12.1)では、ユーザーはファイルが開いているときでもファイルの所有権、権限、またはグループ・メンバーシップを変更できます。このリリース以降、chgrp
、chmod
およびchown
などのASMCMDファイル・アクセス制御コマンドは、ファイルが開いているときでも実行できます。ALTER DISKGROUP MODIFY USERGROUP
コマンドなどのSQL文も、これらのASMCMDコマンドをサポートするように変更されました。
関連項目: 『Oracle Automatic Storage Management管理者ガイド』 |
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アーキテクチャを図1-1に示します。WindowsでのOracle Databaseに必須のスレッドの例を表1-1に示します。
表1-1 Oracle Databaseスレッド
Oracle Databaseスレッド | 説明 | 必須/オプション |
---|---|---|
|
データベース・ライター |
必須 |
|
ログ・ライター |
必須 |
|
メモリー・マネージャ・プロセス |
必須 |
|
プロセス・モニター |
必須 |
|
プロセス起動プロセス |
必須 |
|
システム・モニター |
必須 |
|
Windows上でデフォルトで動作するチェックポイント・プロセス(Windowsのスレッド) |
必須 |
|
アーカイブ・プロセス(またはWindowsのスレッド) |
必須 |
|
分散リカバリ・バックグラウンド・プロセス |
必須 |
Oracle Database for Windowsは、一連の実行可能ファイルおよびDynamic Link Library(DLL)として提供されます。ORASTACK
を使用して実行可能ファイルのイメージを変更し、Oracle Databaseプロセスのスレッドで使用されるスタックのサイズを変更できます。このツールは、必ずOracleサポート・サービスの指示に従って使用してください。
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クライアント構成が簡素化および最適化されます。
ダイレクトNFSクライアントを構成せずに、CIFSによってマウントされたボリュームをOracle Databaseファイルの保存に使用することはできません。データベース書込みに必要なアトミック書込み要件は、CIFSプロトコルでは保証されていません。したがって、CIFSは、コピーや移動などのオペレーティング・システム・レベルのコマンド用にのみ使用できます。
現在、ダイレクトNFSクライアントでは、スケーラビリティと高可用性を実現するために最大4つのパラレル・ネットワーク・パスがサポートされます。ダイレクトNFSクライアントにより、指定したすべてのパスでリクエストが自動的に負荷分散され、パフォーマンスが最適化されます。いずれかのネットワーク・パスに障害が発生すると、ダイレクトNFSクライアントにより残りのパスを通じてコマンドが再送信されるため、フォルト・トレランスと高可用性が保証されます。
dnfs_batch_size
と呼ばれる新しいパラメータがOracle Database 12cリリース1 (12.1)から追加され、ダイレクトNFSクライアントが有効な場合に、Oracleプロセスでキューに入れることができる非同期I/O操作の数を制御します。このパラメータは、ダイレクトNFSクライアントがNFSサーバーまたはネットワークで過剰である場合にのみ設定します。このパラメータにより、ユーザーはダイレクトNFSクライアントを生成できる負荷を管理できます。通常の環境では、このパラメータを設定する必要はありません。このパラメータのデフォルト値は4096です。ダイレクトNFSクライアントの負荷を軽減するために、128の値を推奨しますが、NFSサーバーのパフォーマンスに基づいて変更できます。
関連項目: NFSの構成とマウントの詳細は、各ベンダーのドキュメントを参照 |
Oracle Databaseの機能とWindowsオペレーティングシステムの機能が連携することで、スケーラビリティ、スループットおよびデータベースの容量が向上します。機能のうちの1つを次で説明します。
いくつかの新機能により、Oracle Databaseは、Windows上でより多くのデータベース接続をサポートできます。
共有サーバー・プロセスは、Oracle Databaseプロセスで必要なスレッド数を制限しますが、1つのデータベース・インスタンスに対して10,000を超える同時接続をサポートします。
Oracle Netの多重化および接続プーリング機能により、大規模構成でより多くのユーザーを1つのデータベース・インスタンスに接続できます。
Oracle RACは、スループットを向上させるとともに、複数のサーバー・コンピュータが同じデータベース・ファイルにアクセスできるようにしてユーザー接続数を数万単位で増やし、接続数を大幅に増大します。
注意: Oracle RACは64ビットWindowsサーバー・オペレーティング・システムでのみサポートされています。 |
Oracle DatabaseはWindowsとの統合を強化することにより、メンテナンスを容易にし、セキュリティ、ディレクトリ、トランザクション・サービスにおけるエンタープライズレベルでのデプロイメントを改善しています。Oracle Databaseの統合機能は次のとおりです。
Oracle Advanced Securityには、認証およびシングル・サインオンのためのOracle PKI(公開鍵インフラストラクチャ)が統合されています。Oracle Wallet Managerを使用して、OracleベースのアプリケーションとPKI認証および暗号化フレームワークを統合できます。
Microsoft Transaction Server(MTS)は、分散環境におけるCOMオブジェクトおよびトランザクション用のアプリケーション・サーバーとして中間層で使用されます。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 Call Interface(OCI)、ActiveX Data Objects(ADO)、OLE DB、Open Database Connectivity(ODBC)など、業界全体で使用されているすべてのデータ・アクセス・インタフェースでの開発が可能になります。Oracle API、Oracle Data Provider for .NETおよびOCIは、効率的に最も優れています。
Oracle Fail Safeを使用すると、Oracle Database(および他のOracleアプリケーションとサード・パーティ・アプリケーション)を、Windowsクラスタで高可用性を提供できるように構成および管理できます。インスタンスは、一度に1つのノードでのみ実行されます。
クラスタは、1つの仮想システムとして機能する独立したコンピュータ・システムのグループで、障害の発生箇所となった個々のホスト・システムを排除します。Oracle Fail Safeは、Microsoft Windows Failover Clustersと連動して、1つのクラスタ・システムで障害が発生した場合に、そのシステムで動作しているワークロードを正常なシステムへ、迅速かつ自動的にフェイルオーバーします。Windowsクラスタ上でOracle DatabaseとOracle Fail Safeを組み合せることにより、ハードウェアおよびソフトウェア双方の障害からシステムを保護できます。
優れたソリューションにより、Oracle Fail Safeは、使用頻度の高いデータベースの場合も正常なシステムを即座に使用できるようにしています。
注意: Windows Serverオペレーティング・システムはクラスタリング技術をサポートします。Oracle Fail Safe Managerクライアントは、Windows Serverオペレーティング・システム(Windows Server 2008、Windows Server 2008 R2、Windows Server 2012およびWindows Server 2012 R2 x64)およびクライアント・システム(Windows 7、Windows 8およびWindows 8.1)にインストールできます。 |
関連項目: Oracle Fail Safeのドキュメント・セット(Oracle Databaseメディア・パックの個別のメディアで提供) |