アクティブ・データベースの作成および構成

この例では、アクティブ・スタンバイ・ペアのレプリケーション・スキームでアクティブ・データベースを作成および構成する方法を示します。

次に、アクティブ・スタンバイ・ペアのアクティブ・データベースのcacheactive DSNの定義を示します。

[cacheactive]
DataStore=/users/OracleCache/cacheact
PermSize=64
OracleNetServiceName=orcl
DatabaseCharacterSet=WE8ISO8859P1
CacheAdminWallet=1

ノート:

CacheAdminWalletを最初の接続属性(通常はDSNで設定)として設定した場合、キャッシュ管理ユーザー資格証明をttCacheUidPwdSet組込みプロシージャを使用して登録すると、メモリーではなくOracleウォレットに格納されます。

ttIsqlユーティリティを開始して、cacheactive DSNにインスタンス管理者として接続し、データベースを作成します。次に、Oracleキャッシュ管理ユーザーと同じ名前でTimesTenキャッシュ管理ユーザーcacheadminを作成します。

さらに、TimesTen ClassicデータベースにキャッシュされるOracle Database表を所有するOracle Databaseスキーマ・ユーザーと同じ名前でキャッシュ表ユーザーsalesを作成します。

% ttIsql cacheactive
Command> CREATE USER cacheadmin IDENTIFIED BY timesten;
Command> CREATE USER sales IDENTIFIED BY timesten;

インスタンス管理者としてttIsqlユーティリティを使用して、必要な権限をTimesTenキャッシュ管理ユーザーcacheadminに付与し、ADMIN権限を必要とするアクティブ・スタンバイ・ペアのレプリケーション・スキームを作成します:

Command> GRANT CREATE SESSION, CACHE_MANAGER,
        CREATE ANY TABLE, ADMIN TO cacheadmin;
Command> exit

TimesTenキャッシュ管理ユーザーとして、ttIsqlユーティリティを起動してcacheactive DSNに接続します。ttCacheUidPwdSet組込みプロシージャをコールして、Oracleキャッシュ管理ユーザーの名前およびパスワードを設定します。

% ttIsql "DSN=cacheactive;UID=cacheadmin;PwdWallet=/wallets/cacheadminwallet"
Command> CALL ttCacheUidPwdSet('cacheadmin','orapwd');

必要に応じて、「TimesTenデータベースとOracleデータベース間での接続テスト」に示した手順を使用して、アクティブ・データベースとOracleデータベース間の接続性をテストできます。

TimesTenキャッシュ管理ユーザーとしてttCacheStart組込みプロシージャをコールして、アクティブ・データベースでキャッシュ・エージェントを起動します:

Command> CALL ttCacheStart;

次の文は、動的AWTキャッシュ・グループにキャッシュされるOracle Database表の定義です。Oracle Database表は、スキーマ・ユーザーsalesが所有しています。

CREATE TABLE subscriber
(subscriberid       NUMBER(10) NOT NULL PRIMARY KEY,
 name               VARCHAR2(100) NOT NULL,
 minutes_balance    NUMBER(5) NOT NULL,
 last_call_duration NUMBER(4) NOT NULL);

TimesTenキャッシュ管理ユーザーがsales.subscriber表をキャッシュするAWTキャッシュ・グループを作成できるように、Oracleキャッシュ管理ユーザーに、この表に対するSELECT権限が付与されている必要があります。Oracle Databaseに対して非同期ライトスルー処理を行うには、Oracleキャッシュ管理ユーザーに、sales.subscriber表に対するINSERTUPDATEおよびDELETEのOracle Database権限が付与されている必要があります。

次に、TimesTenキャッシュ管理ユーザーとしてCREATE DYNAMIC ASYNCHRONOUS WRITETHROUGH CACHE GROUP文を使用して、TimesTen Classicデータベースにキャッシュ・グループを作成します。たとえば、次の文では、sales.subscriber表をキャッシュする動的AWTキャッシュ・グループsubscriber_accountsが作成されます:

CREATE DYNAMIC ASYNCHRONOUS WRITETHROUGH CACHE GROUP subscriber_accounts
FROM sales.subscriber
 (subscriberid       NUMBER(10) NOT NULL PRIMARY KEY,
  name               VARCHAR2(100) NOT NULL,
  minutes_balance    NUMBER(5) NOT NULL,
  last_call_duration NUMBER(4) NOT NULL);

TimesTenキャッシュ管理ユーザーとして、CREATE ACTIVE STANDBY PAIR文を使用して、アクティブ・データベースにアクティブ・スタンバイ・ペアのレプリケーション・スキームを作成します。

次の例では、cacheactcachestandおよびsubscrはそれぞれ、アクティブ・データベース、スタンバイ・データベースおよび読取り専用サブスクライバ・データベースのチェックポイント・ファイルおよびトランザクション・ログ・ファイルのファイル名接頭辞です。また、sys3sys4およびsys5はそれぞれ、アクティブ・データベース、スタンバイ・データベースおよび読取り専用サブスクライバ・データベースが存在するTimesTenシステムのホスト名です。

Command> CREATE ACTIVE STANDBY PAIR cacheact ON "sys3", cachestand ON "sys4"
        SUBSCRIBER subscr ON "sys5";

TimesTenキャッシュ管理ユーザーとして、ttRepStart組込みプロシージャをコールして、アクティブ・データベースでレプリケーション・エージェントを起動します。次に、ttRepStateSet組込みプロシージャをコールすることによって、データベースをアクティブとして宣言します。

Command> CALL ttRepStart;
Command> CALL ttRepStateSet('active');