p4 pull
メタデータまたはバージョン化ファイルをHelixサーバマスターサーバから取得しレプリカへ複製、または作業中の転送についてのステータス情報を表示します。
ほとんどの場合、サーバの複製にはp4 pull
よりもp4
replicate
の方が適切です。
構文
p4 [g-opts] pull [-J prefix] [-i interval] [-b interval] [-T excluded_tables] [-P serverid]
p4 [g-opts] pull -u [-i interval -b interval --batch=number --min-size=number --max-size=number --trigger]
p4 [g-opts] pull -l [-s | -j [-J prefix]]
p4 [g-opts] pull -d -f file -r revisionp4 [g-opts] pull -L [-i interval]
p4 [g-opts] pull -R [file] p4 pull -T p4 pull -u -t target [-i interval -b interval]
説明
p4 pull
コマンドには5つの構文バリアントがあります。
バリアント |
説明 |
---|---|
1 | 1番目のバリアントは、次で指定したターゲットサーバからジャーナルレコードを取得します。 P4TARGET |
2 | 2番目のバリアントは、次で指定したターゲットサーバからファイルの内容を取得します。 P4TARGET |
3 | 3番目のバリアントは、スケジュールされたファイル転送に関する情報を表示します。 |
4 | 4番目のバリアントは、スケジュールされたファイル転送をキャンセルします。 |
5 | 5番目のバリアントは、ジャーナルレコードを、ターゲットサーバのジャーナルファイルからではなく、ローカルのジャーナルファイル(p4 journalcopy コマンドで作成)から取得するように指定します。 その後、これらのレコードはレプリカサーバのデータベースに書き込まれます。 フェイルオーバー用にスタンバイレプリカを使用している場合、このバリアントが必要です。 |
テスト目的以外でp4 pull
がコマンドラインから実行されることはほとんどありません。 代わりにstartup
構成可能変数を設定し、レプリカサーバが起動するたびにn
p4 pull
プロセスが起動するようにしてください。
マスターサーバまたはレプリカサーバのどちらかを停止すると、レプリカサーバはステートファイルという小さいテキストファイルの中に最新のジャーナルの位置を記録します。 デフォルトでは、ステートファイルはstate
という名前でレプリカサーバのルートディレクトリに格納されます。 statefile
で構成可能変数p4 configure
を設定することにより、別のファイル名を指定できます。
ジャーナルおよびファイル内容の取得
p4 pull
コマンドは、P4TARGET
により指定されたターゲットサーバからジャーナルレコードまたはファイル内容のどちらかを取得するよう、現在のレプリカサーバに指示します。 レプリカサーバの中には、ジャーナルレコードとファイル内容の両方は必要ないものもあります。例えば、オフラインのチェックポイント設定に使用するレプリカサーバでは、ファイルの内容を転送する必要はありません。
メタデータとファイルコンテンツの両方を複製するには、2つのp4 pull
コマンドを同時に実行する必要があります。この場合、p4 pull
を(-u
オプションを付けずに)1回実行してマスターサーバのメタデータを複製し、さらにp4 pull
を(-u
オプションを付けて)1回以上実行してサーバのバージョンファイルを複製します。
-i
オプションは次の更新までのポーリング間隔(単位は秒)を指定します。-i
が指定されない場合、p4 pull
はポーリング間隔を1として実行した後に終了します。-b
オプションは、pull実行の失敗後に待機する時間を指定します。-b
が指定されていない場合、p4 pull
は60秒ごとに再試行されます。-u
オプションを使用して、ファイルコンテンツを取得する必要があることを指定します。 このオプションが指定されない場合は、ジャーナルレコードのみが取得されます。--batch
オプションを使用して、1回の要求でプルスレッドが処理するファイルの数を指定します。 通常、デフォルト値の1で十分です。 長い遅延が発生する構成の場合は、このフラグに大きな値を設定すると、サイズの小さなファイルを大量に処理する際に、アーカイブの転送速度が上がる可能性があります。 (このオプションの使用には、バージョン15.2以上のマスターとレプリカの両方が必要です。)
-T
オプションは、複製しないテーブルを除外します。 例えば、ビルドファームサーバは、db.have
、db.working
、db.resolve
テーブルを複製する必要はありません。
待ち状態のファイル転送処理を削除するには、p4 pull -d -f
file -r rev
を使用します。 このコマンドは、マスターに回復不可能なエラーがあるために待ち状態のファイル転送が繰り返し失敗される場合に有効です。
rpl.compress
構成可能変数を設定して、p4
pull
を使用して転送されたジャーナルレコードのデータを圧縮することができます。
ステータス情報を得る
待ち状態のファイル内容転送のリストを表示するには、-l
オプションを使用します。 -l
とともに-s
が指定されると、スケジュールされたファイル転送の概要が表示されます。 追加の行で、少なくとも1つの作業中の転送を含む最も古いチェンジリスト番号を指定します。 これは、レプリカサーバにアーカイブ内容の転送のラグがどれくらあるかのヒントになります。
1つの演算子で、p4 journalcopy -l
、p4 pull -l -j
、およびp4 pull -l -s
コマンドを実行できます。 これにより、1つの演算子で複製の状況を確認することが可能になります。
File transfers: n active/m total, bytes: nnn active/mmmmm total. Oldest change with at least one pending file transfer: n
例えば、以下が出力されたとします。
File transfers: 1 active/63 total, bytes: 745 active/23684 total.
これは、63のアーカイブファイルの転送が作業中で、そのうちの1つが現在アクティブになっており、転送が現在アクティブに進行中している745の転送には23,684バイト必要であることを示しています。
-l
とともに-j
が指定されると、現在のレプリカとそのマスターに関するカレントジャーナルの状態、ステートファイルの最終更新時刻、およびサーバのローカル時刻とタイムゾーンが報告されます。 以下に例を示します。
Current replica journal state is: Journal jjj, Sequence: sssss. Current master journal state is: Journal jjj, Sequence: sssss. The statefile was last modified at: 2012/01/10 14:23:23. The Server time is currently: 2012/01/10 14:23:23 -0800 PST
jjj
の値はジャーナル番号を指定します。sssss
は、そのジャーナルのオフセットを指定します。
オプション
|
取得の失敗後に再試行するためのポーリング間隔を秒数で指定します。 このオプションが指定されていない場合、pullは60秒後に再試行されます。 |
|
ジャーナルレコードの代わりにアーカイブファイルを転送します。 このオプションを省略すると、このコマンドはジャーナルレコードを取得します。 1つのレプリカサーバで、p4 pull -uコマンドを繰り返し実行することがでかきます。 |
|
このオプションを使用して、1回の要求でプルスレッドが処理するファイルの数を指定します。 長い遅延が発生する構成の場合は、このフラグにデフォルト値よりも大きな値を設定すると、サイズの小さなファイルを大量に処理する際に、アーカイブの転送速度が上がる可能性があります。 デフォルト: |
--minsize number
|
これらのオプションで呼ばれたプルスレッドは、これらのオプションで指定したデータサイズの範囲のファイルをプルします。 サイズ単位はバイトですが、2Kのように、K、M、G、Tなどの修飾子も使用できます。 最大および最小サイズの例を参照してください。 |
--maxsize number
|
|
|
作業中のファイル内容転送を中止します。ただし、 注意
これは、通常のHelixサーバファイルとリビジョンデータではなく、アーカイブファイルとリビジョンになります。 |
|
ファイル内容を取得するポーリング間隔を秒数で指定します。 最も短い間隔は1秒です。 このオプションを省略すると、コマンドは1回のみ実行されて終了します。 間隔を |
|
ローテートされたジャーナルファイルのプレフィックスを指定します。構成可能変数 マスターサーバがデフォルトではないローテートされたジャーナルの位置を使用している場合、これによりマスターサーバのジャーナルファイルの位置を指定することができます。 |
|
転送がスケジュールされているファイルのリストを表示します。 このオプションを p4 pull -l(および |
|
レプリカとマスターにおけるカレントジャーナルの状態を表示します。 マスターにおけるジャーナルローテーションの処理中、 |
|
待ち状態のファイル内容転送の概要を表示します。 このリストが予想外に長いまたは増加している場合は、追加で |
|
通常 |
|
指定サーバの 以前のリリースでは、このオプションはフィルタ仕様で設定されたフィルタを確認していました。 この確認はもう必要ではありません。 このオプションは、以前のリリースのサポート継続のために保持されました。 これは、複数のサーバでフィルタ構成を共有する場合にも便利です。 この場合、 |
-R
|
失敗したアーカイブファイルの転送を再試行する。 |
|
レプリカサーバのジャーナルレコードから除外するデータベーステーブル( 複数のテーブルを指定するには、リストを二重引用符で囲み、テーブル名をスペースで区切ります。 テーブル名は、カンマで区切ることもできます。 例えば、 |
--trigger
|
|
-t target | -uオプションと共に指定すると、アーカイブファイルの転送処理をバックグラウンドで並行して実行することができます。 いずれかのプルスレッドで「スタック」が発生した場合は、コミットサーバでp4 pull -u -tコマンドを手動で実行すると、スタックしたスレッドをプルすることができます。 |
|
詳細については、「グローバルオプション」を参照してください。 |
使用上の留意点
ファイル引数にリビジョン指定子を使えるか? | ファイル引数にリビジョン範囲を使えるか? | 最低限必要なアクセスレベル |
---|---|---|
適用外 |
適用外 |
|
複製環境で動作させるためのHelixサーバの構成に関する詳細については、『Helix Coreサーバ管理者ガイド: マルチサイト展開』を参照してください。
最大および最小サイズの例を参照してください。
startup.2=pull -u -i 1 --batch=1000 --min-size=1 --max-size=2047 startup.3=pull -u -i 1 --batch=5 --min-size=2048 --max-size=4096 startup.4=pull -u -i 1 --batch=5 --min-size=4097
関連コマンド
起動時に |
|
あるサーバから別のサーバにメタデータを複製する |
|
ジャーナルレコードまたはチェックポイントレコードを未加工のフォームで表示する |
|
ジャーナルデータをレプリカサーバのローカルファイルシステムにコピーする |