次の各項では、キャッシュ環境の作成のための手順およびそれを実行するために必要な権限について簡単に説明しています。
次の項では、TimesTenインメモリー・データベースでOracle Databaseデータをキャッシュする環境を設定する際に必要な手順を簡単に説明しています。各手順の詳細な説明および例については、第2章「スタート・ガイド」、第3章「キャッシュ・インフラストラクチャの設定」および第4章「キャッシュ・グループの定義」を参照してください。
Oracle Databaseで次の手順を実行します。
TimesTen Application-Tier Database Cache管理オブジェクトの格納に使用するデフォルトの表領域を作成します。
SQL*PlusスクリプトTimesTen_install_dir
/oraclescripts/initCacheGlobalSchema.sql
をsys
ユーザーで実行することで、timesten
ユーザー、timesten
ユーザーが所有するOracle Database表領域およびこれらのOracle Database表に権限を定義するTT_CACHE_ADMIN_ROLE
ロールを作成します。
sys
ユーザーで、キャッシュされたOracle Database表を所有する1人以上のスキーマ・ユーザーを作成します(既存のユーザーも可能です)。
sys
ユーザーで、Oracle Databaseオブジェクトを作成、所有および保持するキャッシュ管理ユーザーを作成しますが、これらのOracle Databaseオブジェクトには、特定のキャッシュ・グリッド(定義されている場合)を管理し、特定のキャッシュ・グループ・タイプの定義済動作を実行するための情報が格納されます。キャッシュ管理ユーザーのCREATE USER
文で、キャッシュ管理ユーザー用のデフォルトの表領域として、timestenユーザー用に作成した表領域を指定します。
Oracle Databaseユーザーの詳細は、「Oracle Databaseユーザーの作成」を参照してください。
sys
ユーザーでTimesTen_install_dir
/oraclescripts/grantCacheAdminPrivileges.sql
スクリプトを実行して、キャッシュ管理ユーザーに、キャッシュ・グリッド処理(定義されている場合)を実行し、目的のタイプのキャッシュ・グループを作成して、そのキャッシュ・グループに対して処理を実行するために必要な権限を付与します。または、それぞれのOracle Databaseオブジェクトを手動で作成できます。
実行対象のスクリプトを確認するには、「Oracle Databaseデータのキャッシュ管理に使用されるOracle Databaseオブジェクトの自動作成」または「Oracle Databaseデータのキャッシュ管理に使用されるOracle Databaseオブジェクトの手動による作成」を参照してください。
Oracle Databaseオブジェクトを手動で作成している場合は、さらにTimesTen_install_dir
/oraclescripts/initCacheGridSchema.sql
スクリプトを実行して、特定のキャッシュ・グリッドに関連付けられているTimesTenデータベースに関する情報を保存するためのOracle Database表を作成する必要があります。
一部の権限は、キャッシュされたOracle Database表を作成するまで付与できません。これらの権限を付与するには、sys
ユーザーとしてGRANT
文を実行します。
特定のキャッシュ処理を実行するためにキャッシュ管理ユーザーに付与する必要のある権限の詳細は、「キャッシュ管理ユーザーおよびキャッシュ・マネージャ・ユーザーに必要な権限」を参照してください。
TimesTenデータベースで次の手順を実行します。
Oracle Databaseからデータをキャッシュするために使用するTimesTenデータベースを参照するDSNを定義します。
Oracle Databaseインスタンスを参照するOracleネット・サービス名をOracleNetServiceName
接続属性に設定します。
Oracle Databaseキャラクタ・セットをDatabaseCharacterSet
接続属性に設定します。TimesTenデータベース・キャラクタ・セットは、Oracle Databaseキャラクタ・セットに一致する必要があります。
次に、データベースがスタンドアロン・データベースであるか、またはアクティブ・スタンバイ・ペアのアクティブ・データベースである場合は、DSNに接続してデータベースを作成します。
Oracle Databaseからデータをキャッシュするために使用するTimesTenデータベースのDSNを定義する方法の詳細は、「TimesTenデータベースのDSNの定義」を参照してください。
TimesTenデータベースに、次のユーザーを作成します。
キャッシュ・マネージャ・ユーザー
このユーザーは、キャッシュされたOracle Database表にアクセスできるコンパニオンOracle Databaseユーザーと同じ名前である必要があります。コンパニオンOracle Databaseユーザーは、キャッシュ管理ユーザー、スキーマ・ユーザーまたはその他の既存ユーザーにすることができます。キャッシュ・マネージャ・ユーザーのパスワードは、同じ名前を持つOracle Databaseユーザーとは別のパスワードにすることができます。
TimesTenキャッシュ表を所有する1人以上のキャッシュ表ユーザー
これらのユーザーは、キャッシュされたOracle Database表を所有するOracle Databaseスキーマ・ユーザーと同じ名前にする必要があります。キャッシュ表ユーザーのパスワードは、同じ名前を持つOracle Databaseユーザーとは別のパスワードにすることができます。
インスタンス管理者としてCREATE USER
文を実行します。
TimesTenユーザーの詳細は、「TimesTenユーザーの作成」を参照してください。
キャッシュ・マネージャ・ユーザーに、キャッシュ・グリッド処理を実行し、目的のタイプのキャッシュ・グループを作成して、そのキャッシュ・グループに対して処理を実行するのに必要な権限を付与します。インスタンス管理者としてGRANT
文を実行します。
特定のキャッシュ処理を実行するためにキャッシュ・マネージャ・ユーザーに付与する必要のある権限の詳細は、「キャッシュ管理ユーザーおよびキャッシュ・マネージャ・ユーザーに必要な権限」を参照してください。
TimesTenデータベースにキャッシュ管理ユーザーの名前とパスワードを設定するには、キャッシュ・マネージャ・ユーザーとしてttCacheUidPwdSet
組込みプロシージャをコールするか、またはCACHE_MANAGER
権限を持つTimesTen外部ユーザーとしてttAdmin -cacheUidPwdSet
ユーティリティ・コマンドを実行します。
TimesTenデータベースにキャッシュ管理ユーザーの名前およびパスワードを設定する方法の詳細は、「キャッシュ管理ユーザーの名前およびパスワードの設定」を参照してください。
キャッシュ・グリッドをグローバル・キャッシュ・グループで使用する場合は、次の手順を実行します。
キャッシュ・グリッドを作成するには、キャッシュ・マネージャ・ユーザーとしてTimesTenデータベースでttGridCreate
組込みプロシージャをコールします。
キャッシュ・グリッドの作成の詳細は、「キャッシュ・グリッドの作成」を参照してください。
TimesTenデータベースをキャッシュ・グリッドに関連付けるには、キャッシュ・マネージャ・ユーザーとしてTimesTenデータベースでttGridNameSet
組込みプロシージャをコールします。
TimesTenデータベースをキャッシュ・グリッドに関連付ける方法の詳細は、「TimesTenデータベースとキャッシュ・グリッドの関連付け」を参照してください。
TimesTenデータベースでキャッシュ・エージェントを起動するには、キャッシュ・マネージャ・ユーザーとしてttCacheStart
組込みプロシージャをコールするか、またはCACHE_MANAGER
権限を持つTimesTen外部ユーザーとしてttAdmin -cacheStart
ユーティリティ・コマンドを実行します。
TimesTenデータベースでのキャッシュ・エージェントの起動方法の詳細は、「キャッシュ・エージェントの管理」を参照してください。
キャッシュ・グループのスキーマを設計するには、どのOracle Database表をキャッシュし、そのOracle Database表内でどの列とどの行をキャッシュするかを決定します。複数表キャッシュ・グループの場合、表間の関係を決定するには、どの表がルート表であり、どの表がルート表の直接の子表であり、どの表が他の子表の子表であるかを定義します。キャッシュされた列ごとに、Oracle Databaseデータ型をマップする必要があるTimesTenデータ型を決定します。
Oracle DatabaseとTimesTenデータベース間の有効なデータ型マッピングのリストの詳細は、「Oracle DatabaseおよびTimesTenのデータ型のマッピング」を参照してください。
キャッシュ・グループごとに、アプリケーションの要件および目的に基づいて、どのタイプ(読取り専用、SWT、AWT、ユーザー管理)を作成するかを決定します。また、各キャッシュ・グループが明示的にロードされるか、動的であるか、ローカルであるか、グローバルであるかを決定します。
次に、キャッシュ・グループを作成します。
キャッシュ・グループの作成の詳細は、「キャッシュ・グループの作成」を参照してください。
このTimesTenデータベースをアクティブ・スタンバイ・ペアのアクティブ・データベースとする場合は、データベースにアクティブ・スタンバイ・ペアのレプリケーション・スキームを作成します。
TimesTenデータベースにアクティブ・スタンバイ・ペアのレプリケーション・スキームまたは1つ以上のAWTキャッシュ・グループが含まれる場合、データベースでレプリケーション・エージェントを起動するには、キャッシュ・マネージャ・ユーザーとしてttRepStart
組込みプロシージャをコールするか、またはCACHE_MANAGER
権限を持つTimesTen外部ユーザーとしてttAdmin -repStart
ユーティリティ・コマンドを実行します。
TimesTenデータベースでのレプリケーション・エージェントの起動方法の詳細は、「レプリケーション・エージェントの管理」を参照してください。
TimesTenデータベースに1つ以上のグローバル・キャッシュ・グループが含まれる場合、TimesTenデータベースを関連付け先のキャッシュ・グリッドにアタッチするには、キャッシュ・マネージャ・ユーザーとしてttGridAttach
組込みプロシージャをコールします。
TimesTenデータベースをキャッシュ・グリッドにアタッチする方法の詳細は、「キャッシュ・グリッドへのTimesTenデータベースのアタッチ」を参照してください。
明示的にロードされるキャッシュ・グループのキャッシュ表を手動でロードするにはLOAD CACHE GROUP
文を使用し、動的キャッシュ・グループのキャッシュ表をロードするには適切なSELECT
文、UPDATE
文またはINSERT
文を使用します。
キャッシュ・グループのキャッシュ表を手動でロードする方法の詳細は、「キャッシュ・グループのロードおよびリフレッシュ」を参照してください。
動的キャッシュ・グループのキャッシュ表を動的にロードする方法の詳細は、「キャッシュ・インスタンスの動的ロード」を参照してください。
キャッシュ・グリッドを使用する場合は、後続のスタンドアロンTimesTenデータベースを既存のキャッシュ・グリッドにメンバーとして追加できます。
別のスタンドアロンTimesTenデータベースを作成し、そのデータベースを既存のキャッシュ・グリッドに追加する方法の詳細は、「後続のスタンドアロンTimesTenデータベースの作成および構成」を参照してください。
キャッシュ表を別のTimesTenデータベースにレプリケートして高可用性を実現するために、アクティブ・スタンバイ・ペアを既存のキャッシュ・グリッドにメンバーとして追加できます。
アクティブ・データベースを作成し、そのデータベースを既存のキャッシュ・グリッドに追加する方法の詳細は、「アクティブ・データベースの作成および構成」を参照してください。
アクティブ・データベースからスタンバイ・データベースを作成するには、スタンバイ・データベース用のDSNを作成した後に、ADMIN
権限を持つTimesTen外部ユーザーとして、スタンバイ・データベース・システムでttRepAdmin -duplicate
ユーティリティ・コマンドを実行します。このコマンドを正常に完了するには、アクティブ・データベースのキャッシュ・マネージャ・ユーザーにADMIN
権限を付与する必要があります。次に、データベースを構成し、グリッドにそのデータベースをメンバーとして追加します。
スタンバイ・データベースを作成し、そのデータベースを既存のキャッシュ・グリッドに追加する方法の詳細は、「スタンバイ・データベースの作成および構成」を参照してください。
スタンバイ・データベースからオプションの読取り専用サブスクライバ・データベースを作成するには、サブスクライバ・データベース用のDSNを作成します。次に、ADMIN
権限を持つTimesTen外部ユーザーとして、サブスクライバ・データベース・システムでttRepAdmin -duplicate
ユーティリティ・コマンドを実行します。このコマンドを正常に完了するには、スタンバイ・データベースのキャッシュ・マネージャ・ユーザーにADMIN
権限を付与する必要があります。次に、データベースでレプリケーション・エージェントを起動します。
アクティブ・スタンバイ・ペアの読取り専用サブスクライバ・データベースを作成する方法の詳細は、「読取り専用サブスクライバ・データベースの作成および構成」を参照してください。
Oracle Databaseユーザーに必要な権限は、作成するキャッシュ・グループのタイプおよびキャッシュ・グループに対して実行する処理によって異なります。表A-1で、キャッシュ管理ユーザーに必要な権限は最初の列に、各キャッシュ処理についてTimesTenのキャッシュ・マネージャ・ユーザーに必要な権限は、2番目の列にリストされています。
表A-1 キャッシュ処理に必要なOracle DatabaseおよびTimesTenのユーザー権限
キャッシュ処理 | Oracle Databaseキャッシュ管理ユーザーに必要な権限 1 | TimesTenのキャッシュ・マネージャ・ユーザーに必要な権限2 |
---|---|---|
キャッシュ管理ユーザーを初期化します。 |
デフォルトの表領域に必要な権限 |
|
次のいずれかの方法でのキャッシュ管理ユーザーの名前およびパスワードの設定
|
|
|
次のいずれかの方法でのキャッシュ管理ユーザーの名前の取得
|
NONE |
|
キャッシュ・グリッドの作成
|
|
|
TimesTenデータベースとキャッシュ・グリッドの関連付け
|
|
|
キャッシュ・グリッドへのTimesTenデータベースのアタッチ
|
|
|
キャッシュ・グリッドからのTimesTenデータベースのデタッチ
|
|
|
キャッシュ・グリッドからのノード・リストのデタッチ
|
|
|
キャッシュ・グリッドの破棄
|
|
|
次のいずれかの方法でのキャッシュ・エージェントの起動
|
|
|
キャッシュ・エージェントの停止
|
NONE |
|
次のいずれかの方法でのキャッシュ・エージェント起動ポリシーの設定
|
|
|
キャッシュ・エージェント起動ポリシー設定を返す
|
|
NONE |
次のいずれかの方法でのレプリケーション・エージェントの起動
|
NONE |
|
次のいずれかの方法でのレプリケーション・エージェントの停止
|
NONE |
|
レプリケーション・エージェント起動ポリシーの設定
|
NONE |
|
作成したキャッシュ・グループがAWTキャッシュ・グループである場合 |
|
|
アクティブ・スタンバイ・レプリケーション・スキーム内でAWTキャッシュ・グループを使用する際の |
|
|
|
||
|
|
|
|
||
|
|
|
(後続の行に示す異なる処理を参照) |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
NONE |
|
|
|
|
同期ライトスルーまたは伝播 |
||
非同期ライトスルー |
||
|
注意: この権限は、非同期ライトスルー・キャッシュ・グループに必要な権限の1つです。 |
追加する権限なし |
|
Oracle Database 注意: この権限は、非同期ライトスルー・キャッシュ・グループに必要な権限の1つです。 |
追加する権限なし |
増分自動リフレッシュ |
|
NONE |
完全自動リフレッシュ |
|
NONE |
動的ロード |
|
|
エージング |
NONE |
|
LRUエージング属性の設定
|
NONE |
|
Oracle Database SQL文を生成することによるOracle Databaseオブジェクトの手動によるインストールまたはアンインストール
|
|
|
コミットされたキャッシュ表更新のOracle Databaseへの伝播の無効化または有効化
|
NONE |
|
自動リフレッシュ・キャッシュ・グループに対する、キャッシュ・エージェントのタイムアウトおよびリカバリ方法の構成
|
|
|
AWTトランザクション・ログ・ファイルのしきい値の設定
|
NONE |
|
AWTキャッシュ・グループの監視の有効化または無効化
|
NONE |
|
キャッシュされたOracle Database表に対して発行されたDDL文の追跡の有効化または無効化
|
|
|
キャッシュ・グリッド情報を返す
|
|
|
キャッシュ・グリッド・ノード情報を返す
|
|
|
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ユーザーがその表を所有していない場合に必要です。