アクティブ・キャッシュ・データベースで発生した障害からのリカバリ

この項では、アクティブ・キャッシュ・データベースまたはサーバーで障害が発生した後、スタンバイ・キャッシュ・データベースへのフェイルオーバーを実行する方法について説明します。スタンバイ・キャッシュ・データベースから以前のアクティブ・キャッシュ・データベースを再構築する方法についても説明します。

このチュートリアルでは、TimesTen 11.2.1に付属する事前定義済のDSNであるcachedb1_1121を使用します。2台のマシンのホスト名はstacb12およびstach17です。cachedb1_1121stacb12のアクティブ・キャッシュ・データベースであり、stach17のcachedb2_1121が新しいアクティブ・キャッシュ・データベースになるように変換されます。

1. 障害が発生したデータベースでのレプリケーション・エージェントの停止

a. 障害が発生したデータベースで、レプリケーション・エージェントがまだ停止されていない場合は停止します。
インスタンス管理者としてサーバー1(stacb12)にログインし、ttAdminユーティリティを使用して、cachedb1_1121でレプリケーション・エージェントを停止します。
   
  ttadmin -repstop cachedb1_1121
   
 

2. スタンバイ・キャッシュ・データベースの状態のアクティブへの設定

a. ttIsqlで、レプリケーション管理者cacheadmとしてcachedb2_1121に接続します。
   
  connect "dsn=cachedb2_1121;uid=cacheadm;pwd=cacheadm;oraclepwd=cacheadm";
 
b. 組込みプロシージャttRepStateSetを使用して、現行のデータベースをアクティブ・スタンバイ・ペアの新しいアクティブ・データベースとして指定します。
   
  call ttrepstateset('active');
   
c. 組込みプロシージャttRepStateGetをコールして、現在のレプリケーション状態を確認します。
   
  call ttrepstateget;
   
 
   
  キャッシュ・データベースがアクティブ・データベースに変換されると、アクティブ状態になります。これで、障害が発生したデータベースに以前接続されていたアプリケーションを新しいアクティブ・データベースで使用できるようになりました。詳細は、「レプリケーションのフェイルオーバーおよびリカバリ」を参照してください。

3. 以前のアクティブ・キャッシュ・データベースのfailedとしての指定

a. プロシージャttRepStateSaveを使用して、以前のアクティブ・データベースをfailedとして登録します。
   
  call ttrepstatesave ('failed','cachedb1_1121','stacb12');

4. 障害が発生したデータベースでのキャッシュ・エージェントの停止

a. 障害が発生したデータベースで、キャッシュ・エージェントがまだ停止されていない場合は停止します。
インスタンス管理者としてサーバー1(stacb12)にログインし、ttAdminユーティリティを使用して、cachedb1_1121でキャッシュ・エージェントを停止します。
   
  ttadmin -cachestop cachedb1_1121
   
 

5. 障害が発生したキャッシュ・データベースの破棄

a. ttDestroyユーティリティを使用して、サーバー1(stacb12)の障害が発生したデータベース(cachedb1_1121)を削除します。データベースの状態によっては、ttDestroy-forceオプションを使用して、障害が発生したデータベースを削除する必要がある場合があります。
   
  ttdestroy cachedb1_1121

6. 新しいアクティブ・データベースの複製による新しいスタンバイ・データベースの作成

a. ttRepAdminユーティリティを使用し、新しいアクティブ・キャッシュ・データベースから複製することによって、サーバー1(stacb12)でスタンバイ・データベースを作成します。
   
  ttrepadmin -duplicate -from cachedb2_1121 -host "stach17" -uid cacheadm -pwd cacheadm -keepcg -cacheuid cacheadm -cachepwd cacheadm "dsn=cachedb1_1121"

7. スタンバイ・データベースでのレプリケーション・エージェントの起動

a. ttIsqlでレプリケーション管理者cacheadmとしてcachedb1_1121に接続し、組込みプロシージャttRepStartを使用してレプリケーション・エージェントを起動します。
   
  ttisql
connect "dsn=cachedb1_1121;uid=cacheadm;pwd=cacheadm;oraclepwd=cacheadm";
call ttrepstart;
   
b. ttRepStateGet組込みプロシージャを使用して、スタンバイ・キャッシュ・データベースがスタンバイ状態になっていることを確認します。
   
  call ttrepstateget;
   
 

8. スタンバイ・データベースでのキャッシュ・エージェントの起動

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

9. キャッシュ・グリッドへのスタンバイ・データベースのアタッチ(グローバル・キャッシュ・グループが存在する場合にのみ必要)

a. 手順9は、キャッシュ・データベースにグローバル・キャッシュ・グループが存在する場合にのみ実行する必要があります。プロシージャttGridAttachをコールして、キャッシュ・グリッドに現行のスタンバイ・キャッシュ・データベースを追加します。
   
  call ttgridattach (1,'cachedb1','stacb12',9991,'cachedb2','stach17',9992);
   
b. プロシージャttGridNodeStatusを使用してアタッチされているすべてのグリッド・メンバーをリストし、キャッシュ・グリッドsamplegridにcachedb1_1121が参加したことを確認します。
   
  call ttgridnodestatus;
   
 


アクティブ・スタンバイ・ペアの構成が完了しました。アクティブ・データベースでのデータの変更は、スタンバイ・データベースに自動的にレプリケートされます。