








|
|
 |

PERFORCEのサーバ環境を別のマシンへ移動する方法
この移動は、同一アーキテクチャのマシン間で移動を行うか、同じテキストファイル・フォーマット(CR/LF)であるが異なるアーキテクチャ間で移動を行うか、テキストファイル・フォーマットもアーキテクチャもともに異なるマシン間で移動を行うか、に依存します。さらに、新しいマシンが異なるIPアドレスとホスト名を持つかどうかも条件に加わります。いずれの場合においてもあてはまる、一般的な手順は次のとおりです。:
- オリジナルのPERFORCEサーバ上で、チェックポイントを作成します。
- オリジナルPERFORCEサーバのチェックポイントから、ターゲットのPERFORCEサーバを構築します。
- PERFORCEのアーカイブ・ファイルをターゲット・サーバの所定の位置にコピーします。
- (必要であれば)ターゲット・サーバのアーカイブ・ファイルにおける改行コードを変換します。
- アーカイブ・ファイルについて転送の不備がないかを確認するために、'verify' を実行します。

同一アーキテクチャ
もし、2つのマシンのアーキテクチャが同一(例えば、SolarisとSolaris、NTx86とNTx86、Sun4.xとSolarisでも可)であるならば、サーバルート・ディレクトリの配下を単に新しいマシンへ移動するだけです。tarやcp、その他どのような手段でも構いません。$P4ROOTディレクトリ配下のすべて(db.*ファイルとdepotサブディレクトリ)を移動します。

異なるアーキテクチャであるが同一のテキスト・フォーマット
もし、2つのマシンのアーキテクチャが異なる(例えば、HPとSun、NTAXPとNTx86)けれども、WindowsとUNIX間で移動を行うのでないならば、やはりサーバルート・ディレクトリの配下を単に新しいマシンへ移動するだけで済みます。しかしながら、db.*ファイルについては異なるアーキテクチャ間での直接の互換がないため、そのままコピーしてはいけません。いったんチェックポイントを作成し、それから新しいマシンでデータベースを再構築してください。チェックポイントはテキストファイルであり、あらゆるアーキテクチャのPERFORCEサーバによって認識可能になっています。
繰り返しますが、いったんチェックポイントを作成してしまえば、tarやcpなどいかなる手段によっても、 $P4ROOT内のファイルをコピーすることができます。

WindowsからUNIXへの移動
注)日本語環境においては、以下に示す手順に加え、OSのファイルシステムに関する複雑な問題が存在します。そういう意味では、WindowsからUNIX(Linuxを含みます)への移動はお勧めできません。
それでもなお、WindowsからUNIXへの移動を行う必要がある場合は、 弊社技術サポートへご連絡ください。
このケースでは、チェックポイントを作成し、それをコピーし、そのコピーからターゲットのデータベースを再構築し、さらにdepotサブディレクトリを移動しなければならないところまでは、前述のケースと同様です。しかしながら、WindowsとUNIXではテキストファイルのフォーマットが異なるため、それに加えて複雑な手順が必要となります。depotサブディレクトリには、おそらくテキストファイルとバイナリファイルが存在しています。テキストファイル(RCSの "*,v" ファイル)とバイナリファイル("*.gz" ファイルを含んだ "*,d" ディレクトリ)に対して、それぞれ別の対応が必要となります。すなわち、テキストファイルについては改行コードを変換しなければならず、バイナリファイルについては何も変換を行ってはなりません。
チェックポイントをUNIXのターゲット・マシンに転送し、それをリストアした後、すべてのアーカイブ・ファイルをそのままの内容でターゲット・マシンへコピーするために、binaryモードのFTPを使用します。それから、ターゲットの$P4ROOTディレクトリ配下にあるすべてのテキストファイルについて、Windowsスタイルの改行コード CRLF(\r\n)をUNIXスタイルの改行コード LF(\n)へ変換します。この操作は、簡単なスクリプトを使っても実行できますし、たいていのUNIXディストリビューションが提供している dos2unix のようなユーティリティを使うこともできます。
Perlの例:
ターゲットの$P4ROOTディレクトリから、次のコマンドを実行します。
|
find . -type f -name '*,v' -print | xargs perl -p -i -e 's/\r\n/\n/;'
|
dos2unixの例:
マルチバイト・コードを含むテキストファイルに対しては、dos2unix で正しく変換できない場合があります。ご注意ください。
ターゲットの$P4ROOTディレクトリから、次のコマンドを実行します。
|
find . -type f -name '*,v' -print | xargs dos2unix |

検証(verify)
Windowsは大文字/小文字の区別がありませんので、PERFORCEのアーカイブ・ファイル($P4ROOT/depot 配下のファイル)を参照しているWindows上のメタデータは、大文字/小文字が混在しているかもしれません。これは、 Windowsサーバ上では何ら問題となりませんが、WindowsからUNIXへPERFORCE環境を移動することにより、アーカイブ・ファイルに対して大文字/小文字混在の参照を行うため、エラーが発生する可能性があります。したがって、PERFORCEサーバをWindowsからUNIXへ移行したら直ちに、次のコマンドを実行する必要があります。:
p4 verify -q //... > verify.errors
実行後、"verify.errors" ファイルに出力されている内容を確認します。関連するアーカイブ・ファイルのパスとマッチしないPERFORCEメタデータのエントリがあると、MISSING! のエラーが示されます。verify のエラーがすべて大文字/小文字に関するものというわけではありませんが、異なるプラットフォーム間で移動をを行った直後に出現した新しいエラーであれば、大文字/小文字の違いによるエラーであると解釈してよいでしょう。この問題を特定し、解決するサポートが必要な場合は、どうぞ 弊社技術サポートへご連絡ください。

UNIXからWindowsへの移動
注)日本語環境においては、以下に示す手順に加え、OSのファイルシステムに関する複雑な問題が存在します。そういう意味では、UNIX(Linuxを含みます)からWindowsへの移動はお勧めできません。
それでもなお、UNIXからWindowsへの移動を行う必要がある場合は、 弊社技術サポートへご連絡ください。
UNIXからWindowsへPERFORCEサーバを移動する手順は、2つの重要な例外を除いて、WindowsからUNIXへ PERFORCEサーバを移動する手順と同じです。
- 改行コードの変換は逆向きです。
UNIXスタイルの改行コード LF(\n)をWindowsスタイルの改行コード CRLF(\r\n)へ変換します。上記のPerl コマンドにおいて、正規表現を 's/\n/\r\n/' に変更します。
- ファイル名の大文字/小文字が異なるだけのファイルについては、それらのファイルをWindowsへ移動する前に、リネームしなければなりません。Windowsは大文字/小文字の区別がありませんので、UNIXサーバ上でファイル名の大文字/小文字が異なるだけのファイルは、Windows上へ転送されたときに同じ名前空間を占有してしまいます。例えば、UNIXサーバ上の独立した2つのファイル 'ABC' と 'abc' は、Windows上では同じファイルとして扱われます。データを失うようなこの潜在的な問題が存在するため、UNIXからWindowsへの変換はあまりお勧めしません。
UNIXからWindowsへの移行が完了した後、WindowsからUNIXへの以降のときと同様に 'p4 verify' を実行します。大文字/小文字の異なるファイルが同じ名前空間に保持される問題が発生すると、p4 verify の実行において BAD! のエラーが出力されます。

IPアドレスの変換
もし、新しいマシンのIPアドレスが古いマシンのIPアドレスと異なる場合、プロテクション・テーブルにおけるIPに基づいたアクセス制御を更新する必要があるかもしれません。さらに、PERFORCEのライセンス・ファイルをお持ちであれば、新しいIPアドレスを反映した新しいライセンス・ファイルを入手しなければなりません。ライセンス・ファイルの更新に関しては、弊社技術サポートまでご連絡ください。

ホスト名の変更
ホスト名が異なる場合には、各クライアント・ユーザがP4PORTの設定を変更する必要があります。もし、 PERFORCEサーバが動作しているマシンに対して、エイリアスとして "perforce" というホスト名が設定されているならば、クライアント・ユーザは P4PORT を設定する必要はありません。この場合、PERFORCEサーバが動作しているマシンを変更したときには、ネームサーバにおける "perforce" の設定を、古いマシンから新しいマシンへ変更するだけです。このように行った移動について、クライアント・ユーザはそれをまったく意識する必要がありません。 |
|
|