キャッシュ・データベースを設定する方法

Oracle表のキャッシュを開始する前に、TimesTenインメモリ・データベースを作成する必要があります。このデータベースには、ADMINまたはCACHE_MANAGER権限を持つユーザーを含める必要があります。このユーザーはキャッシュ・マネージャ・ユーザーと呼ばれ、キャッシュ・グリッドとキャッシュ・グループを管理します。キャッシュ・データベースには、キャッシュされる表を所有するOracleユーザーも存在する必要があり、このユーザーはキャッシュ表ユーザーと呼ばれます。

1. キャッシュ・データベースの作成

a. 最初に、DSNを定義してキャッシュ・データベースを作成します。このチュートリアルでは、インストールに付属する事前定義済のDSNであるcachedb1_1121を使用します。

DSN属性OracleNetServiceNameには、Oracle Databaseを示す有効なTNSサービス名を含める必要があり、DatabaseCharacterSetの値はOracle Databaseで定義されたデータベース・キャラクタ・セットと同じである必要があることに注意してください。これらの2つの属性を正しい設定に更新してから、続行します。必要に応じて、「データ・ソース名の設定」を参照してください。

この例では、OracleNetServiceNameとしてttorclを、DatabaseCharacterSetとしてAL32UTF8を使用します。
   
b. インスタンス管理者として、ttIsqlにデータベースcachedb1_1121を作成し、これに接続します。
   
  Cachedb1の作成
   
  必要に応じて、「TimesTenデータベースの作成」を参照してください。

2. キャッシュ・マネージャ・ユーザーの作成

a.

ADMINまたはCACHE_MANAGER権限を付与してキャッシュ・マネージャ・ユーザーを作成します。このユーザーは、キャッシュ・グリッドを設定および管理し、データを作成してキャッシュ・グループにロードします。

この例では、キャッシュ・マネージャ・ユーザーはcacheadmであり、これはOracle Databaseのキャッシュ管理ユーザーと同じ名前です。

   
  create user cacheadm identified by cacheadm;
grant admin TO cacheadm;

3. キャッシュ表ユーザーの作成

a. Oracle表をキャッシュするには、キャッシュ・データベースに、キャッシュするOracle表を所有するユーザーも存在する必要があります。

この例では、HRユーザーが所有する表をキャッシュしています。したがって、HRユーザーを作成する必要があります。
   
  create user hr identified by hr;
grant create session to hr;

4. キャッシュ・データベースへのOracleキャッシュ管理ユーザーの関連付け

a. キャッシュ・マネージャ・ユーザーとしてログインし、キャッシュ・データベースにOracleキャッシュ管理ユーザーを関連付ける組込みプロシージャttCacheUidPwdSetを使用します。プロシージャttCacheUidGetをコールして、Oracleキャッシュ管理ユーザーが設定されたことを確認します。
   
  connect "dsn=cachedb1_1121;uid=cacheadm";
call ttcacheuidpwdset ('cacheadm','cacheadm');
call ttcacheuidget;
   
  ttcacheuidpwdsetのコール

5. キャッシュ・グリッドの作成(最初のキャッシュ・データベースでのみ必要)

a. キャッシュ・グリッドは、キャッシュ・マネージャ・ユーザーのみが作成および管理できます。キャッシュ・データベースは、1つのキャッシュ・グリッドにのみ属することができます。組込みプロシージャttGridCreateをコールして、キャッシュ・グリッドを作成します。この手順は、最初のグリッド・メンバーでのみ必要です。
   
  call ttgridcreate ('samplegrid');
   
b. プロシージャttGridInfoを使用して、キャッシュ・グリッドが作成されたことを確認します。
   
  call ttgridinfo;
   
  ttGridInfoのコール

6. キャッシュ・グリッドへのキャッシュ・データベースの関連付け

a. プロシージャttGridNameSetをコールして、キャッシュ・グリッドに現行のデータベースを関連付けます。
   
 

call ttgridnameset ('samplegrid');