キャッシュ・データベースにキャッシュ・グループを追加する方法

キャッシュ・グループは、TimesTenインメモリー・データベース内にキャッシュされたOracle表の集合です。キャッシュ・データベースには、1つ以上のキャッシュ・グループを含めることができます。

キャッシュ・グループは、読取り専用または更新可能にすることができます。読取り専用のキャッシュ・グループでは、Oracle Databaseに対する更新が、TimesTenデータベースの対応するキャッシュ表に自動的に更新されます。更新可能なキャッシュ・グループでは、キャッシュ表に対する更新が、Oracle Databaseの対応する表に自動的に伝播されます。

キャッシュ・グループのデータは、事前にロードするか、オンデマンドでロードすることができます。キャッシュ・グループの事前ロードは、キャッシュするデータ・セットが事前に設定されている場合に実行できます。動的キャッシュ・グループは、キャッシュ・データがオンデマンドでロードされるキャッシュ・グループです。これは、キャッシュするデータ・セットを事前に設定できない場合に適しています。

キャッシュ・グループには、2つのカテゴリがあります。ローカル・キャッシュ・グループには、キャッシュ・データベースに対してローカルなデータ、キャッシュ・グリッドで他のメンバーによって共有されないデータが含まれます。グローバル・キャッシュ・グループには、他のグリッド・メンバーによってグローバルに共有されるデータが含まれます。これによって、キャッシュ・グリッドに関係するキャッシュ・データベース全体で、キャッシュの一貫性が確保されます。

次の例は、更新可能な動的なグローバル・キャッシュ・グループおよび読取り専用のローカル・キャッシュ・グループの作成方法を示しています。

1. キャッシュ・エージェントの起動

a. ttIsqlにユーザーcacheadmとしてログインします。cacheadmのTimesTenユーザー・パスワードとOracleユーザー・パスワードを渡します。
   
  connect "dsn=cachedb1_1121;uid=cacheadm;pwd=cacheadm;oraclepwd=cacheadm";
   
b. キャッシュ・エージェント・プロセスは、キャッシュ・データベース間の通信を管理し、Oracle Databaseからキャッシュ・データベースへのデータ・フローを制御します。

現行のデータベースでキャッシュ・エージェントを起動するには、組込みプロシージャttCacheStartをコールします。
   
  call ttcachestart;


2. キャッシュ・グループの定義

a. 次のCREATE CACHE GROUP文を入力し、HR.EMPLOYEESHR.JOB_HISTORY表をキャッシュするための動的に更新可能なグローバル・キャッシュ・グループ(g_awt)を作成します。または、quickstart/sample_scripts/cachegrid ディレクトリにあるスクリプトcreate_global_awt.sqlを実行します。
   
  @quickstart/sample_scripts/cachegrid/create_global_awt.sql;
   
  create dynamic asynchronous writethrough global cache group g_awt from
hr.employees ( employee_id number (6) not null,
               first_name varchar2(20),
               last_name varchar2(25) not null,
               email varchar2(25) not null,
               phone_number varchar2(20),
               hire_date date not null,
               job_id varchar2(10) not null,
               salary number (8,2),
               commission_pct number (2,2),
               manager_id number (6),
               department_id number(4),
   primary key (employee_id)),
hr.job_history (employee_id number(6) not null,
               start_date date not null,
               end_date date not null,
               job_id varchar2(10) not null,
               department_id number(4),
  primary key (employee_id,start_date),
  foreign key (employee_id)
  references hr.employees (employee_id));
   
b. 次のCREATE CACHE GROUP文を入力するか、quickstart/sample_scripts/cachegrid ディレクトリにあるスクリプトcreate_local_ro.sqlを実行して、HR.DEPARTMENTS表をキャッシュするための読取り専用のローカル・キャッシュ・グループ(ro)を作成します。
   
  @quickstart/sample_scripts/cachegrid/create_local_ro.sql;
   
  create readonly cache group ro
autorefresh
interval 5 seconds
mode incremental
from
hr.departments ( department_id number(4) not null primary key,
                 department_name varchar2(30) not null,
                 manager_id number(6),
                 location_id number(4));
   
c. ttIsqlコマンドcachegroupsを使用すると、データベースにあるキャッシュ・グループの定義を確認できます。
   
  cachegroups;
   
 

3. レプリケーション・エージェントの起動

a. レプリケーション・エージェント・プロセスは、主にTimesTenデータベース間でデータをレプリケートする役割を持ちますが、キャッシュ・データベースからOracle Databaseへの更新の伝播も行います。この手順は、非同期WRITETHROUGH(AWT)キャッシュ・グループがある場合にのみ実行する必要があります。

現行のデータベースでレプリケーション・エージェントを起動するには、組込みプロシージャttRepStartをコールします。
   
  call ttrepstart;
4. キャッシュ・グリッドへのキャッシュ・データベースのアタッチ(グローバル・キャッシュ・グループがある場合にのみ必要)
a. プロシージャttGridAttachをコールして、キャッシュ・グリッドに現行のキャッシュ・データベースを追加します。この手順は、グローバル・キャッシュ・グループがある場合、またはグローバル・キャッシュ・グリッド操作を実行する予定がある場合にのみ必要です。
   
  call ttgridattach (1, 'cachedb1', 'stacb12', 9991);
   
  注意: stacb12は、データベースcachedb1_1121があるマシンのホスト名です。TCP/IPポート番号9991は任意です。ただし、他のTCPポート(ftp、telnetなど)と競合しないようにする必要があります。特に、ホスト名とポートの組合せは一意である必要があります。
   
b. プロシージャttGridNodeStatusを使用してアタッチされているすべてのグリッド・メンバーをリストし、キャッシュ・グリッドsamplegridcachedb1_1121が参加したことを確認します。
   
  call ttgridnodestatus;
   
 

キャッシュ・グループが作成されて必要なプロセスが開始されると、キャッシュ表へのデータのロードを開始することができます。キャッシュ・グループへのデータのロード方法の詳細は、「キャッシュ・グループへのデータのロード」を参照してください。

 

1 2 次へ >