アクティブ・データベースの作成および構成
この例では、アクティブ・スタンバイ・ペアのレプリケーション・スキームでアクティブ・データベースを作成および構成する方法を示します。
次に、アクティブ・スタンバイ・ペアのアクティブ・データベースの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> exitTimesTenキャッシュ管理ユーザーとして、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表に対するINSERT、UPDATEおよび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文を使用して、アクティブ・データベースにアクティブ・スタンバイ・ペアのレプリケーション・スキームを作成します。
次の例では、cacheact、cachestandおよびsubscrはそれぞれ、アクティブ・データベース、スタンバイ・データベースおよび読取り専用サブスクライバ・データベースのチェックポイント・ファイルおよびトランザクション・ログ・ファイルのファイル名接頭辞です。また、sys3、sys4および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');