Helix Coreサーバ管理者ガイド: 基本 (2019.1)

バックアップ手順

インストールされているHelixサーバをバックアップするには、夜間バックアップ作業の一環として、以下の手順を実行します。

  1. -jc (journal-create)フラグを指定してp4dを呼び出すか、あるいはp4 adminコマンドを使用することにより、チェックポイントを作成します。以下のいずれかの操作を実行します。

    コマンドを日常的に実行してチェックポイントファイルを管理するスクリプトがあるホストの場合:

    $ p4d -jc

    または、ホストから物理的に離れているクライアントの場合:

    $ p4 admin checkpoint

    p4dはチェックポイント作成中にデータベース全体をロックするので、通常はバックアップ手順の途中でPerforceサービスを停止する必要はありません。

    Note

    非常に大規模なサイトの場合(db.*ファイルが数GBに及ぶ場合)、チェックポイントの作成には相当の時間がかかる可能性があります。

    そのような場合には、システムの活動が低下する時間帯まで、チェックポイントの作成とジャーナルの更新を延期するとよいかもしれません。例えば、夜間バックアップ中にjournalファイルのみアーカイブしておき、週に1度チェックポイントを作成してジャーナルファイルを更新するようにしてもよいでしょう。

  2. 任意のファイルをバックアップする前に、チェックポイントが正常に作成されたことを確認します。ディスクがクラッシュした場合は、バックアップしたチェックポイントが完全な状態であることを理解しておくことが重要です。

    以下の条件のいずれかを検証します。

    • p4d -jc(またはp4 admin checkpoint)で次の値が返される
    • カレントジャーナルファイルが切り捨てられる

    p4d -jvコマンドを使用してチェックポイントの整合性を検証することもできます。

  3. チェックポイントのMD5チェックサムと、チェックポイントプロセスによって作成された.md5ファイルを比較して、チェックポイントが正常にディスクに書き込まれたことを確認します。

    .md5ファイルのチェックサムは、圧縮される前のファイルのチェックサムに対応しています。サービスがWindow上でホストされている場合であっても、UNIX形式の行末が想定されます。

    -z圧縮オプションを使用して作成されたチェックポイントファイルの場合、そのファイルを解凍して行末の差異を確認しなければならない場合があります。Windowsの場合、チェックポイントを解凍してから.md5の合計を計算するまでの間に、Windowsの行末を再度追加する必要があります。

  4. チェックポイントが正常に作成された後で、次のファイルをバックアップします

    • チェックポイントファイルと、その.md5ファイル
    • ローテーション済みジャーナルファイル。チェックポイントがnである場合は、ローテーション済みジャーナルはjournal.n-1となります。 「ジャーナルファイル」も参照してください。
    • ライセンスファイル
    • バージョン化ファイル
    ヒント

    次の項目のバックアップは任意です。

    次のファイルのバックアップの使用例はありません。

    • db.*ファイル
    • server.locks directory
    Note

    まれに、チェックポイントが作成された時点から、バージョン化ファイルがバックアップユーティリティによってバックアップされる時点までの間に、バージョン化ファイルツリーが変更されることがあります(例えば、ユーザが、バックアップ中にファイルを消去してしまった場合や、ファイルバックアップのプロセス中にWindowsサーバ上のファイルをサブミットしてしまった場合です)。

    ほとんどのサイトには、こうした問題の影響は及びません。Helixサーバを1日24時間かつ週7日間ずっと稼働させておいても、メリットに比べてリスクは小さいといえます。システムの活動が低下する時間帯にバックアップを実行する場合は、特にそうです。

    ただし、毎回確実にバックアップを遂行することを最も重視とする場合は、チェックポイント作成前にPerforceサービスを停止し、バックアップ処理が完了してから再起動することを検討してください。

    Note

    Windowsでは、Perforceサービス実行中にシステムバックアップを行う場合、バックアッププログラムがdb.*ファイルのバックアップをしないようにしておく必要があります。

    稼働中のサーバで、バックアッププログラムを使用してdb.*ファイルをバックアップする場合、それらのファイルはバックアップが完了するまでWindowsによってロックされます。この間、Helixサーバはファイルにアクセスできなくなります。そのため、ユーザがファイルを更新しようとしても、サーバでの処理が失敗する可能性があります。

    使用中のバックアップソフトウェアがバックアップのプロセスからdb.*ファイルを除外できない場合、バックアップ開始前にp4 admin stopを実行してサーバを停止させ、バックアップ処理が完了してからサービスを再起動してください。

  5. p4 serveridコマンドを使用してserver.idファイルでサーバを識別した場合は、サーバのルートディレクトリのserver.idファイルのバックアップを作成する必要があります。
ヒント

管理者は、毎晩ではなく、毎週p4 verifyを実行することをお勧めします。大規模なインストールを実行する場合:

  • ファイルの検証の実行には時間がかかる可能性があります
  • ファイルの検証中はサーバの負荷が増大するため、その他のHelixサーバコマンドの処理が影響を受ける可能性があります

コマンドは以下のようになります。

$ p4 verify //...

または

$ p4 verify -q //...

-q (quiet)オプションを指定して実行すると、エラーが検出されたときのみ出力を行います。

p4 verifyを実行して、サーバ上のアーカイブデータが正しいかどうかを確認します。p4 verifyを定期的に使用して、以下のことを可能にすることを推奨します。

  • 破損を見つけます
  • クラッシュが生じた場合にバックアップから復元されたファイルの状態を特定することができます

p4 verifyコマンドの詳細については、「署名によりファイルを認証する」を参照してください。

ヒント

このページに記載されている手順は基本的なものです。大きなデータセットを持つ組織の場合は、ダウンタイムなしのチェックポイント、ほぼダウンタイムなしのアップグレードなどの機能を備えた参照実装を参照してください。サーバ展開パッケージ(SDP)の詳細については、https://swarm.workshop.perforce.com/projects/perforce-software-sdp/を参照してください。