p4 journalcopy

概要

ジャーナルデータをマスターサーバからスタンバイレプリカのローカルファイルシステムにコピーします。このコピーは、オリジナルに対してバイト単位まで同一です。

構文


p4 [g-opts] journalcopy [-i n] [-b wait]
p4 [g-opts] journalcopy -l

解説

p4 journalcopyコマンドには2つの構文バリアントがあります。

  • 1つ目のバリアントは、ジャーナルデータをスタンバイレプリカのローカルファイルシステムにコピーします。

  • 2つ目のバリアントは、マスターのジャーナルからレプリカのジャーナルへの現在のコピー位置についての情報を示します。

スタンバイレプリカは、読み取り専用レプリカより、フェイルオーバーの仕組みが簡単です。スタンバイレプリカがマスターサーバを引き継ぐには、マスターサーバのメタデータとバージョンファイルのコピーを保有している必要があります。これを行うには、以下のコマンドを実行する必要があります。

  • バージョンファイルを複製する、1つ以上のp4 pull -uコマンド。

  • マスターのジャーナルコピーを、スタンバイレプリカのローカルファイルシステムにコピーするp4 journalcopyコマンド。このコマンドでは、コピー済みのジャーナルレコードは、レプリカのデータベースに適用されません。

  • p4 journalcopyで作成したジャーナルファイルからジャーナルレコードを取得し、それらをレプリカのデータベースに適用するp4 pull -Lコマンド。

p4 journalcopyコマンドとp4 pull -Lコマンドを組み合わせて使用すると、p4 pullコマンドと同じ結果になりますが、次の違いがあります。

  • データベースの更新前に、ジャーナルファイルがコピーされます。

  • コピーされたファイルは、論理的に同等というだけではなく、物理的にマスターのジャーナルと同一になります。

    ジャーナルコピーと同一のファイルを保有していると、フェイルオーバー時に便利です。なぜなら、お使いのインストール環境にある他のサーバーが、ステートファイルでマスタージャーナルファイルの物理的バイトオフセットを保存している場合、フェイルオーバー時にそれらのオフセット位置を調整する必要がなくなるからです。反映先を新しいマスターに切り替え、複製を続けるだけで済みます。

  • 追加のステートファイルを使用して、p4 journalcopyコマンドとp4 pull -Lコマンドを調整します。

1つの演算子で、p4 journalcopy -l,p4 pull -l -j,、およびp4 pull -l -sコマンドを実行できます。これにより、1つの演算子で複製の状況を確認することが可能です。

p4 journalcopyコマンドの実行は非常に速いため、ジャーナルレコードをマスターサーバからスタンバイレプリカサーバへ転送してもほとんどラグが発生せず、またマスターサーバーのオーバーヘッドもほとんどありません。

p4 journalcopy -lコマンドの出力を次に示します。シーケンス番号は、ジャーナルでコピーが到達したオフセット位置を示します。

Current replica persisted journal state is: Journal 2, Sequence 6510347

このオフセットは、レプリカのp4 pull -lコマンドの出力と比較することができます。後半には、ジャーナル内でのオフセット位置が示され、データベースに書き込まれます。

オプション

-b wait

p4 journalcopyコマンドで、試行が失敗してから再試行するまで待機する秒数を指定します。デフォルトの値は60秒です。

-i n

n秒ごとにp4 journalcopyコマンドを繰り返します。このオプションを使用しない場合およびnが1の場合、このコマンドは1度実行されます。

nを0に設定すると、このコマンドはマスターからジャーナルレコードを入手可能になり次第取得します。

-l

コピー済みジャーナルの現在の位置をレポートします。

g-opts

“グローバルオプション”」を参照してください。

使用上の留意点

ファイル引数にリビジョン指定子を使えるか?

ファイル引数にリビジョン範囲を使えるか?

最低限必要なアクセスレベル

適用外

適用外

super

p4 journalcopy -i 3

3秒ごとにコマンドを繰り返します。

関連コマンド

マスターのバージョンファイルのコピーを作成します。

p4 pull -u

マスターサーバの観点の複製状況の情報を取得するにはp4 serversコマンドの-Jオプションを使用します。

p4 servers