Oracle® Fusion Middleware Oracle Business Intelligence Discoverer管理者ガイド 11gリリース1 (11.1.1) E51906-01 |
|
前 |
次 |
この章では、ユーザーによるワークブックのスケジュールを可能にする方法について説明します。この章の内容は次のとおりです。
ワークブックとは、Discovererワークシートの集合です。ワークブックは本来、クエリー定義を含みます。Discovererエンド・ユーザーは、主にデータベースにワークブックを格納できます。また、Discoverer Desktopでは、ユーザーは各自のPCまたはネットワーク・ファイル・サーバーにもワークブックを格納できます。
スケジュール・ワークブックとは、特定の日付、時刻および間隔で自動的に実行されるように、ユーザーにより設定されたワークブックです。スケジュール・ワークブックは、データベース・サーバー上のプロセス・キューに配置されます。エンド・ユーザーは、Discoverer PlusおよびDiscoverer Desktopを使用してワークブックをスケジュールできます。Discovererマネージャは、Discoverer Administratorを使用してスケジュール・ワークブックの監視とメンテナンスを行うことができます。
次の点に注意してください。
ユーザーは、Discovererのコマンドライン・オプションを使用してバックグラウンドでワークブックを実行できます(Discoverer Desktopのみ)。このように実行するワークブックは、スケジュール・ワークブックではありません。
スケジュール・ワークブック、スケジュール情報およびスケジュール・ワークブックの結果は、ビジネスエリアのエクスポート時にエクスポートされません。
スケジュール・ワークブックで使用されるEULのオブジェクトが、ワークブックのスケジュール時および結果セットの表示時との間に変更された場合、スケジュール・ワークブックの状態が、そのEULが変更されたことを示すように設定されます。
以前のリリースのDiscovererとの互換性の詳細は、「スケジュール・ワークブックおよびDiscoverer 10.1.2とOracle9iより前のデータベース・リリースとの間の互換性」を参照してください。
Discovererエンド・ユーザーにとって、ワークブックをスケジュールできることは次のようなレポートの実行に役立ちます。
実行に時間がかかるレポート
定期的な間隔で実行する必要があるレポート
たとえば、Discovererエンド・ユーザーが、完了するまでに時間がかかるレポートを実行する場合について考えます。ユーザーは、レポートを深夜に実行してその結果を翌朝表示するようにスケジュールできます。
Discovererマネージャにとっては、ワークブックのスケジュールを行うと長時間のクエリー実行によるシステムのパフォーマンス低下を避けられるため、便利です。ユーザーにワークブック(すべてのワークブック、あるいは指定した予測時間を超えるワークブックのみ)をスケジュールさせたり、スケジュール・ワークブックの実行を許可する間隔を指定できます。
次の表は、エンド・ユーザーがDiscoverer Plusのワークブックをスケジュールするときに実行される処理を示しています。
順序 | 操作 | 注意 |
---|---|---|
1. | ユーザーが、スケジュール・ワークブックに含めるワークシート(1つまたは複数)を選択します。 | なし |
2. | ユーザーが、スケジュール・ワークブックを実行する日付、時間および間隔を指定します。 | なし |
3. | Discoverer Plusにより、スケジュール・ワークブックの数がユーザーによって指定された制限を超えていないことが確認されます。 | スケジュール・ワークブックの数を制限すると、一度にメンテナンスできるスケジュール・ワークブックの数が限定されます。Discovererマネージャは、「権限」ダイアログ: 「権限」タブでこの制限を指定します。ワークブックの数が制限を超えた場合、Discoverer Plusによりメッセージが表示され、ワークブックはスケジュールされません。 |
4. | Discovererにより、スケジュール・ワークブックがOracleデータベース・カーネル内のDBMS_JOBに追加されます。 | なし |
5. | ジョブ・キュー・プロセスが定期的にアクティブになり、キュー内の次のジョブが実行されます。 | スケジュール・ワークブック全体がサーバー上で処理されます。 |
6. | データベース・テーブルが作成され、スケジュール・ワークブックの出力または結果セットがデータベース・テーブルに含められます。 | 結果セットは、Discovererマネージャが指定したスキーマの下に格納されます。詳細は、「スケジュール・ワークブックの結果の格納場所」を参照してください。 |
7. | ユーザーが、スケジュール・ワークブックを参照できます。 | なし |
8. | ユーザーが、不要になった結果セットを削除できます。この時点で、テーブルが削除されます。 | Discovererマネージャは、ユーザーのスケジュール・ワークブックの結果が自動的に削除されるまでデータベースに残しておく期間を指定できます(「「権限」ダイアログ: 「権限」タブ」を参照)。 |
Discovererでは、スケジュール・ワークブックの結果はデータベース・テーブルに格納されます。エンド・ユーザーによるワークブックのスケジュールを可能にするには、これらのテーブルを所有するデータベース・ユーザー(スキーマ)を決定する必要があります。次の表に示すように、2つの選択肢があります。
所有者 | 注意 |
---|---|
スケジュール・ワークブックを実行するスキーマ | 結果セットの格納場所をエンド・ユーザーのスキーマに指定するメリットは、データベースの制限をエンド・ユーザーがデータベースに格納できるデータの最大量に指定できることです。結果セットがエンド・ユーザーのスキーマの下に格納された場合、個々のエンド・ユーザーが結果セットを格納できる最大領域を制御してください。この領域に格納されるスケジュール・ワークブックをエンド・ユーザーが作成した場合、そのエンド・ユーザーのスキーマのみが影響を受けます。
デメリットは、メンテナンスのオーバーヘッドが増すことです。 注意: このオプションは、Oracle Applicationsユーザーにはお薦めしません。 |
スケジュール・ワークブック結果スキーマ | 結果セットをスケジュール・ワークブック結果スキーマに格納するメリットは、複数のデータベース・ユーザー・スキーマを使用するよりも一般に管理が簡単であるということです。また、各エンド・ユーザーが、スケジュール・ワークブックを実行するための追加データベース権限を設定する必要がないこともメリットです。
デメリットは、割当て領域が共有されるため、単一のエンド・ユーザーにより領域が消耗されてしまう可能性があることです。 |
スケジュール・ワークブックの結果の格納場所を指定する方法の詳細は、「スケジュール・ワークブックの結果を含むテーブルの所有者を指定する方法」を参照してください。
エンド・ユーザーがワークブックをスケジュールする前に、次の作業が必要です。
スケジュール・ワークブックの機能を有効にするようにデータベースを構成します。構成手順は次のとおりです。
DBMS_JOBパッケージがデータベースにインストールされていることを確認し、インストールされていない場合はインストールします(詳細は、「DBMS_JOBパッケージがインストールされていることを確認する方法」を参照)。
スケジュール・ワークブックの結果を含むテーブルを所有するデータベース・ユーザーを指定します(詳細は、「スケジュール・ワークブックの結果を含むテーブルの所有者を指定する方法」を参照)。
結果セットを所有するデータベース・ユーザーに、ビューV_$PARAMETERに対するSELECT権限を付与します(詳細は、「スケジュール・ワークブックを実行可能にするためのシノニムv$parameterに対するSELECT権限の付与方法」を参照)。
データベース・ユーザーに「ワークブックのスケジュール設定」権限を付与します(詳細は、「ユーザーまたはロール(職責)が実行できる作業の指定方法」を参照)。
エンド・ユーザーがワークブックをスケジュールする前に、DBMS_JOBパッケージがデータベースにインストールされている必要があります。DBMS_JOBパッケージがインストールされていない場合は、インストールします。
DBMS_JOBパッケージがインストールされていることを確認する手順は次のとおりです。
SQL*Plusを起動し(まだ実行されていない場合)、データベース管理者として接続します。
SQL*Plusがすでに実行されている場合は、コマンド・プロンプトで次のように入力します。
SQL> CONNECT dba_user/dba_pw@database;
dba_userはデータベース管理者、dba_pwはデータベース管理者のパスワード、databaseは接続先データベースです。
コマンド・プロンプトで次のように入力します。
SQL> select * from all_objects where object_name='DBMS_JOB' and object_type = 'PACKAGE';
この文で1つ以上の行が返された場合、DBMS_JOBパッケージはデータベースにインストールされています。
この文で行が返されなかった場合、DBMS_JOBパッケージはインストールされていません。ユーザーがワークブックをスケジュールする前に、DBMS_JOBパッケージをインストールする必要があります。
インストールされていない場合にDBMS_JOBパッケージをインストールする手順は次のとおりです(リリース9.2.0.7以降のOracleデータベースの場合)。
SQL*Plusを起動し(まだ実行されていない場合)、SYSユーザーあるいはSYSDBA権限を付与されたユーザーとして接続します。
SQL*Plusがすでに実行されている場合は、コマンド・プロンプトで次のように入力します。
SQL> CONNECT sys/sys_pw@database AS SYSDBA;
sysはSYSユーザー、sys_pwはSYSユーザーのパスワードです。
コマンド・プロンプトで次のように入力します。
SQL> start <ORACLE_HOME>/rdbms/admin/dbmsjob.sql;
コマンド・プロンプトで次のように入力します。
SQL> start <ORACLE_HOME>/rdbms/admin/prvtjob.plb;
スケジュール・ワークブックの結果は、データベース・テーブルに格納されます。Discovererのデフォルト動作では、スケジュール・ワークブックはEUL所有者スキーマに格納されます。エンド・ユーザーがワークブックをスケジュールする前に、これらのテーブルを所有するデータベース・ユーザーを決定する必要があります。次の2つの選択肢があります。
スケジュール・ワークブックを実行するデータベース・ユーザー
スケジュール・ワークブック結果スキーマ
これら2つの選択肢の詳細は、「スケジュール・ワークブックの結果の格納場所」を参照してください。
どちらを選択する場合でも、スケジュール・ワークブックの結果を含むテーブルを所有するデータベース・ユーザーは、一定のデータベース権限を持つ必要があります。
ワークブックをスケジュールするデータベース・ユーザーが、そのワークブックの結果を含むデータベース・テーブルを所有するように指定する方法
ワークブックの結果を含むデータベース・テーブルを所有するデータベース・ユーザーを指定する手順は次のとおりです。
SQL*Plusを起動し(まだ実行されていない場合)、データベース管理者として接続します。
SQL*Plusがすでに実行されている場合は、コマンド・プロンプトで次のように入力します。
SQL> CONNECT dba_user/dba_pw@database;
dba_userはデータベース管理者、dba_pwはデータベース管理者のパスワードです。
コマンド・プロンプトで次のように入力します。
SQL> grant CREATE PROCEDURE to <user name>; SQL> grant CREATE TABLE to <user name>; SQL> grant CREATE VIEW to <user name>;
<user name>は、ワークブックをスケジュールするデータベース・ユーザーの名前です。
これらの権限は、データベース・ロールではなくデータベース・ユーザーに直接付与する必要があります。
スクリプトを使用して、スケジュール・ワークブック結果スキーマ(ワークブックをスケジュールするデータベース・ユーザーではなく)が、スケジュール・ワークブックの結果テーブルを所有するように指定する方法
スケジュール・ワークブック結果スキーマが、スケジュール・ワークブックの結果テーブルを所有するように指定する手順は次のとおりです。
SQL*Plusを起動し(まだ実行されていない場合)、データベース管理者として接続します。
SQL*Plusがすでに実行されている場合は、コマンド・プロンプトで次のように入力します。
SQL> CONNECT dba_user/dba_pw@database;
dba_userはデータベース管理者、dba_pwはデータベース管理者のパスワードです。
コマンド・プロンプトで次のように入力します。
SQL> start<ORACLE_HOME>\discoverer\util\batchusr.sql;
注意:
batchusr.sql
スクリプトを実行するには、EUL所有者のユーザー名とパスワードを知っておく必要があります。
Oracle Applicationsユーザーは、batchuser_app.sql
スクリプトを使用する必要があります。batchusr_app.sql
スクリプトを実行するには、Oracle Applications Foundation Name (FNDNAM)を知っておく必要があります。FNDNAMが不明な場合は、データベース管理者に問い合せてください。
(batchusr_app.sql
スクリプトを実行する場合) Oracle Applications Foundation Name (FNDNAM)を入力します。詳細はデータベース管理者に問い合せてください。
batchusr.sql
またはbatchusr_app.sql
スクリプトにより作成されるスケジュール・ワークブック結果スキーマのユーザー名、パスワードおよびデータベース接続詳細を入力します。
Oracleデータベースでは、パスワードの大文字と小文字が区別されます(Enterprise Editionリリース11.1以降の場合)。
(オプション)スケジュール・ワークブック結果スキーマ用の表領域設定を変更します。
注意: これらの設定に不明な点がある場合は、データベース管理者に問い合せてください。
スケジュール・ワークブック結果スキーマがアクセス権を持つEULの所有ユーザー名を入力します。
注意: スクリプトにより、スケジュール・ワークブック結果スキーマが作成され、次のデータベース権限が付与されます。
CREATE PROCEDURE
CREATE TABLE
CREATE VIEW
SELECT ANY TABLE
batchusr.sqlスクリプトにより作成されるスケジュール・ワークブック結果スキーマにSELECT ANY TABLEデータベース権限が付与され、ワークブックのスケジュールに必要な基礎データにアクセスできるようになります。この権限がないと、このデータベース・ユーザーの基礎データへのアクセスが制限されることがあります。
スケジュール・ワークブック結果スキーマが基礎データに対するSELECT ANY TABLEデータベース権限を持たないようにするには、この権限を手動で取り消す必要があります。
前述の手順(batchusr.sql
またはbatchusr_app.sql
スクリプトの実行時)で使用したEUL所有者としてDiscoverer Administratorに接続します。
Discoverer Administratorで、「ツール」→「権限」を選択します。「権限」ダイアログ: 「権限」タブが表示されます。
Discoverer Administratorを使用して、データベースに作成されるスケジュール・ワークブックの結果テーブルを所有するデータベース・ユーザーを選択する必要があります。
「スケジュール制限を表示」フィールドの隣の「選択」ボタンをクリックすると、EUL所有者を選択できる「ユーザー/ロールの選択」ダイアログが表示されます。
「すべてのワークブックの結果を格納するテーブルを所有するユーザーを選択します。」ドロップダウン・リストを使用して、batchusr.sql
またはbatchusr_app.sql
スクリプトで作成した、スケジュール・ワークブック結果スキーマを選択します。
「OK」をクリックします。
これで、スケジュール・ワークブック結果スキーマの作成にはスクリプトbatchusr.sqlを使用し、EUL所有者に対して使用されるスケジュール・ワークブック結果スキーマの選択には「権限」ダイアログを使用しました。
スケジュール・ワークブックの権限の詳細は、「スケジュール・ワークブック制限の設定方法」を参照してください。
注意
batchusr.sql
またはbatchusr_app.sql
スクリプトにより作成されたスケジュール・ワークブック結果スキーマは、1つのEULへのアクセス権のみ持つことができます。
Discovererエンド・ユーザーは、使用可能な結果セット領域に格納されるスケジュール・ワークブックを実行できることに注意してください。その他のデータベース・ユーザーは、この領域が空くまで、スケジュール・ワークブックを実行できません。
batchusr.sql
またはbatchusr_app.sql
スクリプトにより作成されたスケジュール・ワークブック結果スキーマで、Discoverer Plusを使用してワークブックを直接スケジュールすることはできません。
ビューv_$parameterに対するSELECT権限をスケジュール・ワークブック結果セット・スキーマ名に付与することで、シノニムv$parameterに対するSELECT権限を付与します。
スケジュール・ワークブックを実行するには、スケジュール・ワークブック結果スキーマに、v_$parameterに対するSELECT権限を付与する必要があります。ただし、v_$parameterはSYSユーザーが所有するビューで、パブリック・アクセス権がないため、SYSユーザーは、v_$parameterに対するSELECT権限をスケジュール・ワークブック結果スキーマ名に明示的に付与する必要があります。
注意
後述の<user>は、batchusr.sqlスクリプトによって作成されるスケジュール・ワークブック結果スキーマ名を示します(詳細は、「スケジュール・ワークブックの結果を含むテーブルの所有者を指定する方法」を参照)。
スケジュール・ワークブックを実行するために、SQL*Plusを使用してv_$parameterに対するSELECT権限を手動で付与する手順は次のとおりです(リリース9.2.0.7以降のOracleデータベースの場合)。
SQL*Plusを起動し(まだ実行されていない場合)、SYSユーザーあるいはSYSDBA権限を付与されたユーザーとして接続します。
SQL*Plusがすでに実行されている場合は、コマンド・プロンプトで次のように入力します。
SQL> CONNECT sys/sys_pw@database AS SYSDBA;
sysはSYSユーザー、sys_pwはSYSユーザーのパスワードです。
コマンド・プロンプトで次のように入力します。
SQL> grant SELECT on v_$parameter to <user>;
注意: <user>がシノニムv$parameterから選択できるようにするには、ビューv_$parameterに対するSELECT権限を付与する必要があります。
注意: SELECT ON v_$parameterを付与するには、SYSユーザーとしてログインする必要があります。SYSユーザーとしてログインできない場合、またはSYSのユーザー名とパスワードが不明な場合は、データベース管理者に問い合せてください。
SQL*Plusを使用して、v_$parameterに対するSELECT権限が付与されているかどうかを確認する手順は次のとおりです。
SQL*Plusを起動し(まだ実行されていない場合)、<user>として接続します。
SQL*Plusがすでに実行されている場合は、コマンド・プロンプトで次のように入力します。
SQL> CONNECT <user>/<user_pw>@database;
userはスケジュール・ワークブック結果スキーマ名、user_pwはユーザー・パスワードです。
コマンド・プロンプトで次のように入力します。
SQL> select count (*) from v$parameter;
SELECT権限が<user>に付与されている場合は、列数が表示されます。
SELECT権限が<user>に付与されていない場合は、「ORA-01031: 権限が不足しています。」エラー・メッセージが表示されます。
Discovererマネージャは、現在スケジュールされているワークブックの状態を監視し、次の作業を実行する必要があります。
正常に実行されなかったスケジュール・ワークブックに関するエラー・メッセージの表示
スケジュール・ワークブック結果のデータベースからの削除
スケジュール・ワークブックのプロセス・キューからの削除
スケジュール・ワークブックの設定の編集
注意: Oracle ApplicationsモードEULを持っている場合は、管理権限のあるアプリケーション・ユーザーとしてログインし、スケジュール・ワークブックの表示と管理を行う必要があります。
スケジュール・ワークブックの表示と管理を行う手順は次のとおりです。
「ツール」→「スケジュール・ワークブックの管理」を選択して、「スケジュール・ワークブックの管理」ダイアログを表示します。
「選択」をクリックすると、「ユーザー/ロールの選択」ダイアログが表示されます。このダイアログで、「ワークブックの表示」フィールドにスケジュール・ワークブックを表示するユーザーまたはロールを検索して選択できます。
「検索文字列」フィールドに検索基準を入力し、「実行」をクリックします。
「結果」リストに検索結果が表示されます。
「結果」リストからユーザーまたはロールを選択し、「OK」をクリックします。
「結果リスト」フィールドで選択したユーザーが所有するスケジュール・ワークブックの結果が、次のスクリーンショットに表示されます。
ヒント: 次のことができます。
「すべてのユーザーを選択」チェック・ボックスを選択することにより、すべてのスケジュール・ワークブックを表示できます。
列ヘッダーをクリックすることにより、様々な列を使用してリストをソートできます。
現在選択されているスケジュール・ワークブックの説明(1つ)を「説明」フィールドに表示できます。
(オプション)正常に実行されなかったスケジュール・ワークブックに関するエラー・メッセージを表示するには、そのワークブックを選択し、「エラーを表示」をクリックします。
「エラーを表示」ボタンを使用できるのは、クエリーの実行中にエラーが発生したことをスケジュール・ワークブックの「状態」に示すように設定されている場合のみです。
(オプション)スケジュール・ワークブックが実行されないようにするには、プロセス・キューからそのワークブックを削除します。
スケジュール・ワークブックを選択します。
「スケジュール取消し」をクリックします。
「はい」をクリックして、スケジュール・ワークブックを削除することを確認します。
(オプション)スケジュール・ワークブックの結果をデータベースから削除するには(そのワークブックの実行後)、そのワークブックを選択し、「削除」をクリックします。
(オプション)スケジュール・ワークブックのスケジュール情報を編集するには、そのワークブックを選択し、「編集」をクリックして、「ワークブックのスケジュール」ダイアログを表示します。その後、次の作業を行います。
「ワークブックのスケジュール」ダイアログ: 「一般」タブを使用して、スケジュール・ワークブックに含まれているシートを表示し、スケジュール時間と繰返し間隔を設定します。
「ワークブックのスケジュール」ダイアログ: 「一般」タブを使用して、スケジュール・ワークブックの名前の表示、説明の表示と編集、最新結果を保存するかどうかの選択、および結果を自動削除するまでの間隔の設定を行います。
(オプション)「スケジュール・ワークブックの管理」ダイアログで行った変更を反映するには、「リフレッシュ」をクリックします。
「閉じる」をクリックして、「スケジュール・ワークブックの管理」ダイアログを閉じます。
注意
実行されたスケジュール・ワークブックを選択した場合のみ、「削除」ボタンが表示されます。
スケジュール・ワークブックの使用するEULのオブジェクトが、ワークブックのスケジュール後、結果セットが表示されるまでに変更された場合、スケジュール・ワークブックの「状態」に、EULが変更されていることが示されます。