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

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

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

1. 障害が発生したデータベースでのレプリケーション・エージェントの停止
a. 障害が発生したデータベースで、レプリケーション・エージェントがまだ停止されていない場合は停止します。インスタンス管理者としてサーバー1(stacb12)にログインし、ttAdminユーティリティを使用して、repdb1_1121でレプリケーション・エージェントを停止します。
   
  ttadmin -repstop repdb1_1121
   
 
2. スタンバイ・データベースの状態のアクティブへの設定
a. ttIsqlを使用して、レプリケーション管理者admとしてデータベースrepdb2_1121に接続します。
   
  ttisql "dsn=repdb2_1121;uid=adm"
 
b. 組込みプロシージャttRepStateSetを使用して、現行のデータベースをアクティブ・スタンバイ・ペアの新しいアクティブ・データベースとして指定します。次に、組込みプロシージャttRepStateGetをコールして、現在のレプリケーション状態を確認します。
   
  call ttrepstateset('active');
call ttrepstateget;
   
 
   
  データベースがアクティブ・データベースに変換されると、アクティブ状態になります。これで、障害が発生したデータベースに以前接続されていたアプリケーションを新しいアクティブ・データベースで使用できるようになりました。詳細は、「レプリケーションのフェイルオーバーおよびリカバリ」を参照してください。
3. 以前のアクティブ・データベースのfailedとしての指定
a. プロシージャttRepStateSaveを使用して、以前のアクティブ・データベースをfailedとして登録します。
   
  call ttrepstatesave ('failed','repdb1_1121','stacb12');
4. 障害が発生したデータベースの破棄
a. インスタンス管理者としてサーバー1(stacb12)にログインし、ttDestroyユーティリティを使用して、障害が発生したデータベースrepdb1_1121を削除します。
   
  ttdestroy repdb1_1121
5. 新しいアクティブ・データベースの複製による新しいスタンバイ・データベースの作成
a. ttRepAdminユーティリティを使用し、新しいアクティブ・データベースから複製することによって、スタンバイ・データベースを作成します。
   
  ttrepadmin -duplicate -from repdb2_1121 -host "stach17" -uid adm -pwd adm "dsn=repdb1_1121"
6. スタンバイ・データベースでのレプリケーション・エージェントの起動
a. ttIsqlを使用して、レプリケーション管理者admとしてrepdb1_1121に接続します。組込みプロシージャttRepStartをコールして、レプリケーション・エージェントを起動します。
   
  ttisql "dsn=repdb1_1121;uid=adm"

call ttrepstart;
   
b. ttRepStateGet組込みプロシージャを使用して、スタンバイ・データベースがスタンバイ状態になっていることを確認します。
   
  call ttrepstateget;
   
 


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