データベース設定の管理

この項の内容:

Essbaseサーバー・カーネルの理解

カーネルのコンポーネントの理解

カーネル起動の理解

データベース設定の優先度の理解

Essbaseによる設定の読取り方法の理解

最後に入力された設定の表示

データベース設定のカスタマイズ

Essbaseサーバー・カーネルの理解

カーネルは、データ・ロード、計算、スプレッドシートをロックして送信、パーティション化、再構築を含む、Essbaseサーバーの様々な機能の基礎を提供します。カーネルは、データの読取り、キャッシュおよび書込み、トランザクションの管理、データの一貫性とデータの整合性を保証するためのトランザクション・セマンティクスの適用を行います。

カーネルには、次の機能があります:

  • Essbaseファイルのディスク・ストレージおよびキャッシュの処理

  • データ取得の処理

  • データ更新の処理

  • Essbaseに関連した入力/出力機能の制御

  • 再使用のための空き領域の集計

  • 同時操作の管理

  • サーバー・クラッシュ後のデータベースのリカバリ

  • ロックの発行

  • トランザクションの管理

参照:

注:

致命的なエラーの処理の理解を参照してください。

バッファI/Oと直接I/Oの理解

直接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を非同期でオーバーラップして実行できます。これには、次のメリットがあります:

  • 応答時間の高速化。ユーザーがEssbaseからのデータの戻りを待つ時間が短くなります。

  • 拡張性と予測可能性。Essbaseでは、データベースの最適なキャッシュ・サイズをカスタマイズできます。

直接I/Oを使用するようにデータベースを設定すると、そのデータベースが次回開始されたとき、Essbaseでは直接I/Oを使用しようとします。データベースが開始されたときにプラットフォーム上で直接I/Oが使用できない場合、Essbaseでは、デフォルトであるバッファI/Oを使用します。ただし、Essbaseでは、I/Oアクセス・モードの選択がセキュリティ・ファイルに保管され、データベースが開始されるたびにそのI/Oアクセス・モードを使用しようとします。

注:

キャッシュ・メモリーのロックは、直接I/Oが使用されている場合にのみ使用できます。また、オペレーティング・システムの待機なし(非同期) I/Oを使用する場合も、直接I/Oを使用する必要があります。

I/Oアクセス・モードの表示

バッファI/Oが、すべてのデータベースでのデフォルト設定です。

  データベースで現在使用または設定されているI/Oアクセス・モードを表示するには、次のツールを使用します:

ツール

トピック

場所

Administration Services

I/Oアクセス・モードの選択

Oracle Essbase Administration Services Online Help

MaxL

display database

『Oracle Essbaseテクニカル・リファレンス』

ESSCMD

GETDBINFO

『Oracle Essbaseテクニカル・リファレンス』

I/Oアクセス・モードの設定

  任意のデータベースにデフォルトのバッファI/Oのかわりに直接I/Oを使用するには、次のツールを使用します:

ツール

トピック

場所

Administration Services

I/Oアクセス・モードの選択

Oracle Essbase Administration Services Online Help

MaxL

alter database

『Oracle Essbaseテクニカル・リファレンス』

ESSCMD

SETDBSTATEITEM

『Oracle Essbaseテクニカル・リファレンス』

また、キャッシュのサイズを増やすことが必要な場合もあります。キャッシュのサイズ設定を参照してください。

カーネルのコンポーネントの理解

カーネルには、データの取得および保管に関するすべての処理を制御するコンポーネントが含まれています:

  • インデックス・マネージャは、要求されたデータの場所を検索および追跡します。インデックス・マネージャを参照してください。

  • インデックス・マネージャの一部である割当てマネージャは、領域を割り当て、一部のファイル操作を管理します。割当てマネージャを参照してください。

  • データ・ブロック・マネージャは、インデックスによってポイントされたデータを取得し、そのデータを保管します。データ・ブロック・マネージャを参照してください。

  • LROマネージャは、LROの取得および格納を処理します。LROマネージャを参照してください。

  • ロック・マネージャは、同時データ・アクセスを規制するためのデータ・ブロックのロックを処理します。ロック・マネージャを参照してください。

  • トランザクション・マネージャは、トランザクションを追跡し、内部のコミットおよび中止操作を処理します。トランザクション・マネージャを参照してください。

インデックス・マネージャ

インデックス・マネージャは、データベース・インデックスを管理し、Essbaseのデータ・ブロックをすばやく検索するための方法を提供します。インデックス・マネージャは、データベース・インデックスのどの部分をインデックス・キャッシュ内にキャッシュするかを決定し、そのインデックス・キャッシュを管理します。

表150は、インデックス・マネージャが制御するコンポーネントを示しています:

表 150. インデックス・マネージャのコンポーネント

コンポーネント

説明

インデックス

Essbaseでデータを検索および取得するために使用する方法。インデックスという用語は、インデックス・ファイルのことも指します。

インデックス・ファイル

Essbaseでデータ取得情報を保管するために使用するファイル。ディスク上に存在し、インデックス・ページを含みます。Essbaseでは、essxxxxx.ind(xxxxxは番号)の命名ルールを使用して、各ディスク・ボリューム上でインデックス・ファイルに漸増的に名前が付けられます。各ディスク・ボリューム上の最初のインデックス・ファイルには、ess00001.indという名前が付けられます。

インデックス・ページ

インデックス・ファイルの下位区分。データ・ブロックを指すインデックス・エントリが保管されています。

インデックス・エントリ

データ・ブロックへのポインタ。疎次元のすべての交差に対してインデックス項目が存在します。

インデックス・キャッシュ

インデックス・ページを保持するメモリー内のバッファ。

インデックスという用語は、単一のデータベースのすべてのインデックス・ファイルを指します。インデックスは複数のボリュームにまたがることができ、単一のボリューム上に複数のインデックス・ファイルが存在できます。ディスク・スパン・パラメータを指定するには、ディスク・ボリューム設定を使用します。インデックス・キャッシュ・サイズの設定については、インデックス・キャッシュ・サイズの設定を参照してください。ディスク・ボリューム設定を使用したストレージ・スペースの割当てについては、ディスク・ボリュームの指定を参照してください。

割当てマネージャ

インデックス・マネージャの一部である割当てマネージャでは、次のタスクが実行されます:

  • ディスク上のインデックスとデータ・ファイルの生成および拡張

  • ファイルを開く操作と閉じる操作

  • 新しいファイルで使用するボリュームの指定

  • 使用するボリュームの順序

これらのいずれかのタスクを実行する必要がある場合、割当てマネージャでは、次のプロセスを使用してスペースを割り当てます:

  1. 既存のファイル内の空きスペースの使用が試みられます。

  2. 十分な空きスペースが使用できない場合は、既存のファイルの拡張が試みられます。

  3. 既存のファイル内で十分な空きスペースが使用できない場合は、現在のボリューム上にファイルが作成されます。

  4. ファイル拡張をできない場合、または指定されたボリューム上にファイルを作成できない場合は、次に指定されたボリュームの使用が試みられます。

  5. 指定したすべてのボリュームがいっぱいの場合、エラー・メッセージが表示され、トランザクションが異常終了します。

割当てマネージャでは、ストレージのデータベース設定に基づいて、インデックスおよびデータ・ファイル用のスペースが割り当てられます。

  現在の値を確認し、新しい値を設定するには、次のツールを使用します:

ツール

トピック

場所

Administration Services

データベース・プロパティの設定

Oracle Essbase Administration Services Online Help

MaxL

alter database

『Oracle Essbaseテクニカル・リファレンス』

ESSCMD

SETDBSTATEITEM 23

『Oracle Essbaseテクニカル・リファレンス』

ディスク・ボリュームの指定を参照してください。

Essbaseでデータが保管される方法については、ストレージの割当てを参照してください。

データ・ブロック・マネージャ

データ・ブロック・マネージャは、データ・ブロックのメモリー内への読込みやデータ・ファイルへの書込み、データ圧縮の処理、およびデータ・ファイルのディスクへの書込みを行います。データ・ブロック・マネージャは、4つのコンポーネントを制御します。次の表は、これらの各コンポーネントを示しています:

表151は、データ・ブロック・マネージャが制御するコンポーネントを示しています:

表 151. データ・ブロック・マネージャのコンポーネント

コンポーネント

説明

データ・ファイル

データ・ブロックを含むファイル。Essbaseは、データのロード時にデータ・ファイルを生成してディスクに保管します。Essbaseは、データ・ファイルにessxxxxx.pagという漸増的な名前を付けます。ここで、xxxxxは00001から始まる数字です。

データ・ブロック

Essbase内のプライマリ・ストレージ・ユニット。データ・ブロックは、疎次元の特定の交差に対応する密次元のセルを表す多次元の配列です。

データ・キャッシュ

非圧縮データ・ブロックを保持するメモリー内のバッファです。

データ・ファイル・キャッシュ

圧縮されたデータ・ファイル(.pag)を保持する、メモリー内のバッファ。

データ・ファイル・キャッシュのサイズによって、一度にメモリー内に収容できるデータ・ファイル内のデータ量が決定されます。データ・キャッシュ・サイズとデータ・ブロック・サイズによって、一度にメモリー内に収容できるデータ・ブロック数が決定されます。単一のデータベースのデータ・ファイルが複数のボリュームにまたがることができ、また同じボリューム上に複数のデータベースを配置できます。データ・ファイル・キャッシュ・サイズの設定およびデータ・キャッシュ・サイズの設定を参照してください。また、ディスク・ボリュームの指定も参照してください。

LROマネージャ

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)が保持されています。

コミット操作およびリカバリについては、クラッシュしたデータベースのリカバリを参照してください。

カーネル起動の理解

カーネル起動中のイベントのシーケンスは次のとおりです:

  1. Essbaseサーバーが開始された後、ユーザーがクライアントからこのサーバーに接続します。

  2. ユーザーがデータベースを起動します。

  3. Essbaseによってデータベースがロードされます。

  4. Essbaseエージェントによって、このサーバーにデータベース設定が渡されます。

  5. カーネルによって、初期化プロセスが開始されます。

  6. カーネルによって、カーネルのコンポーネント(インデックス・マネージャ、ロック・マネージャ、LROマネージャ、データ・ブロック・マネージャおよびトランザクション・マネージャ)が起動されます。

起動中にエラーが発生すると、Essbaseカーネルは自身をシャットダウンします。

データベース設定の優先度の理解

Essbaseでは、essbase.cfgファイルで、一部のデータベース・ストレージ設定のデフォルト値が提供されます。デフォルト設定のままにすることも、次の2つの方法で値を変更することもできます:

  • essbase.cfgファイル内の値を変更することで、Essbaseサーバー上のすべてのデータベースのストレージ設定を定義できます。

  • データベース設定の指定および変更で指定されている任意の方法を使用すると、単一のデータベースのストレージ設定を定義できます。

個々のデータベースを変更すると、essbase.cfgの設定および関連するデータベースのEssbaseのデフォルト値が完全に上書きされ、次の変更または破棄まで永続的に適用されます。

MaxLまたは管理サービス・コンソールを使用してデータベース・レベルで設定を変更すると、これらの変更は、表152に示すように、異なるタイミングで有効になります:

表 152. データベース設定の優先度

設定

設定が有効になる時期

  • インデックス・キャッシュ

  • データ・ファイル・キャッシュ

  • データ・キャッシュ

  • キャッシュ・メモリーのロック

  • ディスク・ボリューム

データベースを停止して再起動した後

分離レベル・パラメータ、並行性パラメータ

値を設定後、アクティブなトランザクションが初めて存在しなくなった時点

その他のすべての設定

即時

essbase.cfg内のこれらのデータベース設定を手動で変更した場合は、変更を有効にするために、関連するアプリケーションを停止して再起動する必要があります。

注:

インデックス・ページのサイズは、8KBに固定されています。これは、データベースの移行を簡単にすると同時に、入出力のオーバーヘッドを削減するためです。

Essbaseによる設定の読取り方法の理解

Essbaseでは、ユーザーがEssbaseサーバーを開始し、データベース設定の指定および変更で説明されている方法を使用して作成した設定をデータベースに適用した時点でデータベース設定の指定および変更が読み取られます。

Administration Services、ESSCMDまたはMaxLを使用して指定したデータベース設定は、データベースの設定を適用した後にessbase.cfg内の設定を変更した場合でも、常にessbase.cfg設定を上書きします。Essbaseでessbase.cfgが使用されるようにするには設定を削除するしかなく、削除してもEssbaseサーバーを再起動しないと有効になりません。

最後に入力された設定の表示

  最後に入力された設定を表示するには、次のツールを使用します:

ツール

トピック

場所

Administration Services

データベース・プロパティの設定

Oracle Essbase Administration Services Online Help

MaxL

display database

『Oracle Essbaseテクニカル・リファレンス』

ESSCMD

GETDBSTATE

GETDBINFO

『Oracle Essbaseテクニカル・リファレンス』

データベース設定のカスタマイズ

Essbaseサーバー上の各データベースの設定をカスタマイズできます。この項の情報は、各設定によって制御される内容や、各設定の指定方法を理解するのに役立ちます。また、いくつかの例も示されています。パフォーマンスに関連した設定の表については、Essbaseのパフォーマンスの向上。を参照してください。

注:

Essbaseサーバー全体に適用される設定は、essbase.cfgで構成します。詳細は、『Oracle Essbaseテクニカル・リファレンス』を参照してください。

表153に、カスタマイズできる主要なデータベース設定を示します:

表 153. 主要なカーネル設定

設定

参照

インデックス・キャッシュ・サイズ

インデックス・キャッシュ・サイズの設定

データ・ファイル・キャッシュ・サイズ

データ・ファイル・キャッシュ・サイズの設定

データ・キャッシュ・サイズ

データ・キャッシュ・サイズの設定

キャッシュ・メモリーのロック

キャッシュ・メモリーのロックを使用するかどうかの決定

ディスク・ボリューム

ストレージの割当て

データ圧縮

データ圧縮

分離レベル

分離レベルの理解

次の項では、カーネル設定の変更方法について説明し、例を示します。

データベース設定の指定および変更

データベース設定を変更する前に、Essbaseの別の部分で変更された設定の優先度や、Essbaseによるこれらの設定の読取り方法に関する情報を確認してください:

  ほとんどのデータベース設定の指定に、次のツールを使用します:

ツール

トピック

場所

Administration Services

データベース・プロパティの設定

Oracle Essbase Administration Services Online Help

MaxL

alter database

『Oracle Essbaseテクニカル・リファレンス』

ESSCMD

SETDBSTATEITEM

SETDBSTATE

『Oracle Essbaseテクニカル・リファレンス』

これらの方法により、同じデータベース設定を変更するための異なる方法が提供されます。まれに、essbase.cfgを使用して設定を指定することもあります。

注意

以前のバージョンのEssbaseでは、Essbaseサーバー上のessbase.cfgファイルで多くのデータベース設定を指定できました。バージョン5.x以降では、ほとんどの.cfg設定がEssbaseによって上書きされます。より新しいバージョンのEssbaseによる設定の処理方法の説明については、データベース設定の優先度の理解およびEssbaseによる設定の読取り方法の理解を参照してください。

MaxLのalter databaseの使用

変更するデータベース設定ごとに個別の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言語リファレンス」を参照してください。

ESSCMDでのSETDBSTATEITEMの使用

単純なアイテムの場合は、次のように、コマンド、パラメータを表すアイテム番号、アプリケーション、データベースおよびパラメータの値を指定します:

      SETDBSTATEITEM 2 "SAMPLE" "BASIC" "Y";
   

分離レベル(アイテム18)など複数の値を設定する必要のあるパラメータには、値を複数指定します。次の例で「BASIC」の後の値はすべてパラメータです:

      SETDBSTATEITEM 18 "SAMPLE" "BASIC" "1" "Y" "-1";
   

パラメータ番号がわからない場合は、その番号を省略すると、すべてのパラメータとそれに対応する番号がEssbaseによってリストされます。また、Essbaseによって、データベースとアプリケーション名の入力も求められます。

各パラメータには、別個のSETDBSTATEITEMコマンドを使用します。複数のパラメータ番号を、同じ行で続けることはできません。

SETDBSTATEコマンドとSETDBSTATEITEMコマンドのパラメータについては、『Oracle Essbaseテクニカル・リファレンス』を参照してください。

注:

SETDBSTATEITEMやSETDBSTATEは、指定されたデータベースにのみ影響を与えます。

SETDBSTATEITEM (またはSETDBSTATE)をバッチ・スクリプトに含めることができます。バッチ処理の詳細は、バッチ・プロセスにおけるスクリプト・ファイルおよびバッチ・ファイルの使用を参照してください。特定のESSCMD構文については、『Oracle Essbaseテクニカル・リファレンス』を参照してください。