ヘッダーをスキップ

Oracle TimesTen Replication - TimesTen to TimesTen開発者および管理者ガイド リリース6.0 B25769-01 |
| 目次 | 索引

前へ | 次へ |

## レプリケーション・エージェントの起動および停止

レプリケーション・スキームを定義した後、レプリケーション・スキームに含まれている各データ・ストアのレプリケーション・エージェントを起動できます。

注意: アクセス制御を有効にしてTimesTenをインストールした場合、レプリケーション・エージェントを起動および停止するには、データ・ストアに対するADMIN権限が必要です。詳細は、『Oracle TimesTen In-Memory Databaseインストレーション・ガイド』のアクセス制御およびroot以外のインストールに関する章を参照してください。

レプリケーション・エージェントは、次の項で説明するように、コマンドラインまたはプログラムから起動および停止することができます。

- コマンドラインからのレプリケーション・エージェントの制御
- プログラムからのレプリケーション・エージェントの制御

注意: レプリケーション・スキームに関連していないデータ・ストアのレプリケーション・エージェントを起動しようとしても失敗します。

## コマンドラインからのレプリケーション・エージェントの制御

レプリケーション・エージェントをコマンドラインから起動および停止するには、-repStartまたは-repStopオプションを指定してttAdminユーティリティを使用します。

    ttAdmin -repStart DSN
    ttAdmin -repStop DSN

注意: レプリケーション・エージェントの実行時には使用できないレプリケーションDDLを、ttAdmin -repStartコマンドを発行してからレプリケーション・エージェントが実際に起動するまでの短い間に使用できる場合があります。たとえば、この期間中にレプリケーション・スキームを削除できる場合があります。

##### 例4.3

masterDSNおよびsubscriberDSNというDSNのレプリケーション・エージェントを起動するには、次のように入力します。

    ttAdmin -repStart masterDSN
    ttAdmin -repStart subscriberDSN

    レプリケーション・エージェントを停止するには、次のように入力します。

    ttAdmin -repStop masterDSN
    ttAdmin -repStop subscriberDSN

    また、ttRepStartおよびttRepStopプロシージャを使用して、ttIsqlコマンドラインからレプリケーション・エージェントを起動および停止することもできます。

##### 例4.4

masterDSNというDSNのレプリケーション・エージェントを起動および停止するには、次のように入力します。

    > ttIsql masterDSN
    Command> call ttRepStart;
    Command> call ttRepStop;

    また、ttAdminユーティリティを使用してレプリケーション再起動ポリシーを設定することもできます。デフォルトでは、このポリシーはmanualです。これによって、前述のようにレプリケーション・エージェントを起動および停止できます。データ・ストアのレプリケーション再起動ポリシーは、alwaysまたはnorestartに設定することもできます。

##### 表4.2

再起動ポリシー | TimesTenデーモンの起動時にレプリケーション・エージェントを起動 | エラー発生時または無効化が行われた場合にレプリケーション・エージェントを再起動
--- | --- | ---
always | する | する
manual | しない | する
norestart | しない | しない

##### レプリケーション再起動ポリシー

注意: レプリケーション・エージェントはTimesTenデーモンによって管理されます。TimesTenデーモンは、レプリケーション・エージェントを起動する前に起動されている必要があります。

再起動ポリシーがalwaysの場合、データ・ストアがメモリーにロードされるとレプリケーション・エージェントが自動的に起動されます（データ・ストアがメモリーにロードされるタイミングを指定する方法については、『Oracle TimesTen In-Memory Databaseオペレーション・ガイド』のRAMポリシーの指定に関する項を参照してください）。

##### 例4.5

ttAdminを使用して、レプリケーション再起動ポリシーをalwaysに設定するには、次のように入力します。

    ttAdmin -repPolicy always DSN

    ポリシーをmanualに再設定するには、次のように入力します。

    ttAdmin -repPolicy manual DSN

    エラー発生またはデータ・ストアの無効化の後、manualおよびalwaysの両方のポリシーによってレプリケーション・エージェントが自動的に再起動されます。レプリケーション・エージェントが自動的に再起動されると、多くの場合、データ・ストアへの初期接続になります。たとえば、これは、すべてのアプリケーションの接続を切断する必要がある致命的なエラーが発生した後に行われます。通常、データ・ストアへの初期接続では、最新のチェックポイント・ファイルをロードする必要があり、また、多くの場合リカバリを実行する必要があります。非常に大容量のデータ・ストアの場合、このプロセスに数分かかる場合があります。この間、新しい接続が行われなず、古い接続の切断が終了されないように、データ・ストアでのすべてのアクティビティがブロックされます。また、この結果、すべてのアプリケーションの接続が切断されるまで古いデータ・ストアが存続するため、データ・ストアの2つのコピーが同時に存在する場合もあります。初期接続時が重要な非常に大容量のデータ・ストアの場合、新しいデータ・ストアを起動する前にまず古いデータ・ストアが非アクティブになるまで待機する必要がある場合があります。これは、再起動ポリシーnorestartに設定してレプリケーション・エージェントが自動的に再起動されないように指定することで実現できます。

## プログラムからのレプリケーション・エージェントの制御

プログラムからデータ・ストアのレプリケーション・エージェントを起動および停止するには、レプリケーション・データ・ストアに接続し、ttRepStartおよびttRepStopプロシージャを使用します。

##### 例4.6

hdbc接続ハンドルで識別されるデータ・ストアのレプリケーション・エージェントを起動および停止するには、次のように入力します。

    rc = SQLAllocStmt( hdbc, &hstmt );
    rc = SQLExecDirect( hstmt, (SQLCHAR *)
        "CALL ttRepStart()", SQL_NTS );
    rc = SQLExecDirect( hstmt, (SQLCHAR *)
        "CALL ttRepStop()", SQL_NTS );

    ttRepPolicySetプロシージャをコールしてプログラムでレプリケーション再起動ポリシーを設定できます。「コマンドラインからのレプリケーション・エージェントの制御」で説明されている方法と同じ方法で、このプロシージャを使用してデータ・ストアの再起動ポリシーをmanual（デフォルト）、alwaysまたはnorestartに設定できます。

##### 例4.7

hdbc接続ハンドルで識別されるデータ・ストアのレプリケーション・ポリシーをalwaysに設定するには、次のように入力します。

    rc = SQLAllocStmt( hdbc, &hstmt );
    rc = SQLExecDirect( hstmt, (SQLCHAR *)
        "CALL ttRepPolicy ('always')", SQL_NTS );

注意: データ・ストアに排他接続（DSNでExclAccessを設定）しているアプリケーションでは、レプリケーション再起動ポリシーを設定できません。