ヘッダーをスキップ
Oracle TimesTen Cache Connect to Oracle開発者および管理者ガイド
リリース7.0
E05172-03
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

Oracleデータベースでのタスクの設定

この項では、Oracleデータベース管理者がシステム・アカウントを使用してOracleデータベースで実行する必要がある処理について説明します。内容は次のとおりです。

Oracleユーザーの作成および権限の設定

Oracle表にアクセスしてキャッシュ・グループを作成するには、Oracleユーザーおよびパスワードを指定する必要があります(「キャッシュされた表のDSN定義」を参照)。すべてのOracleユーザー・アカウントに、Cache Connect to Oracleを使用するCREATE SESSION権限が付与されている必要があります。Cache Connect to Oracleの一部の処理では、Oracleユーザーに追加の権限が必要です。

Cache Connect to Oracleの一部の処理には、追加のOracle権限を持つ個別のユーザーが必要です。これらの追加のキャッシュ管理ユーザー権限は特定のユーザーにのみ付与されるため、Cache Connect to Oracleを使用して、個別のキャッシュ管理ユーザー・アカウントを作成できます(キャッシュ管理ユーザーとしてキャッシュ・エージェントを起動する方法は、「キャッシュ・エージェントの起動および停止」を参照)。

表3.8に、Oracleユーザーおよびキャッシュ管理ユーザーの両方がCache Connect to Oracleの各処理を行うための最小限の権限を示します。キャッシュ管理ユーザーの権限には、データ・ストアにキャッシュされるすべてのOracle表が含まれている必要があります。一方、Oracleユーザーには、ユーザーが作成するキャッシュ・グループで指定される特定のOracle表に対する権限のみが必要です。詳細は、例3.8を参照してください。

表3.8 キャッシュ・グループの処理に必要なOracle権限
キャッシュ・グループの処理
Cache Connect to Oracleユーザーに付与される最小限の権限
キャッシュ管理ユーザーに付与される最小限の権限
すべての処理
  • Oracleデータベースに対するCREATE SESSION
  • SELECT TABLE
なし
CREATE READONLY CACHE GROUP
  • Oracleデータベースに対するCREATE SESSION
  • SELECT TABLE
  • Oracleデータベースに対するCREATE SESSION
  • SELECT TABLE
  • UNLIMITED TABLESPACE(または表領域での適切な領域割当て制限)
  • CREATE TABLE1
  • CREATE ANY TRIGGER1
CREATE SYNCHRONOUS WRITETHROUGH CACHE GROUP
  • Oracleデータベースに対するCREATE SESSION
  • SELECT TABLE
  • INSERT
  • UPDATE
  • DELETE
なし
CREATE ASYNCHRONOUS WRITETHROUGH CACHE GROUP
  • Oracleデータベースに対するCREATE SESSION
  • SELECT TABLE
  • INSERT 2
  • UPDATE 2
  • DELETE 2
  • QUERY REWRITE 3
  • Oracleデータベースに対するCREATE SESSION
  • SELECT TABLE
  • INSERT
  • UPDATE
  • DELETE
  • UNLIMITED TABLESPACE(または表領域での適切な領域割当て制限)
  • CREATE TABLE1
CREATE USERMANAGED CACHE GROUP
(後続の行に示す異なる処理を参照)
  • Oracleデータベースに対するCREATE SESSION
  • SELECT TABLE
なし
CREATE USERMANAGED CACHE GROUP
PROPAGATEを指定)
  • Oracleデータベースに対するCREATE SESSION
  • SELECT TABLE
  • INSERT
  • UPDATE
  • DELETE
なし
CREATE USERMANAGED CACHE GROUP
(AUTOREFRESH INCREMENTALを指定)
  • Oracleデータベースに対するCREATE SESSION
  • SELECT TABLE
  • QUERY REWRITE 3
  • Oracleデータベースに対するCREATE SESSION
  • SELECT TABLE
  • UNLIMITED TABLESPACE(または表領域での適切な領域割当て制限)
  • CREATE TABLE1
  • CREATE ANY TRIGGER1
LOAD CACHE GROUP
  • Oracleデータベースに対するCREATE SESSION
  • SELECT TABLE
  • Oracleデータベースに対するCREATE SESSION
  • SELECT TABLE
REFRESH CACHE GROUP
  • Oracleデータベースに対するCREATE SESSION
  • SELECT TABLE
  • Oracleデータベースに対するCREATE SESSION
  • SELECT TABLE
FLUSH CACHE GROUP
  • Oracleに対するCREATE SESSION
  • SELECT TABLE
  • INSERT TABLE
  • UPDATE TABLE
-
Real Application Clustersを使用した構成におけるすべての処理
  • Oracleデータベースに対するCREATE SESSION
  • SELECT TABLE
Oracle GV$SESSION動的パフォーマンス・ビューに対するSELECT
1 Oracleオブジェクトを手動でインストールした場合は、キャッシュ・グループを作成する必要はありません。詳細は、『Oracle TimesTen In-Memory Database APIリファレンス・ガイド』のttCacheSqlGetに関する説明を参照してください。
2 TimesTenから実行されません。
3 Oracleサーバー・リリース9.2の場合のみ必要です。
例3.8

2人のユーザーSamおよびJohnに権限を付与する必要があります。各ユーザーは、CREATE READONLY CACHE GROUP文を実行して、個別の読取り専用キャッシュ・グループを作成できます。SamはOracle表のTTUSER.TABLEAをキャッシュするキャッシュ・グループを作成し、Johnは別のキャッシュ・グループにOracleのTTUSER.TABLEBをキャッシュします。

SamおよびJohnにCREATE READONLY CACHE GROUPに対する十分なOracle権限を付与するには、Oracleユーザー・アカウントを2つ、拡張権限を持つキャッシュ管理ユーザーを1つ作成する必要があります。ここでは、キャッシュ管理ユーザーの名前はUser2です。

Oracleにアカウントを作成します。

SQL> CREATE USER Sam IDENTIFIED BY Samspwd DEFAULT TABLESPACE users;

SQL> CREATE USER John IDENTIFIED BY Johnspwd DEFAULT TABLESPACE users;

SQL> CREATE USER User2 IDENTIFIED BY User2pwd DEFAULT TABLESPACE users;

次に、各ユーザーに次の権限を割り当てます。

SQL> GRANT CREATE SESSION, SELECT ON TTUSER.TABLEA TO Sam;

SQL> GRANT CREATE SESSION, SELECT ON TTUSER.TABLEB TO John;

SQL> GRANT

> CREATE SESSION,

> SELECT ON TTUSER.TABLEA, TTUSER.TABLEB,

> UNLIMITED TABLESPACE,

> CREATE TABLE,

> CREATE ANY TRIGGER

> TO User2;

SQL>

キャッシュ管理ユーザー用の個別の表領域の作成

キャッシュ管理ユーザー用に個別の表領域を作成することを強くお薦めします。この表領域は、キャッシュ管理ユーザーのデフォルトの表領域として使用されます。表領域には、各Oracle表の自動リフレッシュ・トリガー、各Oracle表の変更ログ表、およびTimesTenが各キャッシュ管理ユーザーに対して必要とするその他のオブジェクトが含まれます。詳細は、「READONLY、AUTOREFRESHおよびAWTキャッシュ・グループのOracleオブジェクトの管理」を参照してください。個別の表領域を指定しない場合、これらのオブジェクトはOracleのシステム表領域に配置されます。

表領域は、Oracleのキャッシュ管理ユーザーを作成するときに指定します。また、ユーザーを作成した後で、OracleのALTER USER文のDEFAULT TABLESPACE句を使用して表領域を指定することもできます。

例3.9

例3.8に、キャッシュ管理ユーザーUser2を作成し、このユーザーに権限を付与する方法を示しました。User2に対してcacheuserという個別の表領域を指定するには、Oracleで次の文を入力します。

SQL> ALTER USER User2 IDENTIFIED BY User2pwd

     DEFAULT TABLESPACE cacheuser;

キャッシュされた各Oracle表の変更ログ表は、キャッシュ管理ユーザーの表領域に存在します。Oracle表の各更新では、1行(1つの変更ログ・レコード)がそのOracle表の変更ログ表に挿入されます。変更ログ・レコードのサイズ(バイト)は次のようになります。

size of change log record = size of primary key on Oracle table + 250

変更ログ表のレコード数は、Oracle表での更新率、およびTimesTenでの自動リフレッシュ時間隔によって異なります。変更ログ・レコードが、関連付けられたOracle表をキャッシュするすべてのデータ・ストアに適用されている場合、そのレコードは20秒ごとに削除されます。

キャッシュ管理ユーザーの表領域が一杯になった場合

キャッシュ管理ユーザーの表領域が一杯になった場合、自動リフレッシュ・トリガーは既存の変更ログ・レコードを削除して、新しい変更ログ・レコード用の領域を確保します。これによって、一部のTimesTenデータ・ストアのいくつかの表に対して完全自動リフレッシュを行うことができます。

表領域が一杯になった場合は、次の状態を確認します。

詳細は、『Oracle TimesTen In-Memory Databaseトラブルシューティング・プロシージャ・ガイド』の一杯になったキャッシュ管理ユーザー表領域の診断に関する説明を参照してください。