この項の内容:
カーネルは、データ・ロード、計算、スプレッドシートをロックして送信、パーティション化、再構築を含む、Essbaseサーバーの様々な機能の基礎を提供します。カーネルは、データの読取り、キャッシュおよび書込み、トランザクションの管理、データの一貫性とデータの整合性を保証するためのトランザクション・セマンティクスの適用を行います。
参照:
致命的なエラーの処理の理解を参照してください。 |
直接I/OおよびバッファI/Oは、ユーザーがデータベース・レベルで設定できるアクセス・モードです。Essbaseカーネルは、デフォルトではバッファI/O(入力/出力)を使用しますが、Essbaseによってサポートされているオペレーティング・システムおよびファイル・システム(Linuxを除く)では直接I/Oも使用できます。Oracle Hyperion Enterprise Performance Management System動作保証マトリックス(http://www.oracle.com/technology/software/products/ias/files/fusion_certification.html)を参照してください。
バッファI/Oでは、ファイル・システムのバッファ・キャッシュが使用されます。
直接I/Oでは、ファイル・システムのバッファ・キャッシュがバイパスされ、I/Oを非同期でオーバーラップして実行できます。これには、次のメリットがあります:
直接I/Oを使用するようにデータベースを設定すると、そのデータベースが次回開始されたとき、Essbaseでは直接I/Oを使用しようとします。データベースが開始されたときにプラットフォーム上で直接I/Oが使用できない場合、Essbaseでは、デフォルトであるバッファI/Oを使用します。ただし、Essbaseでは、I/Oアクセス・モードの選択がセキュリティ・ファイルに保管され、データベースが開始されるたびにそのI/Oアクセス・モードを使用しようとします。
また、キャッシュのサイズを増やすことが必要な場合もあります。キャッシュのサイズ設定を参照してください。
カーネルには、データの取得および保管に関するすべての処理を制御するコンポーネントが含まれています:
インデックス・マネージャは、要求されたデータの場所を検索および追跡します。インデックス・マネージャを参照してください。
インデックス・マネージャの一部である割当てマネージャは、領域を割り当て、一部のファイル操作を管理します。割当てマネージャを参照してください。
データ・ブロック・マネージャは、インデックスによってポイントされたデータを取得し、そのデータを保管します。データ・ブロック・マネージャを参照してください。
LROマネージャは、LROの取得および格納を処理します。LROマネージャを参照してください。
ロック・マネージャは、同時データ・アクセスを規制するためのデータ・ブロックのロックを処理します。ロック・マネージャを参照してください。
トランザクション・マネージャは、トランザクションを追跡し、内部のコミットおよび中止操作を処理します。トランザクション・マネージャを参照してください。
インデックス・マネージャは、データベース・インデックスを管理し、Essbaseのデータ・ブロックをすばやく検索するための方法を提供します。インデックス・マネージャは、データベース・インデックスのどの部分をインデックス・キャッシュ内にキャッシュするかを決定し、そのインデックス・キャッシュを管理します。
表150は、インデックス・マネージャが制御するコンポーネントを示しています:
表 150. インデックス・マネージャのコンポーネント
インデックスという用語は、単一のデータベースのすべてのインデックス・ファイルを指します。インデックスは複数のボリュームにまたがることができ、単一のボリューム上に複数のインデックス・ファイルが存在できます。ディスク・スパン・パラメータを指定するには、ディスク・ボリューム設定を使用します。インデックス・キャッシュ・サイズの設定については、インデックス・キャッシュ・サイズの設定を参照してください。ディスク・ボリューム設定を使用したストレージ・スペースの割当てについては、ディスク・ボリュームの指定を参照してください。
インデックス・マネージャの一部である割当てマネージャでは、次のタスクが実行されます:
これらのいずれかのタスクを実行する必要がある場合、割当てマネージャでは、次のプロセスを使用してスペースを割り当てます:
割当てマネージャでは、ストレージのデータベース設定に基づいて、インデックスおよびデータ・ファイル用のスペースが割り当てられます。
ディスク・ボリュームの指定を参照してください。
Essbaseでデータが保管される方法については、ストレージの割当てを参照してください。
データ・ブロック・マネージャは、データ・ブロックのメモリー内への読込みやデータ・ファイルへの書込み、データ圧縮の処理、およびデータ・ファイルのディスクへの書込みを行います。データ・ブロック・マネージャは、4つのコンポーネントを制御します。次の表は、これらの各コンポーネントを示しています:
表151は、データ・ブロック・マネージャが制御するコンポーネントを示しています:
表 151. データ・ブロック・マネージャのコンポーネント
データ・ファイル・キャッシュのサイズによって、一度にメモリー内に収容できるデータ・ファイル内のデータ量が決定されます。データ・キャッシュ・サイズとデータ・ブロック・サイズによって、一度にメモリー内に収容できるデータ・ブロック数が決定されます。単一のデータベースのデータ・ファイルが複数のボリュームにまたがることができ、また同じボリューム上に複数のデータベースを配置できます。データ・ファイル・キャッシュ・サイズの設定およびデータ・キャッシュ・サイズの設定を参照してください。また、ディスク・ボリュームの指定も参照してください。
LROを使用すると、データ・セルに、フラット・ファイルなどのオブジェクトを関連付けることができます。ユーザーは、Smart Viewを使用して、.lroの拡張子を持つLROファイルを作成したり保管したりできます。
LROファイルは、データベース・ディレクトリ(ARBORPATH/app/appname/dbname。たとえば、app/Sample/Basic)に保管されます。
Essbaseでは、LROに関する情報はLROカタログに保管されます。各カタログは、独自のEssbaseインデックス・ページに配置され、インデックス・ファイル内でLRO以外の他のEssbaseインデックス・ページと共存しています。
EssbaseデータへのオブジェクトのリンクおよびOracle Hyperion Smart View for Office User's Guideを参照してください。
ロック・マネージャでは、データ・ブロックのロックを発行して、データへの同時アクセスを制御します。
コミット・アクセスとアンコミット・アクセスの分離レベルでは、異なるロック方式が使用されます。分離レベルとロックの詳細は、データの整合性の確保。を参照してください。
トランザクション・マネージャでは、トランザクション操作およびコミット操作の制御、およびデータベース・リカバリの管理が行われます。
Essbaseは、データを自動的にコミットします。コミットは、データのロード、計算、再構築、スプレッドシートのロックして送信操作など、データを変更するトランザクションによってトリガーされます。
Essbaseでデータがコミットされる方法は、トランザクションの分離レベルがコミット・アクセスとアンコミット・アクセス(デフォルト)のどちらに設定されているかによって異なります。コミット・アクセスおよびアンコミット・アクセスを参照してください。
トランザクション・マネージャでは、トランザクションの追跡のためにトランザクション制御テーブル(dbname.tct)が保持されています。
コミット操作およびリカバリについては、クラッシュしたデータベースのリカバリを参照してください。
Essbaseでは、essbase.cfgファイルで、一部のデータベース・ストレージ設定のデフォルト値が提供されます。デフォルト設定のままにすることも、次の2つの方法で値を変更することもできます:
essbase.cfgファイル内の値を変更することで、Essbaseサーバー上のすべてのデータベースのストレージ設定を定義できます。
データベース設定の指定および変更で指定されている任意の方法を使用すると、単一のデータベースのストレージ設定を定義できます。
個々のデータベースを変更すると、essbase.cfgの設定および関連するデータベースのEssbaseのデフォルト値が完全に上書きされ、次の変更または破棄まで永続的に適用されます。
MaxLまたは管理サービス・コンソールを使用してデータベース・レベルで設定を変更すると、これらの変更は、表152に示すように、異なるタイミングで有効になります:
essbase.cfg内のこれらのデータベース設定を手動で変更した場合は、変更を有効にするために、関連するアプリケーションを停止して再起動する必要があります。
Essbaseでは、ユーザーがEssbaseサーバーを開始し、データベース設定の指定および変更で説明されている方法を使用して作成した設定をデータベースに適用した時点でデータベース設定の指定および変更が読み取られます。
Administration Services、ESSCMDまたはMaxLを使用して指定したデータベース設定は、データベースの設定を適用した後にessbase.cfg内の設定を変更した場合でも、常にessbase.cfg設定を上書きします。Essbaseでessbase.cfgが使用されるようにするには設定を削除するしかなく、削除してもEssbaseサーバーを再起動しないと有効になりません。
Essbaseサーバー上の各データベースの設定をカスタマイズできます。この項の情報は、各設定によって制御される内容や、各設定の指定方法を理解するのに役立ちます。また、いくつかの例も示されています。パフォーマンスに関連した設定の表については、Essbaseのパフォーマンスの向上。を参照してください。
表153に、カスタマイズできる主要なデータベース設定を示します:
次の項では、カーネル設定の変更方法について説明し、例を示します。
データベース設定を変更する前に、Essbaseの別の部分で変更された設定の優先度や、Essbaseによるこれらの設定の読取り方法に関する情報を確認してください:
これらの方法により、同じデータベース設定を変更するための異なる方法が提供されます。まれに、essbase.cfgを使用して設定を指定することもあります。
以前のバージョンのEssbaseでは、Essbaseサーバー上のessbase.cfgファイルで多くのデータベース設定を指定できました。バージョン5.x以降では、ほとんどの.cfg設定がEssbaseによって上書きされます。より新しいバージョンのEssbaseによる設定の処理方法の説明については、データベース設定の優先度の理解およびEssbaseによる設定の読取り方法の理解を参照してください。 |
変更するデータベース設定ごとに個別のalter databaseステートメントを発行します。たとえば、次のMaxLスクリプトはEssbaseにログオンし、3つのデータベース設定を変更した後、ログオフします:
login admin identified by secretword; alter database sample.basic enable committed_mode; alter database sample.basic set lock_timeout immediate; alter database sample.basic disable create_blocks; logout;
MaxLシェルを使用してMaxLステートメントを発行する場合は、各MaxLステートメントをセミコロンで終端させます。ただし、MaxLステートメントをPerlスクリプトに埋め込む場合は、セミコロン・ステートメント終端文字を使用しないでください。 |
MaxLを使用すると、データベース設定の変更を自動化するためのバッチ・スクリプトを記述できます。『Oracle Essbaseテクニカル・リファレンス』にある「MaxL言語リファレンス」を参照してください。
単純なアイテムの場合は、次のように、コマンド、パラメータを表すアイテム番号、アプリケーション、データベースおよびパラメータの値を指定します:
SETDBSTATEITEM 2 "SAMPLE" "BASIC" "Y";
分離レベル(アイテム18)など複数の値を設定する必要のあるパラメータには、値を複数指定します。次の例で「BASIC」の後の値はすべてパラメータです:
SETDBSTATEITEM 18 "SAMPLE" "BASIC" "1" "Y" "-1";
パラメータ番号がわからない場合は、その番号を省略すると、すべてのパラメータとそれに対応する番号がEssbaseによってリストされます。また、Essbaseによって、データベースとアプリケーション名の入力も求められます。
各パラメータには、別個のSETDBSTATEITEMコマンドを使用します。複数のパラメータ番号を、同じ行で続けることはできません。
SETDBSTATEコマンドとSETDBSTATEITEMコマンドのパラメータについては、『Oracle Essbaseテクニカル・リファレンス』を参照してください。
SETDBSTATEITEM (またはSETDBSTATE)をバッチ・スクリプトに含めることができます。バッチ処理の詳細は、バッチ・プロセスにおけるスクリプト・ファイルおよびバッチ・ファイルの使用を参照してください。特定のESSCMD構文については、『Oracle Essbaseテクニカル・リファレンス』を参照してください。