テクニカルノート046  


PERFORCEサーバのアップグレード

タスク

新しいバージョンの PERFORCEサーバにアップグレードする方法

解決策

新しいバージョンの PERFORCEサーバを実行するには、お使いの PERFORCE ライ センスが最新でなければなりません。期限が切れたライセンスは、アップグレー ドしたサーバでは機能しません。ライセンス無しの環境で起動している場合に は、問題になりません。ライセンス無しの PERFORCEサーバ環境では、2人のユー ザと 2つ(2004.2 以前)または 5つ(2005.1 以降)の ワークスペースに制限されます。ライセンス無し環境は、PERFORCE の評価目的で使用されることがあ ります。

アップグレード作業を進める前に、現行バージョンの PERFORCEサーバに施され た最新の変更を確実に把握するため、PERFORCE リリース ノート をご参照ください。

基本的に、PERFORCEサーバをダウングレードすることはできません。したがっ て、PERFORCEサーバをアップグレードする前に必ずチェックポイントを作成す る必要があります。

基本的に、どのバージョンの PERFORCEサーバからであっても、アップグレード を実行することが可能です。例えば 2007.2 から 2009.2 へ、直接アップグレー ドすることができます。段階的に、個々のバージョンへアップグレードする必 要はありません。ビルトインのアップグレード処理は、自動的に PERFORCE デー タベースの更新を段階的に行い、その結果を出力します。

十分なライセンスを取得している(またはライセンス無しで 2ユーザ/2つまた は 5つのワークスペースを持つ環境で運用している)と想定すると、最近のリ リースからアップグレードする場合には、PERFORCEサーバのアップグレードは単に以下の手順を実行するだけで済みます。
1.  現在稼動中の p4d を停止します。
2.  次のコマンドを実行して、データベースのチェックポイントを作成します。 ただし、"root" は db.* ファイルが格納されているディレクトリを指します。
	p4d -r root -jc
3.  バージョン化ファイルをバックアップします。
4.  新しい p4d 実行可能モジュールをダウンロードします。Windows の場合は、 インストーラ perforce_ja.exe または perforce64_ja.exe をダウンロードします。
5.  新しい p4d を適切な場所にインストールします。Windows の場合は、 インストーラ perforce_ja.exe または perforce64_ja.exe を実行します。
6.  以下のコマンドを実行します。
	p4d -xu -r root
7.  通常お使いのパラメータで p4d を再起動します。

アップグレードが完了した後に、考慮すべきオプション作業があります。それは、将来的に db.* ファイルを復旧する場合に備えて、新しく更新したデータベースのチェックポイントを作成することです。新しいチェックポイントを作 成するには、上記の 1. および 2. の手順を再実行します。

データベースのチェックポイント作成およびバージョン化ファイルのバックアップに関する情報は、『PERFORCE システム管理者ガイド』の「PERFORCE のサポート:バックアップとリカバリ」をご参照ください。

2001.1 より前のリリースから PERFORCEサーバをアップグレードする場合は、その他にも考慮事項があるかもしれません。2001.1 より前のリリースからのアップグレードを確実に成功させるためには、弊社テクニカルサポートにお問い合わせください。

日本語版 PERFORCE をアップグレードする場合は、必ず PERFORCE テクノロジーの「ご注意!」 をご参照ください。

リリース 2005.1 以降へアップグレードする場合、それ以前にディポへ登録されたすべてのファイルを対象に、ファイル名の長さをメタデータとして記録するため、当該アップグレードに続いて少なくとも 1回、"p4 verify -u" を実行しなければなりません。詳しくは、Important Notes for 2005.1 and later. をご参照いただくか、弊社テクニカルサポートにお問い合わせください。

古い PERFORCE クライアント・プログラム(p4、P4Win、P4V および P4SCC)は、より新しいサーバ・バージョンと共に問題なく動作します。新しいサーバ・リリースのいくつかの機能を動作させるには、クライアントのアップグレードも必要になります。より古いクライアント・プログラムを稼動させているユーザは新しいサーバ機能を使用できません。

PERFORCE のリモート・ディポのサポートは、すべての PERFORCEサーバがリリース 98.2 以降であることを必要とします。2005.1 以降のサーバは、99.2 以降のサーバからのみリモート・ディポとして使用できます。

メタデータのデータベース・スキーマのアップグレード

相当な量のメタデータ・データベース・スキーマをアップグレードするには、'p4d -xu' コマンドを実行します。一般的に 'p4d -xu' コマンドは、1,000個以上のチェンジリストを持つサーバをアップグレードする際に必要となります。サーバの持つチェンジリストが 1,000個より少ない場合には、新しいサーバの起動時に、自動的にアップグレードされます。1,000個以上のチェンジリストを含むメタデータ・データベースを使用し、相当量のスキーマのアップグレードが必要である新しいサーバを起動しようとすると、次のサーバ・エラーが発生します。
	Database is at old upgrade level x.  Use 'p4d -xu' to upgrade to level y


ただし、x および y はサーバ内部のアップグレード・レベルを示します。

エラーの出力後に、サーバは強制終了されます。Windows 環境では、エラー・メッセージはサーバ・ログに書き出されますが、表示されません。

場合によっては、サーバ・アップグレードにおいて 'p4d -xu' コマンドを必要としません。例えば、2005.2 のサーバを 2006.1 にアップグレードする場合は、チェンジリストの数にかかわらず、'p4d -xu'を実行する必要はありません。しかし、以前に 2006.1サーバによって使用されていたメタデータ・データベースを使用し、2005.2サーバを単に起動したとしても、2006.1サーバを 2005.2 にダウングレードできるわけではありません。新しいサーバでは、そのサーバが実行される際に、メタデータ・データベースのスキーマの変更がさらに行われます。

必要とされる追加の空き領域

ほとんどのアップグレードにおいて、db.* ファイルおよびジャーナル用に、追加の空き領域が必要です。p4d -xu コマンド実行の際、それぞれに対して必要とされる最大追加空き領域を、以下の表に示します。表に示した内容は最悪な場合のシナリオに基づいているため、ほとんどのアップグレードでは、実際に使用される追加空き領域は表に示したサイズよりも少なくなります。

2008.2 または 2009.2 の p4d -xu 実行中に必要な最大追加空き領域
アップグレード
前のリリース
db.* ファイルに必要な
最大追加空き領域
ジャーナルに必要な
最大追加空き領域
2008.1 なし 以前のバージョンからのアップグレード要求
に対する 2008.1 -xu をご参照ください。
2007.3 db.revのサイズの0.5倍 db.changeのサイズ
+ db.revのサイズの0.5倍
2007.2 db.revのサイズの1.5倍
+ db.viewのサイズ
db.changeのサイズ
+ db.revのサイズの1.5倍
+ db.viewのサイズ
2006.2 db.revのサイズの1.5倍
+ db.viewのサイズ
db.changeのサイズ
+ db.revのサイズの1.5倍
+ db.viewのサイズ
2006.1 db.revのサイズの1.5倍
+ db.viewのサイズ
db.changeのサイズ
+ db.revのサイズの1.5倍
+ db.viewのサイズ
2005.2 db.revのサイズの1.5倍
+ db.viewのサイズ
db.changeのサイズ
+ db.revのサイズの1.5倍
+ db.viewのサイズ
2005.1 db.revのサイズの3.5倍
+ db.viewのサイズ
db.changeのサイズ
+ db.revのサイズの4.5倍
+ db.viewのサイズ
2004.2 db.revのサイズの3.5倍
+ db.viewのサイズ
db.changeのサイズ
+ db.revのサイズの6.5倍
+ db.viewのサイズ

2007.3 の p4d -xu 実行中に必要な最大追加空き領域
アップグレード
前のリリース
db.* ファイルに必要な
最大追加空き領域
ジャーナルに必要な
最大追加空き領域
2007.2 db.revのサイズ
+ db.viewのサイズ
db.revのサイズ
+ db.viewのサイズ
2006.2 db.revのサイズ
+ db.viewのサイズ
db.revのサイズ
+ db.viewのサイズ
2006.1 db.revのサイズ
+ db.viewのサイズ
db.revのサイズ
+ db.viewのサイズ
2005.2 db.revのサイズ
+ db.viewのサイズ
db.revのサイズ
+ db.viewのサイズ
2005.1 db.revのサイズの3倍
+ db.viewのサイズ
db.revのサイズの4倍
+ db.viewのサイズ
2004.2 db.revのサイズの5倍
+ db.viewのサイズ
db.revのサイズの6倍
+ db.viewのサイズ

2007.2 の p4d -xu 実行中に必要な最大追加空き領域
アップグレード
前のリリース
db.* ファイルに必要な
最大追加空き領域
ジャーナルに必要な
最大追加空き領域
2006.2 0 0
2006.1 db.revのサイズ db.revのサイズ
2005.2 db.revのサイズ db.revのサイズ
2005.1 db.revのサイズの3倍
+ db.viewのサイズ
db.revのサイズの4倍
+ db.viewのサイズ
2004.2 db.revのサイズの5倍
+ db.viewのサイズ
db.revのサイズの6倍
+ db.viewのサイズ

2006.2 の p4d -xu 実行中に必要な最大追加空き領域
アップグレード
前のリリース
db.* ファイルに必要な
最大追加空き領域
ジャーナルに必要な
最大追加空き領域
2006.1 db.revのサイズ db.revのサイズ
2005.2 db.revのサイズ db.revのサイズ
2005.1 db.revのサイズの3倍
+ db.viewのサイズ
db.revのサイズの4倍
+ db.viewのサイズ
2004.2 db.revのサイズの5倍
+ db.viewのサイズ
db.revのサイズの6倍
+ db.viewのサイズ

2006.1 の p4d -xu 実行中に必要な最大追加空き領域
アップグレード
前のリリース
db.* ファイルに必要な
最大追加空き領域
ジャーナルに必要な
最大追加空き領域
2005.2 db.revのサイズ db.revのサイズ
2005.1 db.revのサイズの2倍
+ db.viewのサイズ
db.revのサイズの3倍
+ db.viewのサイズ
2004.2 db.revのサイズの4倍
+ db.viewのサイズ
db.revのサイズの5倍
+ db.viewのサイズ

2005.2 の p4d -xu 実行中に必要な最大追加空き領域
アップグレード
前のリリース
db.* ファイルに必要な
最大追加空き領域
ジャーナルに必要な
最大追加空き領域
2005.1 db.revのサイズの2倍
+ db.viewのサイズ
db.revのサイズの3倍
+ db.viewのサイズ
2004.2 db.revのサイズの4倍
+ db.viewのサイズ
db.revのサイズの5倍
+ db.viewのサイズ

2005.1 の p4d -xu 実行中に必要な最大追加空き領域
アップグレード
前のリリース
db.* ファイルに必要な
最大追加空き領域
ジャーナルに必要な
最大追加空き領域
2004.2 db.revのサイズの2倍
+ db.viewのサイズ
db.revのサイズの2倍
+ db.viewのサイズ

2002.1 より前のリリースから PERFORCEサーバをアップグレードする際、ジョブを使用する場合は、p4 jobs -R を実行してジョブの索引を再作成しなければなりません。p4 jobs -R の実行中に db.* ファイルに対して必要とされる最大追加空き領域は、db.ixtext のサイズと同じです。p4 jobs -R の実行中にジャーナルに対して必要とされる最大追加空き領域は、db.ixtext のサイズの 3倍、db.boddate のサイズの 2倍、db.bodtext のサイズの 2倍、および db.ixdateのサイズの 2倍を合計した大きさになります。

ジャーナルに必要とされる追加空き領域を最小にするには、アップグレード実行中はジャーナルの記録を無効にします。アップグレードが正常に終了したら、ただちにジャーナルの記録を有効にし、チェックポイント作成を行ってくださ い。ジャーナル記録の有効化および無効化に関しては、『PERFORCE システム管理者ガイド』の「PERFORCE のサポート:バックアップとリカバリ」にある「ジャーナル・ファイル」のセクションをご参照ください。
戻る