FAQ

PERFORCE

ナレッジベースからの転載記事

ID.KB2426

Q. ジャーナルファイルとチェックポイントファイルの読み方


原文: http://answers.perforce.com/articles/KB/2426

A.


概要

通常の環境下において、Perforce管理者がチェックポイントファイルおよびジャーナルファイルの閲覧や編集操作を余儀なくされることはありません。ただし、チェックポイントやジャーナルからの復旧に関わる問題を、トラブルシューティングする必要に迫られる場合があります。この記事には、ジャーナルファイルおよびチェックポイントファイルの構成における、難しい側面の理解を深めるために役立つ情報を記載します。

警告: 適切な指示を受けることなく、チェックポイントやジャーナルを編集すると、サーバのパフォーマンスに大きな影響を与えたり、データが破損したりすることがあります。Perforceデータベースのリストアに支援が必要な場合や、現在のチェックポイントやジャーナルファイルに問題が生じた際には、弊社テクニカルサポートまでご連絡ください。

詳細

チェックポイントおよびジャーナルファイルはテキスト形式です。これらのファイルは、大半のテキストエディタやテキストツール(grepsplitなど)を使用して、内容を確認することができます。これらのファイル内のデータは、次の書式で保存されています。

  • 各レコードの改行コードはNewLine("\n")
  • 各フィールドはスペース(" ")で区切られる
  • 文字列はアットマーク("@")を使用して「囲まれる」
  • 文字列にアットマークが含まれる場合、アットマークを2重に記述("@@")

: アットマークで囲われた文字列には、改行コードNewLineが含まれます(例: チェンジリストのコメントなど)。このため、改行コードNewLineに基づいて1行を読み込むテキスト指向のツール(grepsplitなど)を使用する場合は、十二分に注意してください。

フィールドの説明

フィールド 1

1つめのフィールドでは、そのフィールドに対するデータベース操作を説明します。このフィールドは、使用されるPerforceのバージョンによって異なります。

バージョン97.3以前

@put@ - レコードをデータベースに書き込む(入力)@del@ - レコードをデータベースから削除

バージョン98.1以降

@pv@ - 以前のデータベースバージョンの"@put@"を置き換え@dv@ - 以前のデータベースバージョンの"@del@"を置き換え

: チェックポイントでは、いずれかの形式が使用されますが、特にユーザが最初にチェックポイントを作成してからジャーナルをトランケートせずに、98.1より前のバージョンからアップグレードした場合、ジャーナルファイルには、"@put@"/"@del@"および"@pv@"/@dv@レコードが混在する可能性があります。

@rv@ - レコードを置き換え

これは、サーバに関連する限り、"@pv@"と機能的に同一です。一番の目的は、チェックポイントおよびジャーナルの可読性の向上にあります。

バージョン99.2以降

@vv@ - ジャーナルのみ - ジャーナルのプレイバックシーケンスにおける整合性チェック

(通常はバックアプしたジャーナルファイルの冒頭に存在する)このレコードの値は、「ジャーナル」カウンタの値に一致し、誤った順序でのジャーナルファイルの再リプレイを回避します。ジャーナルファイルのリストア時に、この値が一致しないと、「Journal out of sequence」エラーが出力されます。このエラーメッセージとともに、つぎの文も表示されます。

"Perforce server error:1 out of sequence journals were not replayed"

バージョン2006.2以降

@ex@および @mx@ - トランザクションマーカ

これらの行には、ジャーナルファイルに記録されるトランザクションのプロセスID(PID)および、タイムスタンプが記述されています。これらのマーカは、ジャーナルの複製(レプリケーション)ツール向けに用意されているので、データベースのレコードには対応していません。このため、これらの行がリストアされてもデータベースには何も記録されません。

バージョン2010.1以降

@nx@ - ジャーナルノート

データベースにテーブル行を記録せずに、発生したイベントに関するメタデータ情報を記録するという点において、@mx@や@ex@に類似します。ジャーナルノートを用いることで、ジャーナルやチェックポイントを後ほど使用するユーザは、ノートを確認のうえ、その情報を使用してそれらの振る舞いを管理することが可能となります。

バージョン2011.1以降

@dl@ - コンテンツ情報の削除

これらのレコードには、「p4 obliterate」、「p4 archive」、「p4 shelve -d」等のコマンドの実行によって、サーバのリポジトリから削除されたファイルコンテンツに関する情報が保持されます。これらは、ライブラリアンのファイル名/バージョン、削除されたアーカイブコンテンツのライブラリアンのタイプから構成されます。さらに、同レコードには削除に使用されたコマンドや、そのコマンドに渡されたファイル仕様についての情報も記録されます。

フィールド 2

このフィールドには、レコード形式のリビジョン番号が格納されます。

フィールド 3

3つめのフィールドには、データベースのテーブル名が保持されます。同じ名前のファイルが、Perforceサーバのルートディレクトリに作成されます。

その他のフィールド

特定のレコードにおけるその他のフィールドは、データベースのバージョンによって異なるため、使用しているPerforceの特定のバージョン向けのデータベーススキーマドキュメントを参照してください。最新リリースのデータベーススキーマドキュメントは、以下の場所に公開されています。

http://www.perforce.com/perforce/doc.current/schema/index.html

古いスキーマバージョンのドキュメントについては、弊社テクニカルサポートにお問い合せください。


<< ナレッジベースからの転載記事に関するFAQ一覧へ戻る