ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Business Intelligence Discoverer管理者ガイド
11gリリース1 (11.1.1)
E51906-01
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

8 ワークブックのスケジュール

この章では、ユーザーによるワークブックのスケジュールを可能にする方法について説明します。この章の内容は次のとおりです。

8.1 ワークブックおよびスケジュール・ワークブック

ワークブックとは、Discovererワークシートの集合です。ワークブックは本来、クエリー定義を含みます。Discovererエンド・ユーザーは、主にデータベースにワークブックを格納できます。また、Discoverer Desktopでは、ユーザーは各自のPCまたはネットワーク・ファイル・サーバーにもワークブックを格納できます。

スケジュール・ワークブックとは、特定の日付、時刻および間隔で自動的に実行されるように、ユーザーにより設定されたワークブックです。スケジュール・ワークブックは、データベース・サーバー上のプロセス・キューに配置されます。エンド・ユーザーは、Discoverer PlusおよびDiscoverer Desktopを使用してワークブックをスケジュールできます。Discovererマネージャは、Discoverer Administratorを使用してスケジュール・ワークブックの監視とメンテナンスを行うことができます。

次の点に注意してください。

8.2 ワークブックをスケジュールする理由

Discovererエンド・ユーザーにとって、ワークブックをスケジュールできることは次のようなレポートの実行に役立ちます。

たとえば、Discovererエンド・ユーザーが、完了するまでに時間がかかるレポートを実行する場合について考えます。ユーザーは、レポートを深夜に実行してその結果を翌朝表示するようにスケジュールできます。

Discovererマネージャにとっては、ワークブックのスケジュールを行うと長時間のクエリー実行によるシステムのパフォーマンス低下を避けられるため、便利です。ユーザーにワークブック(すべてのワークブック、あるいは指定した予測時間を超えるワークブックのみ)をスケジュールさせたり、スケジュール・ワークブックの実行を許可する間隔を指定できます。

8.3 エンド・ユーザーがワークブックをスケジュールする際の処理

次の表は、エンド・ユーザーがDiscoverer Plusのワークブックをスケジュールするときに実行される処理を示しています。

順序 操作 注意
1. ユーザーが、スケジュール・ワークブックに含めるワークシート(1つまたは複数)を選択します。 なし
2. ユーザーが、スケジュール・ワークブックを実行する日付、時間および間隔を指定します。 なし
3. Discoverer Plusにより、スケジュール・ワークブックの数がユーザーによって指定された制限を超えていないことが確認されます。 スケジュール・ワークブックの数を制限すると、一度にメンテナンスできるスケジュール・ワークブックの数が限定されます。Discovererマネージャは、「権限」ダイアログ: 「権限」タブでこの制限を指定します。ワークブックの数が制限を超えた場合、Discoverer Plusによりメッセージが表示され、ワークブックはスケジュールされません。
4. Discovererにより、スケジュール・ワークブックがOracleデータベース・カーネル内のDBMS_JOBに追加されます。 なし
5. ジョブ・キュー・プロセスが定期的にアクティブになり、キュー内の次のジョブが実行されます。 スケジュール・ワークブック全体がサーバー上で処理されます。
6. データベース・テーブルが作成され、スケジュール・ワークブックの出力または結果セットがデータベース・テーブルに含められます。 結果セットは、Discovererマネージャが指定したスキーマの下に格納されます。詳細は、「スケジュール・ワークブックの結果の格納場所」を参照してください。
7. ユーザーが、スケジュール・ワークブックを参照できます。 なし
8. ユーザーが、不要になった結果セットを削除できます。この時点で、テーブルが削除されます。 Discovererマネージャは、ユーザーのスケジュール・ワークブックの結果が自動的に削除されるまでデータベースに残しておく期間を指定できます(「「権限」ダイアログ: 「権限」タブ」を参照)。

8.4 スケジュール・ワークブックの結果の格納場所

Discovererでは、スケジュール・ワークブックの結果はデータベース・テーブルに格納されます。エンド・ユーザーによるワークブックのスケジュールを可能にするには、これらのテーブルを所有するデータベース・ユーザー(スキーマ)を決定する必要があります。次の表に示すように、2つの選択肢があります。

所有者 注意
スケジュール・ワークブックを実行するスキーマ 結果セットの格納場所をエンド・ユーザーのスキーマに指定するメリットは、データベースの制限をエンド・ユーザーがデータベースに格納できるデータの最大量に指定できることです。結果セットがエンド・ユーザーのスキーマの下に格納された場合、個々のエンド・ユーザーが結果セットを格納できる最大領域を制御してください。この領域に格納されるスケジュール・ワークブックをエンド・ユーザーが作成した場合、そのエンド・ユーザーのスキーマのみが影響を受けます。

デメリットは、メンテナンスのオーバーヘッドが増すことです。

注意: このオプションは、Oracle Applicationsユーザーにはお薦めしません。

スケジュール・ワークブック結果スキーマ 結果セットをスケジュール・ワークブック結果スキーマに格納するメリットは、複数のデータベース・ユーザー・スキーマを使用するよりも一般に管理が簡単であるということです。また、各エンド・ユーザーが、スケジュール・ワークブックを実行するための追加データベース権限を設定する必要がないこともメリットです。

デメリットは、割当て領域が共有されるため、単一のエンド・ユーザーにより領域が消耗されてしまう可能性があることです。


スケジュール・ワークブックの結果の格納場所を指定する方法の詳細は、「スケジュール・ワークブックの結果を含むテーブルの所有者を指定する方法」を参照してください。

8.5 ワークブックをスケジュールするための前提条件

エンド・ユーザーがワークブックをスケジュールする前に、次の作業が必要です。

8.6 DBMS_JOBパッケージがインストールされていることを確認する方法

エンド・ユーザーがワークブックをスケジュールする前に、DBMS_JOBパッケージがデータベースにインストールされている必要があります。DBMS_JOBパッケージがインストールされていない場合は、インストールします。

DBMS_JOBパッケージがインストールされていることを確認する手順は次のとおりです。

  1. SQL*Plusを起動し(まだ実行されていない場合)、データベース管理者として接続します。

    SQL*Plusがすでに実行されている場合は、コマンド・プロンプトで次のように入力します。

    SQL> CONNECT dba_user/dba_pw@database;
    

    dba_userはデータベース管理者、dba_pwはデータベース管理者のパスワード、databaseは接続先データベースです。

  2. コマンド・プロンプトで次のように入力します。

    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データベースの場合)。

  1. SQL*Plusを起動し(まだ実行されていない場合)、SYSユーザーあるいはSYSDBA権限を付与されたユーザーとして接続します。

    SQL*Plusがすでに実行されている場合は、コマンド・プロンプトで次のように入力します。

    SQL> CONNECT sys/sys_pw@database AS SYSDBA;
    

    sysはSYSユーザー、sys_pwはSYSユーザーのパスワードです。

  2. コマンド・プロンプトで次のように入力します。

    SQL> start <ORACLE_HOME>/rdbms/admin/dbmsjob.sql;
    
  3. コマンド・プロンプトで次のように入力します。

    SQL> start <ORACLE_HOME>/rdbms/admin/prvtjob.plb;
    

8.7 スケジュール・ワークブックの結果を含むテーブルの所有者を指定する方法

スケジュール・ワークブックの結果は、データベース・テーブルに格納されます。Discovererのデフォルト動作では、スケジュール・ワークブックはEUL所有者スキーマに格納されます。エンド・ユーザーがワークブックをスケジュールする前に、これらのテーブルを所有するデータベース・ユーザーを決定する必要があります。次の2つの選択肢があります。

これら2つの選択肢の詳細は、「スケジュール・ワークブックの結果の格納場所」を参照してください。

どちらを選択する場合でも、スケジュール・ワークブックの結果を含むテーブルを所有するデータベース・ユーザーは、一定のデータベース権限を持つ必要があります。

ワークブックをスケジュールするデータベース・ユーザーが、そのワークブックの結果を含むデータベース・テーブルを所有するように指定する方法

ワークブックの結果を含むデータベース・テーブルを所有するデータベース・ユーザーを指定する手順は次のとおりです。

  1. SQL*Plusを起動し(まだ実行されていない場合)、データベース管理者として接続します。

    SQL*Plusがすでに実行されている場合は、コマンド・プロンプトで次のように入力します。

    SQL> CONNECT dba_user/dba_pw@database;
    

    dba_userはデータベース管理者、dba_pwはデータベース管理者のパスワードです。

  2. コマンド・プロンプトで次のように入力します。

    SQL> grant CREATE PROCEDURE to <user name>;
    SQL> grant CREATE TABLE to <user name>;
    SQL> grant CREATE VIEW to <user name>;
    

    <user name>は、ワークブックをスケジュールするデータベース・ユーザーの名前です。

    これらの権限は、データベース・ロールではなくデータベース・ユーザーに直接付与する必要があります。

スクリプトを使用して、スケジュール・ワークブック結果スキーマ(ワークブックをスケジュールするデータベース・ユーザーではなく)が、スケジュール・ワークブックの結果テーブルを所有するように指定する方法

スケジュール・ワークブック結果スキーマが、スケジュール・ワークブックの結果テーブルを所有するように指定する手順は次のとおりです。

  1. SQL*Plusを起動し(まだ実行されていない場合)、データベース管理者として接続します。

    SQL*Plusがすでに実行されている場合は、コマンド・プロンプトで次のように入力します。

    SQL> CONNECT dba_user/dba_pw@database;
    

    dba_userはデータベース管理者、dba_pwはデータベース管理者のパスワードです。

  2. コマンド・プロンプトで次のように入力します。

    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が不明な場合は、データベース管理者に問い合せてください。

  3. (batchusr_app.sqlスクリプトを実行する場合) Oracle Applications Foundation Name (FNDNAM)を入力します。詳細はデータベース管理者に問い合せてください。

  4. batchusr.sqlまたはbatchusr_app.sqlスクリプトにより作成されるスケジュール・ワークブック結果スキーマのユーザー名、パスワードおよびデータベース接続詳細を入力します。

    Oracleデータベースでは、パスワードの大文字と小文字が区別されます(Enterprise Editionリリース11.1以降の場合)。

  5. (オプション)スケジュール・ワークブック結果スキーマ用の表領域設定を変更します。

    注意: これらの設定に不明な点がある場合は、データベース管理者に問い合せてください。

  6. スケジュール・ワークブック結果スキーマがアクセス権を持つEULの所有ユーザー名を入力します。

    注意: スクリプトにより、スケジュール・ワークブック結果スキーマが作成され、次のデータベース権限が付与されます。

    • CREATE PROCEDURE

    • CREATE TABLE

    • CREATE VIEW

    • SELECT ANY TABLE

    batchusr.sqlスクリプトにより作成されるスケジュール・ワークブック結果スキーマにSELECT ANY TABLEデータベース権限が付与され、ワークブックのスケジュールに必要な基礎データにアクセスできるようになります。この権限がないと、このデータベース・ユーザーの基礎データへのアクセスが制限されることがあります。

    スケジュール・ワークブック結果スキーマが基礎データに対するSELECT ANY TABLEデータベース権限を持たないようにするには、この権限を手動で取り消す必要があります。

  7. 前述の手順(batchusr.sqlまたはbatchusr_app.sqlスクリプトの実行時)で使用したEUL所有者としてDiscoverer Administratorに接続します。

  8. Discoverer Administratorで、「ツール」→「権限」を選択します。「権限」ダイアログ: 「権限」タブが表示されます。

    Discoverer Administratorを使用して、データベースに作成されるスケジュール・ワークブックの結果テーブルを所有するデータベース・ユーザーを選択する必要があります。

  9. 「スケジュール制限を表示」フィールドの隣の「選択」ボタンをクリックすると、EUL所有者を選択できる「ユーザー/ロールの選択」ダイアログが表示されます。

  10. 「すべてのワークブックの結果を格納するテーブルを所有するユーザーを選択します。」ドロップダウン・リストを使用して、batchusr.sqlまたはbatchusr_app.sqlスクリプトで作成した、スケジュール・ワークブック結果スキーマを選択します。

  11. 「OK」をクリックします。

    これで、スケジュール・ワークブック結果スキーマの作成にはスクリプトbatchusr.sqlを使用し、EUL所有者に対して使用されるスケジュール・ワークブック結果スキーマの選択には「権限」ダイアログを使用しました。

    スケジュール・ワークブックの権限の詳細は、「スケジュール・ワークブック制限の設定方法」を参照してください。

注意

8.8 スケジュール・ワークブックを実行可能にするためのシノニムv$parameterに対するSELECT権限の付与方法

ビューv_$parameterに対するSELECT権限をスケジュール・ワークブック結果セット・スキーマ名に付与することで、シノニムv$parameterに対するSELECT権限を付与します。

スケジュール・ワークブックを実行するには、スケジュール・ワークブック結果スキーマに、v_$parameterに対するSELECT権限を付与する必要があります。ただし、v_$parameterはSYSユーザーが所有するビューで、パブリック・アクセス権がないため、SYSユーザーは、v_$parameterに対するSELECT権限をスケジュール・ワークブック結果スキーマ名に明示的に付与する必要があります。

注意

スケジュール・ワークブックを実行するために、SQL*Plusを使用してv_$parameterに対するSELECT権限を手動で付与する手順は次のとおりです(リリース9.2.0.7以降のOracleデータベースの場合)。

  1. SQL*Plusを起動し(まだ実行されていない場合)、SYSユーザーあるいはSYSDBA権限を付与されたユーザーとして接続します。

    SQL*Plusがすでに実行されている場合は、コマンド・プロンプトで次のように入力します。

    SQL> CONNECT sys/sys_pw@database AS SYSDBA;
    

    sysはSYSユーザー、sys_pwはSYSユーザーのパスワードです。

  2. コマンド・プロンプトで次のように入力します。

    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権限が付与されているかどうかを確認する手順は次のとおりです。

  1. SQL*Plusを起動し(まだ実行されていない場合)、<user>として接続します。

    SQL*Plusがすでに実行されている場合は、コマンド・プロンプトで次のように入力します。

    SQL> CONNECT <user>/<user_pw>@database;
    

    userはスケジュール・ワークブック結果スキーマ名、user_pwはユーザー・パスワードです。

  2. コマンド・プロンプトで次のように入力します。

    SQL> select count (*) from v$parameter; 
    

    SELECT権限が<user>に付与されている場合は、列数が表示されます。

    SELECT権限が<user>に付与されていない場合は、「ORA-01031: 権限が不足しています。」エラー・メッセージが表示されます。

8.9 スケジュール・ワークブックの表示および管理方法

Discovererマネージャは、現在スケジュールされているワークブックの状態を監視し、次の作業を実行する必要があります。

注意: Oracle ApplicationsモードEULを持っている場合は、管理権限のあるアプリケーション・ユーザーとしてログインし、スケジュール・ワークブックの表示と管理を行う必要があります。

スケジュール・ワークブックの表示と管理を行う手順は次のとおりです。

  1. 「ツール」→「スケジュール・ワークブックの管理」を選択して、「スケジュール・ワークブックの管理」ダイアログを表示します。

  2. 「選択」をクリックすると、「ユーザー/ロールの選択」ダイアログが表示されます。このダイアログで、「ワークブックの表示」フィールドにスケジュール・ワークブックを表示するユーザーまたはロールを検索して選択できます。

    図8-1 「ユーザー/ロールの選択」ダイアログ

    図8-1の説明は前後にあります。
  3. 「検索文字列」フィールドに検索基準を入力し、「実行」をクリックします。

    「結果」リストに検索結果が表示されます。

  4. 「結果」リストからユーザーまたはロールを選択し、「OK」をクリックします。

    「結果リスト」フィールドで選択したユーザーが所有するスケジュール・ワークブックの結果が、次のスクリーンショットに表示されます。

    図8-2 「スケジュール・ワークブックの管理」ダイアログ

    図8-2の説明は前後にあります。

    ヒント: 次のことができます。

    • 「すべてのユーザーを選択」チェック・ボックスを選択することにより、すべてのスケジュール・ワークブックを表示できます。

    • 列ヘッダーをクリックすることにより、様々な列を使用してリストをソートできます。

    • 現在選択されているスケジュール・ワークブックの説明(1つ)を「説明」フィールドに表示できます。

  5. (オプション)正常に実行されなかったスケジュール・ワークブックに関するエラー・メッセージを表示するには、そのワークブックを選択し、「エラーを表示」をクリックします。

    「エラーを表示」ボタンを使用できるのは、クエリーの実行中にエラーが発生したことをスケジュール・ワークブックの「状態」に示すように設定されている場合のみです。

  6. (オプション)スケジュール・ワークブックが実行されないようにするには、プロセス・キューからそのワークブックを削除します。

    1. スケジュール・ワークブックを選択します。

    2. 「スケジュール取消し」をクリックします。

    3. 「はい」をクリックして、スケジュール・ワークブックを削除することを確認します。

  7. (オプション)スケジュール・ワークブックの結果をデータベースから削除するには(そのワークブックの実行後)、そのワークブックを選択し、「削除」をクリックします。

  8. (オプション)スケジュール・ワークブックのスケジュール情報を編集するには、そのワークブックを選択し、「編集」をクリックして、「ワークブックのスケジュール」ダイアログを表示します。その後、次の作業を行います。

  9. (オプション)「スケジュール・ワークブックの管理」ダイアログで行った変更を反映するには、「リフレッシュ」をクリックします。

  10. 「閉じる」をクリックして、「スケジュール・ワークブックの管理」ダイアログを閉じます。

注意