主コンテンツへ
Oracle® TimesTen Application-Tier Database Cacheユーザーズ・ガイド
リリース18.1
E98634-04
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

A TimesTen ClassicでOracle Databaseデータをキャッシュするためのプロシージャおよび権限

次の各項では、キャッシュ環境の作成のためのステップおよびそれを実行するために必要な権限について簡単に説明しています。

TimesTen ClassicでOracle Databaseデータをキャッシュするためのクイック・リファレンス

次の項では、TimesTenデータベースにOracle Databaseデータをキャッシュする環境を設定する際に必要なステップを簡単に説明します。各ステップの詳細な説明および例については、第2章「スタート・ガイド」第3章「キャッシュ・インフラストラクチャの設定」および第4章「キャッシュ・グループの定義」を参照してください。

Oracle Databaseで次の手順を実行します。

  1. TimesTen Cache管理オブジェクトの格納に使用するデフォルトの表領域を作成します。

  2. sysユーザーで、キャッシュされたOracle Database表を所有する1人以上のスキーマ・ユーザーを作成します(既存のユーザーも可能です)。

  3. sysユーザーとして、Oracle Databaseオブジェクトを作成、所有および保持するキャッシュ管理ユーザーを作成しますが、これらのOracle Databaseオブジェクトには、特定のキャッシュ・グループ・タイプの定義済動作を実行するための情報が格納されます。キャッシュ管理ユーザーのCREATE USER文で、キャッシュ管理ユーザー用のデフォルトの表領域として、timestenユーザー用に作成した表領域を指定します。

    Oracle Databaseユーザーの詳細は、「Oracle Databaseユーザーの作成」を参照してください。

  4. sysユーザーとしてtimesten_home/install/oraclescripts/grantCacheAdminPrivileges.sqlスクリプトを実行して、キャッシュ管理ユーザーに、目的のタイプのキャッシュ・グループを作成し、そのキャッシュ・グループに対して操作を実行するために必要な権限を付与します。または、それぞれのOracle Databaseオブジェクトを手動で作成できます。

    実行対象のスクリプトを確認するには、「Oracle Databaseデータのキャッシュ管理に使用されるOracle Databaseオブジェクトの自動作成」または「Oracle Databaseデータのキャッシュ管理に使用されるOracle Databaseオブジェクトの手動による作成」を参照してください。

  5. 一部の権限は、キャッシュされたOracle Database表を作成するまで付与できません。これらの権限を付与するには、sysユーザーとしてGRANT文を実行します。

    特定のキャッシュ処理を実行するためにキャッシュ管理ユーザーに付与する必要のある権限の詳細は、「キャッシュ管理ユーザーおよびキャッシュ・マネージャ・ユーザーに必要な権限」を参照してください。

TimesTenデータベースで次の手順を実行します。

  1. Oracle Databaseからデータをキャッシュするために使用するTimesTenデータベースを参照するDSNを定義します。

    1. Oracle Databaseインスタンスを参照するOracleネット・サービス名をOracleNetServiceName接続属性に設定します。

    2. Oracle Database文字セットをDatabaseCharacterSet接続属性に設定します。TimesTenデータベース文字セットは、Oracle Database文字セットに一致する必要があります。

    3. 次に、データベースがスタンドアロン・データベースであるか、またはアクティブ・スタンバイ・ペアのアクティブ・データベースである場合は、DSNに接続してデータベースを作成します。

    Oracle Databaseからデータをキャッシュするために使用するTimesTenデータベースのDSNを定義する方法の詳細は、「TimesTenデータベースのDSNの定義」を参照してください。

  2. TimesTenデータベースに、次のユーザーを作成します。

    • キャッシュ・マネージャ・ユーザー

      このユーザーは、キャッシュされたOracle Database表にアクセスできるコンパニオンOracle Databaseユーザーと同じ名前である必要があります。コンパニオンOracle Databaseユーザーは、キャッシュ管理ユーザー、スキーマ・ユーザーまたはその他の既存ユーザーにすることができます。キャッシュ・マネージャ・ユーザーのパスワードは、同じ名前を持つOracle Databaseユーザーとは別のパスワードにすることができます。

    • TimesTenキャッシュ表を所有する1人以上のキャッシュ表ユーザー

      これらのユーザーは、キャッシュされたOracle Database表を所有するOracle Databaseスキーマ・ユーザーと同じ名前にする必要があります。キャッシュ表ユーザーのパスワードは、同じ名前を持つOracle Databaseユーザーとは別のパスワードにすることができます。

    インスタンス管理者としてCREATE USER文を実行します。

    TimesTenユーザーの詳細は、「TimesTenユーザーの作成」を参照してください。

  3. キャッシュ・マネージャ・ユーザーに、目的のタイプのキャッシュ・グループを作成し、そのキャッシュ・グループに対して操作を実行するのに必要な権限を付与します。インスタンス管理者としてGRANT文を実行します。

    特定のキャッシュ処理を実行するためにキャッシュ・マネージャ・ユーザーに付与する必要のある権限の詳細は、「キャッシュ管理ユーザーおよびキャッシュ・マネージャ・ユーザーに必要な権限」を参照してください。

  4. TimesTenデータベースにキャッシュ管理ユーザーの名前とパスワードを設定するには、キャッシュ・マネージャ・ユーザーとしてttCacheUidPwdSet組込みプロシージャをコールするか、またはCACHE_MANAGER権限を持つTimesTen外部ユーザーとしてttAdmin -cacheUidPwdSetユーティリティ・コマンドを実行します。

    TimesTenデータベースにキャッシュ管理ユーザーの名前およびパスワードを設定する方法の詳細は、「キャッシュ管理ユーザーの名前およびパスワードの設定」を参照してください。

  5. TimesTenデータベースでキャッシュ・エージェントを起動するには、キャッシュ・マネージャ・ユーザーとしてttCacheStart組込みプロシージャをコールするか、またはCACHE_MANAGER権限を持つTimesTen外部ユーザーとしてttAdmin -cacheStartユーティリティ・コマンドを実行します。

    TimesTenデータベースでのキャッシュ・エージェントの起動方法の詳細は、「キャッシュ・エージェントの管理」を参照してください。

  6. キャッシュ・グループのスキーマを設計するには、どのOracle Database表をキャッシュし、そのOracle Database表内でどの列とどの行をキャッシュするかを決定します。複数表キャッシュ・グループの場合、表間の関係を決定するには、どの表がルート表であり、どの表がルート表の直接の子表であり、どの表が他の子表の子表であるかを定義します。キャッシュされた列ごとに、Oracle Databaseデータ型をマップする必要があるTimesTenデータ型を決定します。

    Oracle DatabaseとTimesTenデータベース間の有効なデータ型マッピングのリストの詳細は、「Oracle DatabaseおよびTimesTenのデータ型のマッピング」を参照してください。

    キャッシュ・グループごとに、アプリケーションの要件および目的に基づいて、どのタイプ(読取り専用、SWT、AWT、ユーザー管理)を作成するかを決定します。また、各キャッシュ・グループが明示的にロードされるか、動的にロードされるかを決定します。

    次に、キャッシュ・グループを作成します。キャッシュ・グループの作成の詳細は、「キャッシュ・グループの作成」を参照してください。

  7. このTimesTenデータベースをアクティブ・スタンバイ・ペアのアクティブ・データベースとする場合は、データベースにアクティブ・スタンバイ・ペアのレプリケーション・スキームを作成します。アクティブ・スタンバイ・ペアのレプリケーション・スキームを作成する方法の詳細は、Oracle TimesTen In-Memory Databaseレプリケーション・ガイドのアクティブ・スタンバイ・ペアのレプリケーション・スキームの定義を参照してください。

  8. TimesTenデータベースにアクティブ・スタンバイ・ペアのレプリケーション・スキームまたは1つ以上のAWTキャッシュ・グループが含まれる場合、データベースでレプリケーション・エージェントを起動するには、キャッシュ・マネージャ・ユーザーとしてttRepStart組込みプロシージャをコールするか、またはCACHE_MANAGER権限を持つTimesTen外部ユーザーとしてttAdmin -repStartユーティリティ・コマンドを実行します。

    TimesTenデータベースでのレプリケーション・エージェントの起動方法の詳細は、「レプリケーション・エージェントの管理」を参照してください。

  9. 明示的にロードされるキャッシュ・グループのキャッシュ表を手動でロードするにはLOAD CACHE GROUP文を使用し、動的キャッシュ・グループのキャッシュ表をロードするには適切なSELECT文、UPDATE文またはINSERT文を使用します。

    キャッシュ・グループのキャッシュ表を手動でロードする方法の詳細は、「キャッシュ・グループのロードおよびリフレッシュ」を参照してください。

    動的キャッシュ・グループのキャッシュ表を動的にロードする方法の詳細は、「キャッシュ・インスタンスの動的ロード」を参照してください。

キャッシュ管理ユーザーおよびキャッシュ・マネージャ・ユーザーに必要な権限

Oracle Databaseユーザーに必要な権限は、作成するキャッシュ・グループのタイプおよびキャッシュ・グループに対して実行する処理によって異なります。表A-1で、キャッシュ管理ユーザーに必要な権限は最初の列に、各キャッシュ処理についてTimesTenのキャッシュ・マネージャ・ユーザーに必要な権限は、2番目の列にリストされています。

表A-1 キャッシュ処理に必要なOracle DatabaseおよびTimesTenのユーザー権限

キャッシュ処理 Oracle Databaseキャッシュ管理ユーザーに必要な権限 1 TimesTenのキャッシュ・マネージャ・ユーザーに必要な権限2

キャッシュ管理ユーザーを初期化します。grantCacheAdminPrivileges.sqlスクリプトはこれらの権限をキャッシュ管理ユーザーに付与します。

CREATE SESSION

TT_CACHE_ADMIN_ROLE

EXECUTE ON SYS.DBMS_LOCK

RESOURCE 4

CREATE PROCEDURE

CREATE ANY TRIGGER 3 4

EXECUTE ON SYS.DBMS_LOB

EXECUTE ON SYS.DBMS_FLASHBACK

SELECT ANY TRANSACTION

SELECT ON SYS.ALL_OBJECTS

SELECT ON SYS.ALL_SYNONYMS

CREATE TYPE

SELECT ON SYS.GV_$LOCK

SELECT ON SYS.GV_$SESSION

SELECT ON SYS.DBA_DATA_FILES

SELECT ON SYS.USER_USERS

SELECT ON SYS.USER_FREE_SPACE

SELECT ON SYS.USER_TS_QUOTAS

SELECT ON SYS.USER_SYS_PRIVS

デフォルトの表領域に必要な権限


次のいずれかの方法でキャッシュ管理ユーザーまたはキャッシュ・マネージャ・ユーザーの名前およびパスワードを設定します。

  • ttCacheUidPwdSet組込みプロシージャのコール。

  • ttAdmin -cacheUidPwdSetユーティリティ・コマンドの実行。

  • CREATE SESSION

  • RESOURCE 4

CACHE_MANAGER

次のいずれかの方法でキャッシュ管理ユーザーまたはキャッシュ・マネージャ・ユーザーの名前を取得します。

  • ttCacheUidGet組込みプロシージャのコール

  • ttAdmin -cacheUidGetユーティリティ・コマンドの実行

NONE

CACHE_MANAGER

次のいずれかの方法でのキャッシュ・エージェントの起動

  • ttCacheStart組込みプロシージャのコール。

  • ttAdmin -cacheStartユーティリティ・コマンドの実行。

CREATE SESSION

CACHE_MANAGER

キャッシュ・エージェントの停止

  • ttCacheStop組込みプロシージャのコール

  • ttAdmin -cacheStopユーティリティ・コマンドの実行

NONE

CACHE_MANAGER

次のいずれかの方法でのキャッシュ・エージェント起動ポリシーの設定

  • ttCachePolicySet組込みプロシージャのコール。

  • ttAdmin -cachePolicyユーティリティ・コマンドの実行。

CREATE SESSION 5

CACHE_MANAGER

キャッシュ・エージェント起動ポリシー設定を返す

  • ttCachePolicyGet組込みプロシージャのコール。

CREATE SESSION

NONE

次のいずれかの方法でのレプリケーション・エージェントの起動

  • ttRepStart組込みプロシージャのコール。

  • ttAdmin -repStartユーティリティ・コマンドの実行。

NONE

CACHE_MANAGER

次のいずれかの方法でのレプリケーション・エージェントの停止

  • ttRepStop組込みプロシージャのコール。

  • ttAdmin -repStopユーティリティ・コマンドの実行。

NONE

CACHE_MANAGER

レプリケーション・エージェント起動ポリシーの設定

  • ttRepPolicySet組込みプロシージャのコール

  • ttAdmin -repPolicyユーティリティ・コマンドの実行

NONE

ADMIN

CREATE ACTIVE STANDBY PAIR (INCLUDE CACHE GROUPを指定)

作成したキャッシュ・グループがAWTキャッシュ・グループである場合

CREATE TRIGGER


アクティブ・スタンバイ・レプリケーション・スキーム内でAWTキャッシュ・グループを使用する際のttRepAdmin -duplicateによるデータベースの複製

CREATE TRIGGER


CREATE [DYNAMIC] READONLY CACHE GROUP(AUTOREFRESH MODE INCREMENTALを指定)

  • CREATE SESSION

  • SELECT ON table_name 6

  • RESOURCE 4

  • CREATE ANY TRIGGER 4

  • CREATE [ANY] CACHE GROUP 7

  • CREATE [ANY] TABLE 8

CREATE [DYNAMIC] READONLY CACHE GROUP(AUTOREFRESH MODE FULLを指定)

  • CREATE SESSION

  • SELECT ON table_name 6

  • CREATE [ANY] CACHE GROUP 7

  • CREATE [ANY] TABLE 8

CREATE [DYNAMIC] ASYNCHRONOUS WRITETHROUGH CACHE GROUP

  • CREATE SESSION

  • SELECT ON table_name 6

  • RESOURCE 4

  • CREATE [ANY] CACHE GROUP 7

  • CREATE [ANY] TABLE 8

CREATE [DYNAMIC] SYNCHRONOUS WRITETHROUGH CACHE GROUP

  • CREATE SESSION

  • SELECT ON table_name 6

  • CREATE [ANY] CACHE GROUP 7

  • CREATE [ANY] TABLE 8

CREATE [DYNAMIC] USERMANAGED CACHE GROUP

(後続の行に示す異なる処理を参照)

  • CREATE SESSION

  • SELECT ON table_name 6

  • CREATE [ANY] CACHE GROUP 7

  • CREATE [ANY] TABLE 8

CREATE [DYNAMIC] USERMANAGED CACHE GROUP(AUTOREFRESH MODE INCREMENTALを指定)

  • CREATE SESSION

  • SELECT ON table_name 6

  • RESOURCE 4

  • CREATE ANY TRIGGER 4

  • CREATE [ANY] CACHE GROUP 7

  • CREATE [ANY] TABLE 8

CREATE [DYNAMIC] USERMANAGED CACHE GROUP(AUTOREFRESH MODE FULLを指定)

  • CREATE SESSION

  • SELECT ON table_name 6

  • CREATE [ANY] CACHE GROUP 7

  • CREATE [ANY] TABLE 8

CREATE [DYNAMIC] USERMANAGED CACHE GROUP(READONLYを指定)

  • CREATE SESSION

  • SELECT ON table_name 6

  • CREATE [ANY] CACHE GROUP 7

  • CREATE [ANY] TABLE 8

CREATE [DYNAMIC] USERMANAGED CACHE GROUP(PROPAGATEを指定)

  • CREATE SESSION

  • SELECT ON table_name 6

  • CREATE [ANY] CACHE GROUP 7

  • CREATE [ANY] TABLE 8

ALTER CACHE GROUP SET AUTOREFRESH STATE PAUSED

  • CREATE SESSION

  • SELECT ON table_name 6 9

  • RESOURCE 4 9

  • CREATE ANY TRIGGER 4 9

ALTER ANY CACHE GROUP 10

ALTER CACHE GROUP SET AUTOREFRESH STATE ON

  • CREATE SESSION

  • SELECT ON table_name 6 9

  • RESOURCE 4 9

  • CREATE ANY TRIGGER 4 9

ALTER ANY CACHE GROUP 10

ALTER CACHE GROUP SET AUTOREFRESH STATE OFF

CREATE SESSION

ALTER ANY CACHE GROUP 10

ALTER CACHE GROUP SET AUTOREFRESH MODE FULL

CREATE SESSION

ALTER ANY CACHE GROUP 10

ALTER CACHE GROUP SET AUTOREFRESH MODE INCREMENTAL

  • CREATE SESSION

  • SELECT ON table_name 6

  • RESOURCE 4

  • CREATE ANY TRIGGER 4

ALTER ANY CACHE GROUP 10

ALTER CACHE GROUP SET AUTOREFRESH INTERVAL

  • CREATE SESSION

  • SELECT ON table_name 6 11 

ALTER ANY CACHE GROUP 10

LOAD CACHE GROUP

  • CREATE SESSION

  • SELECT ON table_name 6

LOAD {ANY CACHE GROUP | ON cache_group_name) 10

REFRESH CACHE GROUP

  • CREATE SESSION

  • SELECT ON table_name 6

REFRESH {ANY CACHE GROUP | ON cache_group_name) 10

FLUSH CACHE GROUP

  • CREATE SESSION

  • UPDATE ON table_name 6

  • INSERT ON table_name 6

FLUSH {ANY CACHE GROUP | ON cache_group_name) 10

UNLOAD CACHE GROUP

NONE

UNLOAD {ANY CACHE GROUP | ON cache_group_name) 10

DROP CACHE GROUP

CREATE SESSION

  • DROP ANY CACHE GROUP 10

  • DROP ANY TABLE 12

同期ライトスルーまたは伝播

  • INSERT ON table_name 14

  • UPDATE ON table_name 14

  • DELETE ON table_name 14

非同期ライトスルー

  • CREATE SESSION

  • INSERT ON table_name 6

  • UPDATE ON table_name 6

  • DELETE ON table_name 6

  • INSERT ON table_name 14

  • UPDATE ON table_name 14

  • DELETE ON table_name 14

CacheAWTMethod接続属性が1に設定されている場合の非同期ライトスルー

CREATE PROCEDURE

ノート: この権限は、非同期ライトスルー・キャッシュ・グループに必要な権限の1つです。

追加する権限なし

CacheAWTMethod接続属性が1に設定されている場合のOracle Database CLOBBLOBおよびNCLOBフィールドの非同期ライトスルー

Oracle Database DBMS_LOB PL/SQLパッケージに対するEXECUTE権限

ノート: この権限は、非同期ライトスルー・キャッシュ・グループに必要な権限の1つです。

追加する権限なし

増分自動リフレッシュ

SELECT ON table_name 6

NONE

完全自動リフレッシュ

SELECT ON table_name 6

NONE

動的ロード

  • CREATE SESSION

  • SELECT ON table_name 6

  • SELECT ON table_name 14

  • UPDATE ON table_name 14

  • DELETE ON table_name 14

  • INSERT ON table_name 14

エージング

NONE

DELETE {ANY TABLE | ON table_name) 14

LRUエージング属性の設定

  • ttAgingLRUConfig組込みプロシージャのコール

NONE

ADMIN

Oracle Database SQL文を生成することによるOracle Databaseオブジェクトの手動によるインストールまたはアンインストール

  • ttIsqlユーティリティのcachesqlgetコマンドの実行

  • ttCacheSQLGet組込みプロシージャのコール

CREATE SESSION

CACHE_MANAGER

コミットされたキャッシュ表更新のOracle Databaseへの伝播の無効化または有効化

  • ttCachePropagateFlagSet組込みプロシージャのコール

NONE

CACHE_MANAGER

自動リフレッシュ・キャッシュ・グループに対する、キャッシュ・エージェントのタイムアウトおよびリカバリ方法の構成

  • ttCacheConfig組込みプロシージャのコール

CREATE SESSION

CACHE_MANAGER

AWTトランザクション・ログ・ファイルのしきい値の設定

  • ttCacheAWTThresholdSet組込みプロシージャのコール

NONE

CACHE_MANAGER

AWTキャッシュ・グループの監視の有効化または無効化

  • ttCacheAWTMonitorConfig組込みプロシージャのコール

NONE

CACHE_MANAGER

キャッシュされたOracle Database表に対して発行されたDDL文の追跡の有効化または無効化

  • ttCacheDDLTrackingConfig組込みプロシージャのコール

CREATE SESSION

CACHE_MANAGER


 1 キャッシュ管理ユーザーには、少なくともCREATE TYPE権限が必要です。

 2 キャッシュ・マネージャ・ユーザーには、少なくともCREATE SESSION権限が必要です。

 3 キャッシュ管理ユーザーが自動リフレッシュ・キャッシュ・グループを作成しない場合は、CREATE ANY TRIGGER権限のかわりに、CREATE TRIGGER権限を付与できます。

 4 Oracle Databaseデータのキャッシュ管理に使用されるOracle DatabaseオブジェクトがinitCacheAdminSchema.sqlスクリプトにより手動で作成されている場合は必要ありません。

5 キャッシュ・エージェント起動ポリシーがalwaysまたはnorestartに設定されている場合に必要です。

 6 TimesTenキャッシュ・グループにキャッシュされる表のうち、キャッシュ管理ユーザーが所有している表を除くすべてのOracle Database表に必要です。

7 CACHE_MANAGER権限には、CREATE [ANY] CACHE GROUP権限が含まれます。キャッシュ・マネージャ・ユーザーが、キャッシュ・マネージャ・ユーザー以外のユーザーが所有するキャッシュ・グループを作成する場合は、ANYが必要です。

8 キャッシュ表のいずれかが、キャッシュ・マネージャ・ユーザー以外のユーザーによって所有される場合は、ANYが必要です。

 9 キャッシュ・グループの自動リフレッシュ・モードが増分に設定されており、初期の自動リフレッシュ状態がOFFであり、Oracle Databaseデータのキャッシュ管理に使用されるOracle Databaseオブジェクトが自動で作成されている場合に必要です。

10 キャッシュ・グループにアクセスするTimesTenユーザーが、そのキャッシュ・グループを所有していない場合に必要です。

11 キャッシュ・グループの自動リフレッシュ・モードが増分になっている場合に必要です。

12 キャッシュ・グループにアクセスするTimesTenユーザーが、そのキャッシュ表の一部を所有していない場合に必要です。

 13 Oracle Databaseユーザーがキャッシュ管理ユーザーではない場合は、TimesTenキャッシュ・マネージャ・ユーザーと同じ名前のOracle Databaseユーザーにこの権限が付与されている必要があります。

14 キャッシュ表にアクセスするTimesTenユーザーがその表を所有していない場合に必要です。