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コマンドの出力と比較することができます。後半には、ジャーナル内でのオフセット位置が示され、データベースに書き込まれます。
オプション
|
p4 journalcopyコマンドで、試行が失敗してから再試行するまで待機する秒数を指定します。デフォルトの値は60秒です。 |
|
|
|
コピー済みジャーナルの現在の位置をレポートします。 |
|
「“グローバルオプション”」を参照してください。 |
使用上の留意点
ファイル引数にリビジョン指定子を使えるか? |
ファイル引数にリビジョン範囲を使えるか? |
最低限必要なアクセスレベル |
---|---|---|
適用外 |
適用外 |
|
例
p4 journalcopy -i |
3秒ごとにコマンドを繰り返します。 |