syncreplica

更新パケットをエクスポートまたはインポートします

適用性

製品名 コマンド タイプ
MultiSite multiutil サブコマンド
プラットフォーム
UNIX®
Windows®

概要

  • 更新パケットのエクスポート
    sync/replica

    –exp/ort
    [ –cl/an clan-name ] [ –site site-name ] –fam/ily family-name
    -u/ser username [-p/assword ]  password [-max/size max-packet-size
    [-lim/it num-packets ] ]
    {     { -sh/ip| -fsh/ip }
    -wor/kdir directory [ -sc/lass storage-class ]
    [-pex/pire date ]
    [-not/ify email ]
    | –out { packet-file-pname | staging-area-pname } }
    replica ...

  • 更新パケットのインポート
    sync/replica

    –imp/ort
    [ –cl/an clan-name ] [ –site site-name ] –fam/ily family-name
    –u/ser username [ –p/assword ] password
    { –rec/eive[ –sc/lass storage-class ]
    | { packet-file-pname | staging-area-pname } ... }
    [ -plug/epoch ]

説明

複製を 1 つ以上のシブリング複製と同期することは、3 つのフェーズのプロセスです。

  1. あるサイトで、syncreplica -export コマンドにより、そのサイトの 複製に発生した変更 (他のサイトでも同様に発生する可能性のあるもの) を含む更新パケットを作成します。
  2. パケットが 1 つ以上の他のサイトに送信されます。
  3. 別のサイトで、syncreplica -import コマンドにより更新パケット内の 変更内容を同じデータベースの複製に適用します。 このステップは、パケットを受信するすべてのサイトで行います。

更新パケットの内容:

  • 宛先複製用の最後の更新が生成された以降の、現在の複製で発生したすべての変更。(既に宛先複製に送信された変更は、パケットから除外されます。)
  • 他の複製で発生した変更。これらの変更について、現在の複製はこれらの複製からの以前の更新パケットで受信していますが、宛先複製にまだ渡していません。

いずれの場合も、syncreplica -export は指定されたすべての宛先で使用する単独の論理更新パケットを作成し、そのパケットはそれらの特定レプリカだけを更新するために使用できます。

エクスポート フェーズの注記

MultiSite は、複製の効率的な更新を目的としています。syncreplica -export は、以前に送信された操作の除外を試行します。(ただし、同じ複製にある操作を複数回送信しても問題ありません。最初の操作はインポートされ、以降の同じ操作は無視されます。)

syncreplica -export は一時ファイルを、-workdir オプションで指定したディレクトリに保管します。 このディレクトリは、事前に存在していてはならず、エクスポート パケットを作成した後、削除されます。

インポート フェーズの注記

更新パケットは、パケットを受信した同期サーバーに関連付けられた、該当する複製に適用されます。特定の複製または記憶場所を指定する必要はありません。

インポート処理では、更新パケットが正しい順序で適用されます。したがって、パケットはコマンド ラインで任意の順に指定できます。

インポート フェーズ中、データベースの複製は通常のデータベース操作ではロックされませんが、他のすべての MultiSite 操作に対してはロックされます。

パケットのスキップ

syncreplica -import は、以下の状態では 更新パケットを処理しません。

  • この複製にまだインポートされていない他の変更内容に依存する変更が、更新パケットに含まれている。これは通常、この複製に宛てられた更新パケットが送信されなかったか、送信中に失われたことを意味します。
  • 複数部からなる論理パケットの以前の物理パケットを処理中に問題を検出した。

この場合、syncreplica -import は、説明のメッセージを表示します。

更新エラーおよびパケットの再生

syncreplica -import が、レプリカに操作を適用し始めた後にエラー メッセージを表示して終了することがあります。 たとえば、別のプロセスでデータベースをロックしたために、インポートが失敗することがあります。 データベースがアンロックされると、 syncreplica -import を実行して、更新パケット全体の処理をやり直すことができます。

既に正常処理された更新パケットをインポートしても問題ありません。同じ変更は 2 度行われません。

更新パケットの削除

syncreplica -import を 1 度呼び出して、 同期サーバーに関連付けられたすべてのターゲット複製にパケットを正常に適用すると、 更新パケットはコマンドが処理を完了するときに削除されます。 パケットが複数の syncreplica -import コマンドで処理される場合は、削除されません。

フックの起動

Rational® ClearQuest® フックは、 パケットのインポート中に行われた変更に応じて起動されることはありません。

名前の競合の処理

syncreplica は、異なる複製で作成されたオブジェクト間の名前の競合を解決します。

遅延更新

syncreplica は、 Rational ClearQuest ユーザーに 複製の更新を通知しません。アクティブ ユーザーはすべて、Rational ClearQuest の通常のデータベース ポーリング ルーチンを使用して数秒以内に更新を認識します。

パケット配信のエラー処理

パケットを配信できない場合、パケットはストア アンド フォワード機能を使用して、元の複製の同期サーバーに送信されます。メール メッセージがストア アンド フォワード管理者に送信されます。これは、パケットを繰り返し配信しようとしてすべて失敗し、割り当てられた時間が経過した後に発生します。また、宛先ホストが不明かまたはデータ ファイルが存在しない場合にも発生することがあります。ストア アンド フォワード設定で、有効期限、管理者の電子メール アドレス、通知プログラムを指定します。

制限

スーパー ユーザー権限が必要です。

オプションと引数 : エクスポート フェーズ

所属、サイト、ファミリーの指定

デフォルト
所属: このサイトで複製された最初の所属です。このホストに複数のデータベース セット接続が登録されている場合は、 -clan を指定する必要があります。

サイト: 現在のサイトです。このホストに複数のサイトがある場合は、-site を指定する必要があります。

ファミリー: デフォルトはありません。ファミリーを指定する必要があります。

–cl/an clan-name
複製の所属の名前。
–site site-name
複製のサイトの名前。
–fam/ily family-name
ユーザー データベース ファミリー: ユーザー データベースの作成時に付けられたデータベース名。

スキーマ リポジトリ ファミリー: ファミリー名は MASTR です。

ユーザー名とパスワードの指定

デフォルト
ユーザー名とパスワードを指定する必要があります。
–u/ser user
スーパー ユーザー権限を持つユーザーの名前です。
–p/assword password
指定したユーザーに関連付けられたパスワードです。

更新パケット サイズの指定

デフォルト
-maxsize を指定しない場合、デフォルトのパケット サイズは、使用する発送方法によって次のように決まります。
  • -ship または -fship を指定して作成されたパケットの大きさは、 shipping.conf ファイル (UNIX) または MultiSite コントロール パネル (Windows) で指定された最大パケット サイズを超えることはありません。
  • -out を指定して作成されたパケットの大きさは、2 GB を超えることはありません。
–max/size max-packet-size [ –lim/it num-packets ]
物理パケットの最大サイズ。数値の後に単一文字を続けて表現します。たとえば、次のように指定します。
500k
500 キロバイト
20m
20 メガバイト
1.5g
1.5 ギガバイト

-limit オプションは syncreplica が生成するパケット数を制限します。各パケットの大きさは max-packet-size を超えることはありません。記憶ベイまたはステージング域のディスク スペースが制限されている場合は、このオプションを使用します。

更新パケットの処理

デフォルト
なし。syncreplica -export で作成された更新パケットの保管または他のサイトへの送信方法を 指定する必要があります。-ship または -fship を使用して、 -sclass オプションを省略すると、syncreplica は、shipping.conf ファイル (UNIX と Linux) または MultiSite コントロール パネル (Windows) で cq_default クラスに指定された記憶ベイの場所にパケットを入れます。
-shi/p -fsh/ip
更新パケットを、ストア アンド フォワード記憶ベイの 1 つ以上のファイルに保管します。syncreplica は物理パケットそれぞれについて別個の発送オーダーを作成し、配信する時期と場所を指示します。宛先は、複製データベースで replica-name 引数と関連付けされた同期サーバーです。(同期サーバーの関連付けは、mkreplica -export で作成され、 chreplica で変更できます。)

-fship (強制発送) を使用すると発送サーバーが起動し、更新パケットが即時に送信されます。 -ship を使用しても、このサーバーは起動されません。

–wor/kdir directory
使用する syncreplica の一時作業ディレクトリ。 このディレクトリは、事前に存在していてはならず、syncreplica がエクスポート処理を完了した後、削除されます。
–sc/lass class-name
パケットと発送オーダーの記憶クラスを指定します。syncreplicashipping.conf ファイル (Linux と UNIX システム) または MultiSite コントロール パネル (Windows) から記憶クラスを検索して、使用する記憶ベイの場所を判別します。
-out packet-file-pname
最初の更新パケットの名前。追加の物理パケットは (ある場合)、packet-file-pname_2packet-file-pname_3、(以下同様) という名前のファイルに入れられます。

更新パケットは自動的に配信されません。配信するには適切な方法を使用します。-out を指定してパケットを作成し、 ストア アンド フォワード機能を使用して配信できます。

staging-area-pname
パケット ファイルが保管されるディレクトリ。

パケット配信のエラー処理

デフォルト
パケットを配信できない場合、パケットはストア アンド フォワード機能を使用して、元の複製の同期サーバーに送信されます。メール メッセージがストア アンド フォワード管理者に送信されます。これは、パケットを繰り返し配信しようとして失敗し、割り当てられた時間が経過した後に発生します。また、宛先ホストが不明かまたはデータ ファイルが存在しない場合にも発生することがあります。ストア アンド フォワード設定で、有効期限、管理者の電子メール アドレス、通知プログラムを指定します。
–pex/pire date-time
ストア アンド フォワード機能がパケットの配信を停止して、エラーのメール メッセージを生成する時間を指定します。この オプションは、shipping.conf ファイル (UNIX システム または Linux) または MultiSite コントロール パネル (Windows) の記憶クラスに指定された有効期限を無効にします。

date-time 引数は、以下のどの形式でもかまいません。

date.time | date | time
ここで
date:
= day-of-week | long-date
time:
= h[h]:m[m][:s[s]] [UTC [ [ + | - ]h[h][:m[m] ] ] ]
day-of-week:
= today |yesterday |Sunday | ... |Saturday |Sun | ... |Sat
long-date:
= d[d]month[[yy]yy]
month:
= January |... |December |Jan |... |Dec

time は、現地のタイム ゾーンに合わせた 24 時間形式で指定します。time を省略した場合、デフォルト値は 00:00:00 です。date を省略した場合、デフォルト値は today です。世紀、年、特定の日付を省略した場合は、最新のものが使用されます。タイム ゾーンに関係なく同じ時刻を適用する場合は、UTC を指定します。UTC 時間に対して正のオフセットを指定するにはプラス (+) 演算子を、負のオフセットを指定するにはマイナス (-) 演算子を使用します。時間や分のオフセットを付けないで UTC を指定すると、デフォルト設定はグリニッジ標準時 (GMT) になります。(協定世界時 (UTC) 1970 年 1 月 1日以前の日付は無効です。)

  • 22-November-2002
  • sunday
  • yesterday.16:00
  • 0
  • 8-jun
  • 13:00
  • today
  • 9-Aug.10:00UTC
–not/ify e-mail-address
配信エラー メッセージが、指定された電子メール アドレスに送信されます。

電子メール通知が無効の Windowsホストでエラーが発生した場合、メッセージは Windows イベント ビューアに表示されます。メッセージには、このオプションで指定された e-mail-address 値と、操作の状態をこのユーザーに通知することを要求する注記が含まれています。

宛先複製の指定

デフォルト
なし。
replica ...
宛先複製のサイト名。1 つ以上の宛先複製を指定できます。たとえば、boston_hubboston_hub が更新パケットを受信することを指定し、boston_hub bangaloreboston_hubbangalore の両方が更新パケットを受信することを指定します。

オプションと引数 : インポート フェーズ

所属、サイト、ファミリーの指定

デフォルト
所属: このサイトで複製された最初の所属です。このホストに複数のデータベース セット接続が登録されている場合は、 -clan を指定する必要があります。

サイト: 現在のサイトです。このホストに複数のサイトがある場合は、-site を指定する必要があります。

ファミリー: デフォルトはありません。ファミリーを指定する必要があります。

–cl/an clan-name
複製の所属の名前。
–site site-name
複製のサイトの名前。
–fam/ily family-name
ユーザー データベース ファミリー: ユーザー データベースの作成時に付けられたデータベース名。

スキーマ リポジトリ ファミリー: ファミリー名は MASTR です。

ユーザー名とパスワードの指定

デフォルト
ユーザー名とパスワードを指定する必要があります。
–u/ser user
スーパー ユーザー権限を持つユーザーの名前です。
–p/assword password
指定したユーザーに関連付けられたパスワードです。

更新パケットの場所の指定

デフォルト
なし。
–rec/eive [ –sc/lass storage-class ]
このオプションは、同期サーバーで syncreplica を実行する場合にのみ役立ちます。

現在のホストの記憶ベイをスキャンします。このホストに関連した複製を対象としていた未処理の更新パケットは、ホスト上の該当する複製に適用されます。-sclass を使用すると、syncreplica は、指定された記憶クラスの記憶ベイのみをスキャンします。

syncreplica が複製作成パケットを検出すると、ストア アンド フォワード管理者にメールを送信します。 (現在のホストが Windows ホストで、電子メール通知が有効でない場合、メッセージは Windowsイベント ビューアに表示されます。) これらの複製作成パケットをインポートするには、mkreplica を使用します。

packet-file-pname | staging-area-pname ...
packet-file-pname を更新パケットとして処理します。 指定されたそれぞれの staging-area-pname について、ディレクトリ内の以前に処理されなかった更新パケットをすべて見つけて、それらを該当する複製に適用します。

以下の例では、読みやすいように行を分けてあります。各コマンドは、1 行に入力しなければなりません。

エクスポート

  • 複製 boston_hub で、複製 sanfran_hub の更新パケットを生成します。パケットを c:¥cqms¥sanfran_hub_sync.xml に保管します。

    multiutil syncreplica -export -clan telecomm -site boston_hub
    -family SAMPL -user susan -p passwd -out c:¥cqms¥sanfran_hub_sync.xml
    sanfran_hub

    Multiutil: パケット ファイル `c:¥cqms¥sanfran_hub_sync.xml' が生成されました

  • 後で発送するためにパケット ファイル記憶ベイに入れます。

    multiutil syncreplica -export -clan telecomm -site boston_hub
    -family DEV -user susan -p passwd -maxsize 500mb -workdir c:¥work
    -ship -sclass cq_default sanfran_hub

    Multiutil: パケット ファイル `C:¥work¥sync_BOSTON_HUB_26-March-02_10-55-16.xml' が生成されました
    multiutil: Shipping order
    "C:¥temp¥cqms¥ms_ship¥outgoing¥sh_o_sync_BOSTON_HUB_26-March-02_
    10-55-16.xml" generated.

  • 前述の例と同様ですが、パケットは即時に発送されます。

    multiutil syncreplica -export -clan telecomm -site boston_hub
    -family DEV -user susan -password p -maxsize 500mb -workdir
    c:¥work -fship -sclass cq_default sanfran_hub

    Multiutil: パケット ファイル `C:¥work¥sync_BOSTON_HUB_26-March-02_10-56-43.xml' が生成されました
    multiutil: Shipping order "C:¥cqms¥ms_ship¥outgoing¥sh_o_sync_
    BOSTON_HUB_26-March-02_10-56-43.xml" generated.
    multiutil: Attempting to forward/deliver generated packets...
    multiutil:   -- Forwarded/delivered packet
    C:¥cqms¥ms_ship¥outgoing¥sync_BOSTON_HUB_26-March-02_10-
    ---- NOTE: consult the NT event log for errors.

インポート

  • 受信更新パケットをすべて cq_storage 記憶クラスにインポートします。

    multiutil syncreplica -import -clan telecomm -site sanfran_hub
    -family DEV
    -user jcole -p passwd -receive -sclass cq_storage

    Multiutil: boston_hub からの 4 トランザクションが MASTR データベースに再現されました。
    Multiutil: boston_hub からの 2 トランザクションが DEV データベースに再現されました。
    Multiutil: パケット C:¥temp¥cqms¥ms_ship¥incoming¥sync_boston_hub_22-January-02_11-10-34.xml を削除しています

  • 更新パケット sanfran_hub_sync.xml を複製 sanfran_hub で処理します。

    multiutil syncreplica -import -clan telecomm -site sanfran_hub
    -family DEV -user jcole -p passwd c:¥cqms¥sanfran_hub_sync.xm

    Multiutil: boston_hub からの 1 トランザクションが MASTR データベースに再現されました。
    Multiutil: boston_hub からの 2 トランザクションが DEV データベースに再現されました。
    Multiutil: パケット c:¥cqms¥sanfran_hub_sync.xml を削除しています。

  • 複製 sanfran_hub が最新のスキーマ バージョンにアップグレードされる前に、更新パケット sanfran_hub_sync.xml を複製 sanfran_hub で処理しようとします。

    multiutil syncreplica -import -clan telecomm -site sanfran_hub
    -family DEV -user jcole -p passwd c:¥cqms¥sanfran_hub_sync.xml

    Multiutil: The UPDATE_PACKET packet sent from boston_hub at
    2002-01-22 15:15:50  is destined for schema revision 2, not 1;
    サイト管理者がデータベースをアップグレードしてから syncreplica を再実行してください。
    Multiutil: boston_hub からの 2 トランザクションが MASTR データベースに再現されました。
    Multiutil: パケット c:¥cqms¥sanfran_hub_sync.xml を保存しています。

  • 受信記憶ベイ内のすべての更新パケットを処理します。

    multiutil syncreplica -import -clan telecomm -site boston_hub
    -family DEV -user susan -p passwd -receive

    Multiutil: SANFRAN_HUB からの 1 トランザクションが MASTR データベースに再現されました。
    Multiutil: SANFRAN_HUB からの 2 トランザクションが DEV データベースに再現されました。
    Multiutil: パケット C:¥temp¥cqms¥ms_ship¥incoming¥sync_SANFRAN_HUB_07-February-02_11-24-49.xml を削除しています



フィードバック