FAQ

会社セミナー

PERFORCE

ID.033

Q. チェックポイントとジャーナル


チェックポイントとジャーナルは必要ですか?


問題

チェックポイントを作成するために時間をかけるべきですか?

最近のチェックポイント・ファイルおよびジャーナル・ファイルを保存するべきですか?

A.


解決策

もちろん、そうするべきです。 「PERFORCE システム管理者ガイド」では、PERFORCE ディポのバックアップとリカバリのための、チェックポイントとジャーナルの使用方法が記述されています。 このテクニカルノートでは、PERFORCE システム管理者向けに、チェックポイントとジャーナルがなぜそれほど重要であるかを記述します。

背景

PERFORCEサーバには、バージョン化ファイルおよびメタデータ(チェンジリスト、作業状態のファイル、ラベルなど)の2種類のデータが格納されています。 これらは共にPERFORCEサーバのルート・ディレクトリに格納されます。バージョン化ファイルはディポのサブディレクトリに格納されます。 PERFORCEインストールにはディポごとに1つのサブディレクトリがあります。 メタデータはPERFORCEデータベースに格納されます。 PERFORCEルート・ディレクトリにある db.* ファイルはそれぞれ、バイナリでエンコードされた単一のデータベース・テーブルです。

ディスク・スペースの不足、ハードウェアの故障、およびシステム障害によって、PERFORCEサーバのファイルが破壊されることがあります。 そのため、PERFORCEディポのディレクトリ構造全体を、通常のファイルシステム・バックアップを使用して定期的にバックアップするべきです。 ディポ・サブディレクトリにあるバージョン化ファイルは、整合性が損なわれることなくバックアップからリストアすることができます。

一方、PERFORCEデータベース・ファイルはシステム・バックアップにコピーされた時点でのトランザクションの整合性が保たれていない可能性があります。 システム・バックアップから db.* ファイルをリストアすると、データベースの整合性が失われる可能性があります。 データベースが破壊された後にその整合性を保証する唯一の方法は、PERFORCEのチェックポイント・ファイルおよびジャーナル・ファイルからデータベースをリストアすることです。

チェックポイント・ファイル

チェックポイントとは、PERFORCEデータベースを再作成するために必要なすべての情報を含むファイルです。 チェックポイントには、バージョン化ファイルの内容が含まれていないことに注意してください。 バージョン化ファイルをチェックポイントからリストアすることはできません。 しかし、チェンジリスト、ラベル、ジョブなどはすべてチェックポイントからリストアすることができます。

チェックポイントは自動的には作成されません。 誰かが、または何らかの手段によって、PERFORCEサーバマシン上でチェックポイント作成コマンドを実行しなければなりません。 チェックポイントを作成するコマンドは、「PERFORCEシステム管理者ガイド」に記述されています。

定期的にチェックポイントを作成するように自動実行プログラムを設定することができます。 プログラム出力を必ずチェックして、チェックポイント作成が成功していることを確認してください。 初めてチェックポイントが必要になったときに、チェックポイントのプログラムが動作していなかったことを発見するのでは遅すぎます。 チェックポイントを作成するときには、稼動中のジャーナルへのパスを指定するのを忘れないでください。

チェックポイント作成コマンド自体が失敗する場合は、ただちに support@perforce.com に連絡してください。 通常、チェックポイントの障害はリソースの問題(ディスク・スペース、パーミッションなど)の兆候であり、適切に処理しなければデータベースに危険をもたらすことがあります。

ジャーナル・ファイル

ジャーナルは、最後のチェックポイント以降のすべてのデータベース変更を記録する、動作中のトランザクション・ログです。 それは2つのチェックポイントの間の架け橋です。 月曜日のチェックポイントと、それ以降水曜日まで収集されたジャーナルがある場合、それらの2つのファイルには水曜日に作られたチェックポイントと同じ情報が含まれます。 したがって、水曜日にディスクが満杯の状態になったためにPERFORCEデータベースが破壊されたのであれば、水曜日のチェックポイントが未作成でもデータベースのリストアが可能です。

ジャーナル・ファイルはリストアに役立つと同時に監査にも役立ちます。 チェックポイントはスナップショットにすぎないため、データベースの状態しか表すことができず、データベースがどのようにしてその状態になったかに関する情報は保持しません。 一方、ジャーナルは、データベースが変更された方法および時期を示します。 ワークスペースが削除されたのがいつであるか、誰がラベルを変更したか、どのユーザが最近アクティブであったか、などの情報を得るには、ジャーナルが必要になります。

現在のジャーナルの場所

デフォルトでは、現在のジャーナル・ファイルの名前は journal であり、P4ROOTディレクトリに配置されています。 しかし、ディスクの障害によりそのルート・ディレクトリが破壊されると、ジャーナル・ファイルにもアクセスできなくなります。 したがって、デフォルトの設定を使用せずに、P4ROOT以外のファイルシステムに書き込まれるようにジャーナル・ファイルを設定すべきです。 PERFORCEサーバのP4JOURNAL環境変数を設定して(またはUNIXの場合は、-Jオプションを付けてPERFORCEを起動)、ジャーナル・ファイルを書き込む場所を指定してください。 (詳しくは、「PERFORCEシステム管理者ガイド」をご覧ください。)

ジャーナル・ファイルの管理

ジャーナル・ファイルはPERFORCEサーバの起動時に自動的に作成されます。 それ以降はチェックポイントの都度、新しいジャーナル・ファイルが作成され、古いジャーナルがリネームされます。 ジャーナル・ファイルの大きさを制御するために、定期的にチェックポイントを作成する必要があります。 現在のジャーナルが非常に大きくなっていると、チェックポイントが必要です。 チェックポイントの後にジャーナル・ファイルが小さく(つまり切り捨て)ならない場合は、テクニカルサポートに連絡してください。

データベースをリストアし、喪失したデータを復元する

システム障害によりPERFORCEルート・ディレクトリのデータが失われた場合、以下のものがあれば完全に復元する準備が整います。

1. 最新のチェックポイント・ファイル
2. 現在のジャーナル・ファイル
3. 最新のP4ROOTディレクトリのバックアップ


「PERFORCEシステム管理者ガイド」の「バックアップとリカバリ」の章を読み返し、「データベースをリカバリするには」の箇所の指示に従ってください。 データベース・ファイルのリストアまたはPERFORCEサーバの再起動において何か問題がある場合は、テクニカルサポートに連絡してください。

ディスク破損によりPERFORCEのルート・ディレクトリ全体をリストアしている場合は、ディポ・ディレクトリに最新のファイル・リビジョンがない可能性があります。 PERFORCEデータベースの復元後に最新のチェンジリストを調べ、最後のシステム・バックアップの後、ディスク破損の前にサブミットされたファイルがないかどうかチェックします。 通常、これらのファイルの最新リビジョンはワークスペースから再度取得できます。 これに関しては、テクニカルサポートに連絡してください。

追加情報

「PERFORCEシステム管理者ガイド」の「バックアップとリカバリ」の章には、p4dコマンドを使用してチェックポイントを作成する方法およびチェックポイントとジャーナルからリカバリを行う方法が記述されています。

「PERFORCEコマンド・リファレンス」の"p4 admin"コマンドの章では、P4コマンドライン・クライアントを使ったチェックポイント作成について説明されています。

Jeff Bowlesにより寄稿されたSystem Administration FAQでは、バックアップとリカバリの戦略、およびいくつかのp4dコマンドの微妙な差異について説明されています。

<< PERFORCEに関するFAQ一覧へ戻る