# 管理の手引き

# AFS データのバックアップと復元

本章では、AFS データのバックアップおよび復元方法、およびバックアップ・データベースの管理方法を説明しています。これは、 AFS バックアップ・システムの構成 の説明に従い、すべてのバックアップ・システム・コンポーネントの構成を完了していることを前提としています。

## 手順の概要

この章では、指示されたコマンドを使って以下のタスクを実行する手順について説明します。

対話モードに入る | backup (interactive)
対話モードを出る | (backup) quit
対話モードの操作をリストする | (backup) jobs
対話モードの操作を取り消す | (backup) kill
テープ・コーディネーターを開始する | butc
テープ・コーディネーターを停止する | <Ctrl-c>
テープ・コーディネーターの状況を検査する | backup status
データをバックアップする | backup dump
ダンプ・レコードの表示 | backup dumpinfo
ボリュームのダンプ履歴を表示する | backup volinfo
テープのコンテンツをスキャンする | backup scantape
ボリュームを復元する | backup volrestore
パーティションを復元する | backup diskrestore
ボリューム・グループの復元 | backup volsetrestore
バックアップ・データベースの整合性の検証 | backup dbverify
バックアップ・データベース内の破壊の修復 | backup savedb および backup restoredb
ダンプ・セットをバックアップ・データベースから削除する | backup deletedump

## バックアップ・システムのインターフェースの使用

バックアップ操作を実行する場合、以下の 3 つのバックアップ・システム・コンポーネントとの対話操作を行います。

- backup スイートのコマンドを発行して、バックアップ操作を開始します。任意の AFS クライアントまたはサーバーのコマンド・シェルで、アクセス可能な backup バイナリーからのコマンドを発行できます (または、シェル・スクリプトでこれらを呼び出せます)。通常の構成では、バイナリーは、サーバー・マシンの /usr/afs/bin、およびクライアント・マシンの /usr/afsws/etc ディレクトリーに配置されています。

  このスイートは、バックアップ・サーバーおよびボリューム・ロケーション (VL) サーバーへの持続接続に関する複数のコマンドを発行できる対話モードを提供します。対話モードでは、いくつかの便利な機能が用意されています。詳細については、対話モードおよび正規コマンド・モードの使用 を参照してください。

  オペレーティング・システムによっては、そのシステムの backup コマンドを含むものもあります。このようなオペレーティング・システムを実行するマシンの場合、これを構成して、任意の backup バイナリーにアクセスするようにしてください。

- バックアップ操作を実行して、テープ装置、またはバックアップ・データ・ファイル間との読み取りまたは書き込みを行う前に、該当するテープ・コーディネーター・マシンへの専用接続をオープンし、装置またはファイルを処理をするテープ・コーディネーター (butc) プロセスを開始する必要があります。 butc プロセスは、操作の実行中、または実行が可能である間は、専用接続に対して実行が継続されていなくてはなりません。詳細については、 テープ・コーディネーター・プロセスの開始および停止を参照してください。
- バックアップ・サーバー (buserver) プロセスは、データベース・サーバー・マシン上で実行する必要があります。ほとんどのバックアップ操作では、バックアップ・データベースの情報へのアクセス、またはその変更が要求されるためです。AFS インストールの手引き では、バックアップ・サーバーの構成方法を説明しています。

バックアップ・システム・パフォーマンスに矛盾がないように、 3 つのバイナリー (backup、butc、および buserver) すべての AFS ビルド・レベルが一致する必要があります。ビルド・レベルの表示方法は、バイナリー・ファイルの作成レベルの表示 を参照してください。

### ローカル・スーパーユーザー root、または外部セルからのバックアップ操作の実行

デフォルトでは、バックアップ操作で使用するボリュームおよびバックアップ・データベースは、 /usr/vice/etc/ThisCell ファイル (テープ・コーディネーター・マシンおよび backup コマンドを実行するマシンにあります) に名前のあるセルに属するサーバー・マシンに配置されています。同様に、ほとんどの backup コマンドの発行においては、ローカル・セルの /usr/afs/etc/UserList ファイルにリストされている AFS トークンを ID に持つ必要があります (通常、セル内のすべてのサーバー・マシンについて同じ)。ただし、バックアップ操作の実行は、外部セルのボリュームまたはバックアップ・データベース上で行うことができ、この際、特権 AFS の ID ではなくローカル・スーパーユーザー root としてログインします。

ローカル・セルのボリュームで、ローカル・セルのマシンを使用してバックアップ操作を行うには、その外部セルを、テープ・コーディネーターおよび backup コマンド・インタープリターの実行セルに指定する必要があります。以下の 2 つの方法のどちらかを使用します。どちらの方法でも、外部セルの /usr/afs/etc/UserList ファイルにリストされている管理者トークンが必要です。

- backup コマンドおよび butc コマンドを発行する前に、両方のコマンド・シェルの AFSCELL 環境変数を外部セル名に設定します。
- butc およびすべての backup コマンドには -cell 引き数を組み込みます。 backup (対話モード) コマンドに引き数を組み込む場合、これは対話式セッション中発行されるすべてのコマンドに適用されます。

管理者 AFS トークンなしにバックアップ操作を実行するには、テープ・コーディネーター・マシンおよび backup コマンドを発行するマシンのどちらとも、ローカル・スーパーユーザー root としてログオンする必要があります。両方のマシンともサーバー・マシンであり、少なくとも、他のサーバー・マシンのファイルに一致する /usr/afs/etc/KeyFile ファイルがある必要があります。次に -localauth 引き数を、 butc コマンドおよびすべての backup コマンド (または backup (対話モード) コマンド) の両方に組み込みます。テープ・コーディネーターおよび backup コマンド・インタープリターは、ローカル・ファイルの /usr/afs/etc/KeyFile ファイル中の最新のキー・バージョン数のサーバー暗号化鍵を使用してサーバー・チケットを構成し、これをローカルの /usr/afs/etc/ThisCell ファイルに含まれるバックアップ・サーバー、ボリューム・サーバー、および VL サーバーに提示します。チケットには有効期限はありません。

同じコマンドで -cell および -localauth オプションを組み合わせることはできません。また、各コマンドとも AFSCELL 環境変数または /usr/vice/etc/ThisCell ファイルに定義された設定を上書きします。

### 対話モードおよび正規コマンド・モードの使用

backup コマンド・スイートは、バックアップ・サーバーおよび VL サーバーへの持続接続に関する複数のコマンドを発行できる、 対話モード を提供します。対話モードは、以下の機能を提供します。

- 通常のコマンド・シェル・プロンプトの代わりに `backup>` プロンプトが表示されます。
- コマンド名から最初の backup 文字列が省略できます。操作コードおよびオプション名のみを入力します。
- backup スイートに含まれないコマンドは発行できません。
- 対話モードに入る際、管理者 AFS ID を前提とする、または外部セルを指定する場合、これは対話式セッション中発行されるすべてのコマンドに適用されます。 ローカル・スーパーユーザー root、または外部セルからのバックアップ操作の実行 を参照してください。
- シェルのメタ文字を二重引用符で囲む必要がありません。

対話モードでバックアップ操作を開始する場合、バックアップ・システムは ジョブ ID 番号 を割り当てます。 (backup) jobs コマンドを使用すると、現在の操作および保留中の操作のリストが表示できます。説明は、対話モードで保留または実行中のジョブを表示する を参照してください。 (正規および対話モードの両方で、テープ・コーディネーターは、 backup コマンドで開始した各操作に対して タスク ID 番号 を割り当てます。タスク ID 番号は、 backup status コマンドでトラックすることができます。テープ・コーディネーター・プロセスの開始および停止 を参照してください。)

(backup) kill コマンドを使用すると、対話モードの操作を取り消すことができます。説明は、対話モードで操作を取り消すには を参照してください。ただし、ダンプ操作は取り消さない方がよいでしょう。作成されるダンプが不完全なものとなり、復元操作を中止した場合は、ボリュームが矛盾した状態になるか、これがサーバー・マシンから完全に除去されてしまう場合があるためです。詳細は、データのバックアップ および データの復元と回復 を参照してください。

(backup) jobs および (backup) kill コマンドは対話モードでのみ使用可能で、正規コマンド・モードでは同等の機能のコマンドは存在しません。

### 対話モードに入るには

1. /usr/afs/etc/UserList ファイルにリストされているユーザーとして認証されていることを検証します。対話モードに入るだけでは特権は必要とされませんが、その他のほとんどの backup コマンドでは特権が必要です。また、モードに入る際に前提とする AFS ID は、内部で発行するすべてのコマンドに適用されます。必要な場合には、bos listusers コマンドを発行します。このコマンドについては、UserList ファイルのユーザーの表示で詳しく説明しています。

          % bos listusers <machine name>

2. システム・プロンプトで backup (対話式) コマンドを発行します。 `backup>` プロンプトが表示されます。 -localauth および -cell オプションのいずれかを組み込めますが、両方を組み込むことはできません (ローカル・スーパーユーザー root、または外部セルからのバックアップ操作の実行 を参照してください)。

          % backup
          backup>

### 対話モードの終了

1. `backup>` プロンプトで quit コマンドを発行します。コマンドが正常に実行されると、コマンド・シェル・プロンプトが表示されます (保留または現在実行中のジョブがない場合のみ)。保留または現在実行中のジョブを表示、および取り消すには、対話モードで保留または実行中のジョブを表示する および 対話モードで操作を取り消すには の指示に従ってください。

          backup>  quit
          %

### 対話モードで保留または実行中のジョブを表示する

1. `backup>` プロンプトで jobs コマンドを発行します。

          backup> jobs

   ここで、

   j
     は、jobs の受け入れ可能な省略形です。

出力には、現行対話セッション中に backup コマンド・インタープリターが使用するトークンの有効期限日付および時刻が必ず含まれています。フォーマットは、次のとおりです。

          date   time: TOKEN EXPIRATION

スケジュールされているダンプ・オペレーションに対して指定した実行日付および時刻が、 date time より遅い場合、個々の行が (以下の段落で説明するように) この行の下に表示され、現行トークンがこれを使用できないことを示します。

対話モードに入るときに、backup コマンドの発行者が -localauth フラグを組み込んだ場合、代わりに行は次のように読み取ります。

       :  TOKEN NEVER EXPIRES

スケジュールされたダンプ・オペレーションの項目の形式は以下のとおりです。

       Job job_ID:  timestamp:  dump  volume_set  dump_level

ここで、

job_ID
  バックアップ・システムにより割り当てられたジョブの ID 番号。

timestamp
  ダンプ・オペレーションが開始される日付および時刻を示します。形式は、 month/date/year hours:minutes (24 時形式) です。

volume_set
  ダンプするボリューム・セット

dump_level
  ダンプ・オペレーションを実行するダンプ・レベルを示します。

任意のほかのタイプの保留中または実行中のオペレーションについての行の形式は、以下のとおりです。

       Job job_ID:  operation  status

ここで、

job_ID
  バックアップ・システムにより割り当てられたジョブの ID 番号。

operation
  指定したコマンドで開始されたテープ・コーディネーターが実行しているオペレーション。

  `Dump` `(`dump name`)`
    backup dump コマンドによって開始されます。dump name の形式は以下のとおりです。

    volume_set_name.dump_level_name

  `Restore`
    backup diskrestore、backup volrestore、または backup volsetrestore コマンドによって開始されます。

  `Labeltape` `(`tape_label`)`
    backup labeltape コマンドによって開始されます。tape_label は、backup labeltape コマンドの -name または -pname 引き数によって指定される名前です。

  `Scantape`
    backup scantape コマンドによって開始されます。

  `SaveDb`
    backup savedb コマンドによって開始されます。

  `RestoreDb`
    backup restoredb コマンドによって開始されます。

status
  以下のメッセージの 1 つにより、ジョブの現在の状況を示します。メッセージが表示されない場合は、ジョブはまだ保留中であるかまたは終了しています。

  number `Kbytes, volume` volume_name
    ダンプ・オペレーションの実行中の場合、テープまたはバックアップ・データ・ファイルにこれまでコピーされたキロバイト数および現在ダンプされているボリューム。

  number `Kbytes, restore.volume`
    復元オペレーションの実行中の場合、テープまたはバックアップ・データ・ファイルから AFS にこれまでコピーされたキロバイト数。

  `[abort requested]`
    (backup) kill コマンドが発行されたが、その終了シグナルは、まだテープ・コーディネーターには送信されていない。

  `[abort sent]`
    オペレーションは (backup) kill コマンドにより取り消されたことを意味する。バックアップ・システムがオペレーションを待ち行列から削除するか、あるいは実行を停止すると、そのオペレーションは、このコマンドからの出力には表示されなくなります。

  `[butc contact lost]`
    backup コマンド・インタープリターがテープ・コーディネーターに到達できない。このメッセージは、オペレーションを処理しているテープ・コーディネーターが、オペレーションの実行中に終了されたか失敗したことを示しているか、あるいはテープ・コーディネーターに対する接続がタイムアウトになったことを意味します。

  `[done]`
    テープ・コーディネーターはオペレーションを終了したことを意味する。

  `[drive wait]`
    オペレーションが、指定されたテープ・ドライブが空きになるのを待機している。

  `[operator wait]`
    テープ・コーディネーターは、バックアップ・オペレーターがテープをドライブに挿入するのを待機していることを示す。

### 対話モードで操作を取り消すには

1. `backup>` プロンプトで jobs コマンドを発行して、取り消す操作のジョブ ID 番号を表示します。詳細は、対話モードで保留または実行中のジョブを表示する を参照してください。

          backup> jobs

2. (backup) kill コマンドを発行して操作を取り消します。

          backup> kill <job ID or dump set name>

   ここで、

   k
     は、kill の受け入れ可能な省略形です。

   job ID or dump set name
     jobs コマンドにより報告されたジョブ ID 番号で取り消すものを指定するか、または (ダンプ操作の場合のみ) volume_set_name.dump_level_name 形式のダンプ名を指定します。

### テープ・コーディネーター・プロセスの開始および停止

バックアップ操作を実行して、テープ装置、またはバックアップ・データ・ファイル間との読み取りまたは書き込みを行う前に、ドライブまたはファイルを処理するテープ・コーディネーター (butc) プロセスを開始する必要があります。この機能グループでは、テープ・コーディネーター・プロセスを開始、停止、および状況の検査をする方法を説明します。これらの命令を使用するには、テープ・コーディネーター・マシンが構成済みであり、バックアップ・データベースのテープ・コーディネーター項目が作成されている必要があります (テープ・コーディネーター・マシンおよびテープ装置の構成 の指示を参照してください)。

テープ・コーディネーターは、実行する各操作に タスク ID 番号 を割り当てます。この番号は、対話操作で backup コマンド・インタープリターにより割り当てられたジョブ ID 番号 (対話モードおよび正規コマンド・モードの使用 を参照) とは別個のものです。テープ・コーディネーターは、ログおよびエラー・ファイルに書き込んだタスク ID 番号を、画面上のトレースおよびメッセージに報告します。テープ・コーディネーターの実行中または保留中のタスク ID 番号を表示するには、backup status コマンドを発行します。

### テープ・コーディネーター・プロセスを開始するには

1. テープ・コーディネーターがボリューム・データおよびバックアップ・データベースにアクセスするセルの /usr/afs/etc/UserList ファイルにリストされているユーザーとして認証されていることを検証します。必要な場合には、bos listusers コマンドを発行します。このコマンドについては、 UserList ファイルのユーザーの表示で詳しく説明しています。

          % bos listusers <machine name>

   または、ローカル・スーパーユーザー root としてファイル・サーバー・マシンにログインします (3 のステップを参照)。

2. テープ・コーディネーターのログ、およびローカル /usr/afs/backup ディレクトリーのエラー・ファイル (TE_device_name および TL_device_name ファイル) に書き込みができることを検証する。ログ・ファイルとエラー・ファイルが存在していない場合は、 /usr/afs/backup ディレクトリー内のファイルに挿入および書き込みができることが必要です。
3. (telnet または rlogin などのコマンドを使用して) テープ装置を駆動する、またはそのローカル・ディスクがディスク・データ・ファイルを収納しているテープ・コーディネーター・マシンに接続をオープンする。テープ・コーディネーターは、テープ・コーディネーターが要求を受け入れるために、また、テープ・コーディネーターが要求を実行中に、オープンしたままでなければならない専用の接続またはウィンドウを使用します。

   次のステップで、 -localauth フラグを butc コマンドに組み込むことを計画する場合は、ローカル・スーパーユーザー root としてログインします。

4. butc コマンドを発行してテープ・コーディネーターを開始する。 -localauth および -cell オプションのいずれかを組み込めますが、両方を組み込むことはできません (ローカル・スーパーユーザー root、または外部セルからのバックアップ操作の実行 を参照してください)。

          % butc [<port offset>]  [-debuglevel <trace level>]  \
                 [-cell <cellname>] [-noautoquery] [-localauth]

   ここで、

   butc
     完全な形式でタイプする必要があります。

   port offset
     テープ・コーディネーターのポート・オフセット番号を指定します。デフォルト値の 0 (ゼロ) が適切でない場合には、この引き数を指定しなければなりません。

   -debuglevel
     テープ・コーディネーターが標準出力ストリーム (stdout) に書き込むトレース・メッセージのタイプを指定します。以下の 3 つの値を与えるか、あるいは、この引き数を省略を省略してメッセージのデフォルト・タイプを表示します (0 [ゼロ] の値の設定に等しい)。
     - 0: テープ・コーディネーターは、バックアップ・オペレーターと通信するのに必要な最小限の数のメッセージだけを生成する。これらのメッセージには、追加テープの挿入に対するプロンプト、およびオペレーションのエラー、開始、または完了を示すメッセージが含まれます。
     - 1: レベル 0 で表示されたメッセージに加えて、テープ・コーディネーターは、ダンプまたは復元されている各ボリュームの名前を表示する。
     - 2: レベル 0 および 1 で表示されてメッセージに加えて、テープ・コーディネーターは、すべてのメッセージを表示する。また、テープ・コーディネーターは、自己のログ・ファイル (/usr/afs/backup/TL_device_name) にも書き込む。

   cellname
     バックアップ・オペレーションを実行するセルの名前です (関係のあるボリュームが常駐し、バックアップ・サーバー・プロセスが実行しているセル)。この引き数を省略すると、テープ・コーディネーターは、ローカルの /usr/vice/etc/ThisCell ファイルで定義されたように自己のホーム・セルを使用します。この引き数を -localauthフラグと結合してはいけません。

   -noautoquery
     各オペレーションに必要な最初のテープに対するテープ・コーディネーターのプロンプトを使用不可にします。このフラグを組み込むことの利点および結果についての説明は、 最初のテープの検索またはプロンプトの除去 を参照してください。

   -localauth
     ローカルの /usr/afs/etc/KeyFile ファイルからの鍵を使用して、サーバー・チケットを構成します。butc プロセスは、相互の認証中にサーバー・チケットをバックアップ・サーバー、ボリューム・サーバー、および VL サーバーに提示します。このフラグを組み込むには、ユーザーは、ファイル・サーバー・マシンにローカル・スーパーユーザー root としてログインしていなければならず、このフラグを -cell 引き数と結合することはできません。

### テープ・コーディネーター・プロセスを停止するには

1. テープ・コーディネーターとの専用接続に対し、<Ctrl-c> などの割り込みシグナルを入力します。

### テープ・コーディネーター・プロセスの状況を検査するには

1. /usr/afs/etc/UserList ファイルにリストされているユーザーとして認証されていることを検証します。必要な場合には、bos listusers コマンドを発行します。このコマンドについては、UserList ファイルのユーザーの表示で詳しく説明しています。

          % bos listusers <machine name>

2. backup status コマンドを入力します。

          % backup status [<TC port offset>]

   ここで、

   st
     status の受け入れ可能な最も短い省略形です。

   TC port offset
     テープ・コーディネーターのポート・オフセット番号を指定します。デフォルト値の 0 (ゼロ) が適切でない場合には、この引き数を指定しなければなりません。

以下のメッセージは、テープ・コーディネーターが、現在、オペレーションを実行していないことを示します。

       Tape coordinator is idle

それ以外は、実行中または保留中のオペレーションに対して、以下の形式のメッセージが出力に組み込まれます。

       Task task_ID:  operation:   status

ここで、

task_ID
  テープ・コーディネーターにより割り当てられたタスクの ID 番号。テープ・コーディネーターのポート・オフセット番号から始まります。

operation
  指定したコマンドで開始されたテープ・コーディネーターが実行しているオペレーション。
  - `Dump` (backup dump コマンド)
  - `Restore` (backup diskrestore、backup volrestore、または backup volsetrestore コマンド)
  - `Labeltape` (backup labeltape コマンド)
  - `Scantape` (backup scantape コマンド)
  - `SaveDb` (backup savedb コマンド)
  - `RestoreDb` (backup restoredb コマンド)

status
  以下のメッセージの 1 つにより、ジョブの現在の状況を示します。

  number `Kbytes transferred, volume` volume_name
    ダンプ・オペレーションの実行中の場合、テープまたはバックアップ・データ・ファイルにこれまでコピーされたキロバイト数および現在ダンプされているボリューム。

  number `Kbytes, restore.volume`
    復元オペレーションの実行中の場合、テープまたはバックアップ・データ・ファイルから AFS にこれまでコピーされたキロバイト数。

  `[abort requested]`
    (backup) kill コマンドが発行されたが、その終了シグナルは、まだテープ・コーディネーターには送信されていない。

  `[abort sent]`
    オペレーションは (backup) kill コマンドにより取り消されたことを意味する。バックアップ・システムがオペレーションを待ち行列から削除するか、あるいは実行を停止すると、そのオペレーションは、このコマンドからの出力には表示されなくなります。

  `[butc contact lost]`
    backup コマンド・インタープリターがテープ・コーディネーターに到達できない。このメッセージは、オペレーションを処理しているテープ・コーディネーターが、オペレーションの実行中に終了されたか失敗したことを示しているか、あるいはテープ・コーディネーターに対する接続がタイムアウトになったことを意味します。

  `[done]`
    テープ・コーディネーターはオペレーションを終了したことを意味する。

  `[drive wait]`
    オペレーションが、指定されたテープ・ドライブが空きになるのを待機している。

  `[operator wait]`
    テープ・コーディネーターは、バックアップ・オペレーターがテープをドライブに挿入するのを待機していることを示す。

## データのバックアップ

本機能グループでは、backup dump コマンドを使用して、 AFS データをテープ・またはバックアップ・データ・ファイルにバックアップする方法を説明しています。説明は、バックアップ・システムの概念について理解しており、 AFS バックアップ・システムの構成 の指示にしたがってバックアップ・システムが構成済みであることを前提としています。特に、以下が完了しているものとします。

- テープまたはバックアップ・データ・ファイルのどちらにデータをダンプするか決定しており、テープ・コーディネーター・マシンおよびテープ・コーディネーター・プロセスが適切に構成されている。 テープ・コーディネーター・マシンおよびテープ装置の構成 および データのバックアップ・データ・ファイルへのダンプ を参照してください。
- ダンプするボリュームのまとめて組み込むボリューム・セットが定義されている。 ボリューム・セットおよびボリューム項目の定義および表示 を参照してください。
- ボリューム・セットをダンプするダンプ階層内のダンプ・レベルが定義されている。増分ダンプ・レベルの場合は、あらかじめ親レベルでダンプを作成しておく必要があります。 ダンプ階層の定義および表示 を参照してください。
- 入出力装置構成ファイルが作成されている。このファイルは、各テープ・スタッカー、ジュークボックス装置、またはバックアップ・データ・ファイルごとに必要です。また、これを使用して、バックアップ・システムの自動化機能を定義することもできます。バックアップ処理の自動化およびその効率化 を参照してください。

ダンプ操作実行の最も基本的な方法は、適当なテープ・コーディネーターが使用可能となり次第に単独ボリューム・セットの初期ダンプを作成するものです。その際、backup dump コマンドに必要な引き数のみを使用します。説明は、ダンプの作成 を参照してください。コマンドにはいくつかオプションの引き数があり、これを使用してバックアップ手順の効率および柔軟性を向上することができます。

- 既に他のダンプを含むテープ・セットの最後にダンプを追加するには、 -append 引き数を組み込みます。組み込まない場合は、バックアップ・システムにより初期ダンプが作成されます。ダンプを追加することにより、テープの全容量が使用できるなど、利点があります。詳細は、 ダンプを既存のダンプ・セットに追加するには を参照してください。
- 1 つ以上のダンプ操作をスケジュール化し、後に実行する場合は、 -at 引き数を組み込みます。詳細については、 ダンプのスケジューリング を参照してください。
- 多数のダンプ操作を単一の backup dump コマンドで開始するには、-file 引き数を組み込み、コマンドをリストしたファイルを指定します。詳細については、 ダンプを既存のダンプ・セットに追加するには および ダンプのスケジューリング を参照してください。
- 実際にダンプは行わず、ダンプに組み込むボリュームのリストを作成するには、実際にコマンドで使用する引き数に -n フラグを組み合わせます。

### バックアップ操作の効率化

いくつかの方法により、ダンプ操作をより効率的にし、エラーを減少させ、ユーザーに混乱を与えないようにすることができます。その中にはまた、データが必要となった際の復元プロセスを単純化するものもあります。

- 読み取り / 書き込みまたは読み取り専用バージョンのボリュームは、ダンプした場合に他のユーザーまたはプロセスがボリュームにアクセスできなくなるため、ダンプは行わない方がよいでしょう。その代わり、ダンプ操作を開始する直前に、ダンプする各ボリュームのバックアップ・バージョンを作成し、そのバックアップ・バージョンをダンプします。通常 Backup バージョンの作成によりソース・ボリュームが使用できなくなるのは、数分間だけです (この間、他プロセスからのアクセスはブロックされますが失敗することはありません)。バックアップ・ボリュームの作成を自動化するには、 1 つ以上のサーバー・マシンの /usr/afs/local/BosConfig ファイルに cron プロセスを作成し、ダンプ操作の開始までに十分な間隔があるようにその開始時刻を設定します。-localauth 引き数を vos backup または vos backupsys コマンドに組み込むことにより、管理トークンなしで実行することができます。説明については、新規プロセスを作成および開始する方法 を参照してください。
- backup dump コマンドに指定するボリューム・セット、ダンプ・レベル、およびテープ・コーディネーターのポート・オフセットがバックアップ・データベースに正しく定義されていなくてはなりません。バックアップ・システムは、ダンプ操作の開始前にデータベースをチェックし、いずれかの必要な要素が不足する場合はコマンドを即時に停止します。必要であれば、以下のコマンドを使用します。
  - ボリューム・セットを表示するには、backup listvolsets コマンドを使用。 ボリューム・セットおよびボリューム項目の表示 を参照。
  - ダンプ・レベルを表示するには、backup listdumps コマンドを使用。 ダンプ階層の表示 を参照。
  - ポート・オフセットを表示するには、backup listhosts コマンドを使用。 構成済みの磁気テープ・コーディネーターのリストを表示するには を参照。
- backup dump コマンドを発行する場合、および実際にダンプ操作を実行する場合のどちらにおいても、特権管理者 ID に対応する有効なトークンがバックアップ・システム・プロセスで使用可能なことを確認します (詳細または必要な特権に関しては、バックアップ操作への管理特権の許可 を参照してください)。これはスケジュール・ダンプにおける特別の考慮事項です。代替方法としては、 backup コマンド (またはこれを起動するスクリプト)、および butc コマンドをサーバー・マシンで実行して、 -localauth 引き数をコマンドに組み込むものがあります。この場合のプロセスでは、ローカル /usr/afs/etc/KeyFile ファイルの最新のキー・バージョン数のキーが使用され、期限切れのないトークンが構成されます。これ以外の場合は、期限が切れる前にトークンを更新する方法を使用するか、またはトークンに長期の存続時間を認可する必要があります。いずれの場合も、マシンには物理的にも、許可されないネットワーク・アクセスに対しても両方の点で保全を図り、トークンに対する不適切なアクセスが行われないようにする必要があります。この場合の保護は、操作中に操作員が居合わせる場合よりも強力なものである必要があります。
- 記録テープの容量およびファイル・マーク・サイズの値は、テープ・コーディネーターの /usr/afs/backup/tapeconfig ファイルおよびテープ・ラベルにできるだけ正確に指定します。指定された値について、およびこれが正確でない場合の結果については、tapeconfig ファイルの構成 を参照してください。
- 無人ダンプで複数のテープが必要な場合、テープ・スタッカーまたはジュークボックスを適切に構成し、装置の CFG_device_name ファイルで呼び出されるテープ・マウント・スクリプトを記述して、テープが提供されるようにします。説明については、装置のテープ取り付けおよび取り外しルーチンの呼び出し を参照してください。
- テープ装置またはバックアップ・データ・ファイルの CFG_device_name ファイルを構成し、バックアップ・システムの自動化機能を活用することができます。バックアップ処理の自動化およびその効率化 を参照してください。
- backup コマンドを正規 (非対話式) モードで発行する場合、操作が完了するまでコマンド・シェル・プロンプトには戻りません。追加の接続をオープンせずにすむようにするには、backup dump コマンドを対話モードで発行します。特にスケジュール・ダンプ操作の場合は、 -at 引き数を組み込みます。
- 増分ダンプは、使用しているレベルのすぐ上のダンプ・レベルにダンプが作成されている場合に最もスムーズに進行します。バックアップ・システムは、直接の親レベルに作成されたダンプのバックアップ・データベース・レコードを検出できないと、階層で 1 レベル上に作成されたダンプを検索し、必要であればフル・ダンプ・レベルまで検索します。システムは、検出された最下位の有効な親ダンプより 1 レベル下に増分ダンプを作成するか、または必要があればフル・ダンプを作成する場合もあります。このアルゴリズムにより、前回のダンプ以降に変更されたすべてのデータが確実にダンプに取り込まれますが、いくつか不利な点もあります。まず、バックアップ・システムがデータベース中の有効な親ダンプを検索するため、余計に時間がかかります。2 番目に、以降のダンプ・パターンは予期したダンプ・レベルで実行されたものでないため、データの復元を行う操作員にとって複雑になる場合があります。

  直接の親レベルにダンプが確実に存在するようにする最も簡単な方法としては、常に事前定義されたスケジュールに従いダンプを実行します。親ダンプが存在するかをチェックするには、 backup dumpinfo コマンド (ダンプ・レコードの表示 を参照) を発行し、その出力を検索します。または、親ダンプに存在すると思われるボリュームに対し backup volinfo コマンド (ボリュームのダンプ履歴を表示するには を参照) を発行します。

- 指定されたボリューム・セットをダンプする場合、常に同じ階層のダンプ・レベル (同じフル・ダンプの下位レベル) を使用します。異なる階層のレベル間で交換を行うと、データの回復、またはダンプ・レコードの読み取りの際、混乱する場合があります。また、変更されたデータがダンプに取り込まれない、または複数のダンプに冗長にバックアップされてしまう可能性が増します。
- AFS テープ名ではなく、永続テープ名を使用します。永続名は、 AFS テープ名の限定された形式よりも詳細な記述が可能で、テープが AFS テープ名のみを持つ場合にバックアップ・システムがデフォルトで実行する名前検査ステップをバイパスすることができます。また、テープ・コーディネーターが常にチェックをスキップするよう構成することもできます。 AFS テープ名で受け入れ可能な形式の詳細は、 AFS テープ名検査の除去 を参照してください。
- テープにダンプを書き込む場合、復元操作はすべてのテープ装置に互換性があれば (同じタイプのテープの読み取り可、圧縮率が同じなど) 最も単純になります。非互換の装置を使用する場合は、少なくとも個々の階層の同じダンプ・レベルで実行するダンプに対してはすべて互換性のある装置を使用します (フル・ダンプ・レベルで実行するすべてのダンプに対して互換性のある装置、レベル 1 の増分ダンプ・レベルで実行するすべてのダンプに対して互換性のある装置、など)。-portoffset 引き数を backup diskrestore および backup volsetrestore コマンドで使用することにより、複数のポート・オフセット番号を受け入れることができますが、この場合、すべてのフル・ダンプの復元には最初にリストされたポート・オフセットを、すべてのレベル 1 ダンプの復元には 2 番目のポート・オフセットを使用するなどのようになります。階層内の同じレベルでのダンプの作成において、互換性のあるテープ装置を使用しなければ、 backup volrestore コマンドを使用して 1 度に 1 つのボリュームを復元することになります。
- 一時 ボリューム・セットの使用に意味がある場合もあります。一時ボリューム・セットは、そのボリューム・セットが作成された対話式セッションのコンテキストの中でのみ存在するもので、バックアップ・データベース内にそのボリューム・セット用のレコードは作成されません。これに相当する状況としては、(所有者がセルから抜ける際などに) ボリュームを永続的に削除するための準備として、そのボリュームをテープにダンプする場合などがあります。この場合、1 度しか使用しないボリューム・セット・レコードでバックアップ・データベースに影響を及ぼすことなく、対象のボリュームのみを持つボリューム項目を定義することができます。
- ネットワーク、マシン、またはサーバー・プロセスに問題があり、バックアップ・システムがボリュームまたはボリューム・ロケーション・データベース (VLDB) にアクセスできない場合は、ダンプ操作は行わないでください。バックアップ・システムは、自動的に数回繰り返してアクセス不能なボリュームにアクセスしようとしますが、ダンプ操作には余計な時間がかかり、場合によっては完全に停止して継続方法を指示するようプロンプトが出ることがあります。さらに、バックアップ・システムの最後のアクセスが失敗して、ボリュームがダンプから省略された場合には、これをバックアップするステップ (停止したダンプ操作に続くステップ) が必要となります。バックアップ・システムによるアクセス試行の繰り返しについての詳細は、 構成の選択がダンプ・プロセスに与える影響 を参照してください。
- 特に無人の場合は、ダンプ操作が完了したら、できるだけすぐにバックアップ・システムが作成したログを検討します。これには正常にバックアップされなかったボリューム名、およびその他の問題が示されています。バックアップ・サーバーは、データベース・サーバー・マシンのローカル・ディスクの /usr/afs/logs/BackupLog ファイルに書き込みをし、これは、bos getlog コマンドを使用してリモート側から読み取ることができます。説明は、サーバー・プロセス・ログ・ファイル表示する を参照してください。テープ・コーディネーターは、そのテープ・コーディネーターが実行されているマシン上のローカル /usr/afs/backup ディレクトリー内の 2 つのファイルに書き込みます。 TE_device_name ファイルはエラーを記録し、 TL_device_name ファイルはトレースとエラー・メッセージの両方を記録します。
- ダンプ操作は停止しないでください (たとえば、(backup) kill コマンドを対話モードで発行する)。混乱が起こる可能性があり、また中断からの復元には余計な手間がかかります。ダンプ操作が割り込まれた場合には、停止シグナルが受信される前にバックアップされたボリュームは、テープまたはバックアップ・データ・ファイル上にバックアップされており回復操作で使用できます。バックアップ・データベース内のボリューム・ダンプ活動記録レコードには、それらのレコードがバックアップされた時刻およびダンプ・レベルが、正確に記録されています。レコードを表示するには、 ボリュームのダンプ履歴を表示するには で説明しているように、 backup volinfo コマンドを使用してください。

  ただし、ダンプのバックアップ・データベース・レコードには、ボリュームが省略されたことは示す記録はありません。レコードを表示するには、ダンプ・レコードの表示 で説明しているように、 backup dumpinfo コマンドを使用します。ダンプ操作が停止する前にバックアップされなかったボリュームについては、以下の方法をいずれかを選択します。(実際に、ダンプ操作が制御不能で停止した場合には、同様の方法をとります。)

  - 何も行わずに、バックアップは次の定期のスケジュール・ダンプ操作を待って行います。その際、バックアップ・システムは自動的にこれを適切なレベルでダンプし、前回のボリュームのダンプ以降に変更されたデータをすべて確実に取り込みます。ただし、次のダンプ操作までにボリュームが復元されないとは限らず、不確実な点が残ります。復元が必要な場合、ボリュームは前回ダンプに組み込んだ状態にしか復元できません。この場合、それ以降のボリュームの変更はすべて失われます。
  - ダンプ全体を破棄して、ダンプ操作を再度実行します。ダンプを破棄するには、 backup labeltape コマンドを使用してテープまたはバックアップ・データ・ファイルを再度ラベル付けします。これにより、バックアップ・データベースからすべての関連レコードが自動的に除去されます。説明については、テープ・ラベルの書き込みおよび読み取り を参照してください。ボリュームのバックアップ・バージョンを作成してから長時間が経過している場合、一部のソース・ボリュームは変更された可能性があります。このような場合には、 vos backup または vos backupsys コマンドを再度発行してから、ダンプ操作を行います。
  - 失われたボリュームを含む新しいボリューム・セットを作成し、フル・ダンプ・レベルでダンプすることができます (バックアップ・システムは、これらのボリュームを新しいボリューム・セットの一部としてバックアップしたことがないため、増分ダンプ・レベルを指定した場合でも、指定されたレベルの階層の最上層のフル・ダンプ・レベルを使用します)。次に元のボリューム・セットをダンプする際、バックアップ・システムは、前回元のボリューム・セットの一部にボリュームにダンプしたときのレベルより 1 レベル下に失われたボリュームを自動的にダンプします。

### 構成の選択がダンプ・プロセスに与える影響

本機能グループではバックアップ・プロセスを概説し、デフォルトおよびユーザーが選択した構成 (装置固有の CFG_device_name ファイルに記述する構成命令を含む) によりそれぞれのステージにどのような影響があるかを説明します。明確にするため、単一の backup dump コマンドによる初期ダンプ作成の進行状況をトラックします。追加、またはスケジュール・ダンプを行う際の若干の相違については、 ダンプを既存のダンプ・セットに追加するには または ダンプのスケジューリング を参照してください。

具体例として、次の記述は、ボリューム・セット user のダンプを、 /weekly/mon/tues/wed ダンプ・レベルで追跡します。 user ボリューム・セットは、すべてのユーザー・ボリュームのバックアップ・バージョンに対応するボリューム項目を 1 つ所有します。

          .*    .*    user.*\.backup

ダンプ・レベルは、以下のダンプ階層に含まれます。

       /weekly
              /mon
                  /tues
                       /wed
                           /thurs
                                 /fri

1. butc コマンドを発行して、テープ・コーディネーターによるダンプ操作を開始します。 backup dump コマンドを発行する際、テープ・コーディネーターが実行されている必要はありませんが、 3 のステップが完了してダンプに組み込むボリュームのリストを受け入れる際にはアクティブでなければなりません。調整での問題を避けるには、 backup dump コマンドを発行する前にテープ・コーディネーターを開始するのがよいでしょう。

   テープ・コーディネーターが開始すると、これはローカルの /usr/afs/backup/tapeconfig ファイルの項目を読み取り、butc コマンド行で指定したポート・オフセットを検索します。項目には、使用する装置名が指定されており、テープ・コーディネーターはこれにアクセスできるか検証をします。また、装置構成ファイル /usr/afs/backup/CFG_device_nameが存在する場合は、これも読み取ります。ファイルの記述がダンプ操作に与える影響については、6 のステップを参照してください。

2. ボリューム・セット、ダンプ・レベル、および 1 のステップで butc コマンドに指定したのと同じポート・オフセット番号を指定して、 backup dump コマンドを発行します。バックアップ・システムは、これらが正しいバックアップ・データベース・レコードを持っているかを検証し、なければエラー・メッセージを出して停止します。

   対話モードでコマンドを発行する場合、バックアップ・システムは操作にジョブ ID 番号を割り当てます。これは、それぞれ (backup) jobs または (backup) kill コマンドを使用して操作状況のチェックまたは停止に使用できます。説明については、対話モードで保留または実行中のジョブを表示する および 対話モードで操作を取り消すには を参照してください。

3. バックアップ・システムは、VL サーバーと協力して、ボリューム・セットのボリューム項目に定義された名前とロケーションの条件に合う、 VLDB 内のボリュームのリストを生成します。ボリュームが複数のボリューム項目に一致する場合は、バックアップ・システムは重複を無視して、ダンプにボリューム・データのコピーが 1 つだけ組み込まれるようにします。

   復元操作でテープ交換に必要な回数を減らすのであれば、バックアップ・システムはサーバー・マシンおよびパーティションごとにボリュームをソートし、ダンプ操作中に特定のパーティションのボリュームのデータをすべて書き込んでから、次のパーティションに移動します。

   前述のように、ダンプ中のユーザーのデータ・アクセスを妨げないようにするには、読み取り / 書き込みボリュームではなく、バックアップ・ボリュームをバックアップする方がよいでしょう。これには、ボリューム項目定義のボリューム名に .backup サフィックスを組み込みます。複数ボリュームに一致するボリューム項目の定義方法については、 ボリューム・セットおよびボリューム項目の定義および表示 を参照してください。

   この例では、 50 ボリュームが user ボリューム・セット基準に合致し、これには user.pat.backup、 user.terry.backup、および user.smith.backup が含まれるものとします。

4. 次にバックアップ・システムは、 backup dump コマンド行で指定したダンプ階層のダンプ・レベルをスキャンします。これがフル・レベルであれば、現行の操作でバックアップ・システムは、 3 のステップで取得したリストのすべてのボリュームのデータをバックアップします。

   ダンプ・レベルが増分の場合、バックアップ・システムは、バックアップ・データベース内の各ボリュームのダンプ階層を読み取り、前回このボリューム・セットの一部としてそのボリュームをバックアップした際に、パス名のどの親レベルが使用されたかを判別します。通常、これは現在のダンプ・レベルの直接の親レベルです。

   ボリュームの増分ダンプには、そのボリュームが親ダンプに組み込まれた後で変更されたデータのみが含まれます。適格なデータを判別するために、バックアップ・システムは、ボリュームの複製日 の概念を使用します。読み取り / 書き込みボリュームの複製日は、バックアップ・システムが、ボリュームのコンテンツをダンプにコピーする前に、そのボリュームをロックした日です。バックアップ・ボリュームの複製日は、元の読み取り / 書き込みボリュームの複製作成操作 (vos backup、または vos backupsys コマンドによって開始された操作) の完了時刻です。読み取り専用ボリュームの複製日は、前回のダンプ操作を完了した際の (vos release コマンドによって開始された) 解放操作の時刻です。

   より正確に言うと、増分ダンプには、変更タイム・スタンプが、親ダンプに組み込まれているボリュームの複製日 (親複製日)と、現在のダンプに組み込まれるボリュームの複製日 (現行複製日) の間になっているデータのみが含まれます。

   ボリュームの親ダンプは直接の親レベルに作成されたダンプであるという一般的な規則には、いくつか共通して例外があります。

   - 最後のダンプ時にボリュームがまったく存在しなかった。この場合、バックアップ・システムはそのフル・ダンプを自動的に行います。
   - ボリュームが、最後のダンプ時のボリューム・セット名および位置基準に合致しなかった。この場合、ボリュームが他のボリューム・セットの一部として最近バックアップされた (フルまたは増分) 場合でも、バックアップ・システムはフル・ダンプを自動的に行います。このような冗長性は、特にボリュームを頻繁に移動する場合にボリューム項目の定義において、位置よりは名前の点から問題となります。
   - ボリュームが、何らかの理由により直接の親レベルのダンプに組み込まれなかった (プロセス、マシン、またはネットワーク・アクセスが原因で、バックアップ・システムがこれにアクセスできなかった)。この場合、バックアップ・システムは、複製日を、そのボリュームが組み込まれた前回のダンプ操作の時刻に設定します。ボリュームが、現行レベルのパス名のいずれのレベルで実行されたダンプにも組み込まれなかった場合、バックアップ・システムはそのフル・ダンプを行います。

   この例では、現在のダンプ・レベルは /weekly/mon/tues/wed です。user.pat.backup および user.terry.backup ボリュームが、昨日 (火曜) に実行されたダンプの /weekly/mon/tues レベルに組み込まれています。バックアップ・システムは、火曜日の 3:00 a.m. (火曜日のダンプ操作の前にそのバックアップ・バージョンが作成された時刻) を親複製日として使用します。ただし、火曜のダンプでは何かしらの理由により user.smith.backup ボリュームが組み込まれませんでした。このボリュームが最後にダンプに組み込まれたのは月曜日で、 /weekly/mon レベルでした。バックアップ・システムは、月曜のダンプ操作の時点で最後にそのボリュームのバックアップ・バージョンが作成されたときを示す、親複製日の月曜の 2:47 a.m. を使用します。

5. 増分ダンプを実行する場合、バックアップ・システムは、ボリューム・サーバーと協力して、親複製日と現在の複製日の間で変更された (タイム・スタンプが変更された) 各ボリュームの中の、すべてのファイルのリストを作成します。ダンプには、このような各ファイルの完全な内容が組み込まれます。ファイルが変更されなかった場合、ダンプにはそのプレースホルダー・スタブのみが組み込まれます。ダンプにはまた、前回のダンプから変更するしないにかかわらず、ボリュームの完全なディレクトリー構造のコピーが組み込まれます。

   前回のダンプ以降、ボリューム内のデータが全く変更されていない場合は、バックアップ・システムはそのボリュームを完全に省略します。テープ・コーディネーター・ウィンドウおよびログ・ファイルに以下のメッセージが作成されます。

          Volume volume_name (volume_ID) not dumped - has not been modified
              since last dump.

6. テープ・コーディネーターはデータをバックアップする準備をします。 CFG_device_name ファイルが存在する場合、テープ・コーディネーターはこれを 1 のステップで読み取ります。以下のリストでは、ファイル内の各指示によってこの時点のテープ・コーディネーターの動作がどう変わるのかを説明します。

   FILE
     この命令を YES に設定すると、テープ・コーディネーターはバックアップ・データ・ファイルにデータを書き込みます。ダンプを正常に行うには、 tapeconfig ファイルの device_name フィールドでもファイル名を指定する必要があります。バックアップ・データ・ファイルの構成に関する詳細は、 データのバックアップ・データ・ファイルへのダンプ を参照してください。

     これが NO に設定されている、またはファイルにない場合、テープ・コーディネーターはテープ装置に書き込みます。

   MOUNT および UNMOUNT
     ファイルに MOUNT 命令が存在する場合、テープ・コーディネーターが新規のテープを必要とする度に、指定したスクリプトまたはプログラムを呼び出して、装置のテープ・ドライブにテープをマウントします。テープ・スタッカーまたはジュークボックスによりテープの交換を自動的に行うのであれば、MOUNT 命令は必須です。 MOUNT 命令がない場合、テープ・コーディネーターはテープを必要とする際、操作員にプロンプト指示を出します。

     この後で説明する AUTOQUERY 命令は、テープ・コーディネーターの、ダンプ操作で最初に必要となるテープのテープ要求手順を変更します。

     UNMOUNT 命令がある場合は、テープ・コーディネーターはテープ装置をクローズする度に、指定したスクリプトまたはプログラムを呼び出します。すべてのテープ装置が別個にテープの取り外しルーチンを持つわけではなく、この場合、UNMOUNT 命令は必要ありません。両方の命令に関する詳細は、 装置のテープ取り付けおよび取り外しルーチンの呼び出し を参照してください。

   AUTOQUERY
     この命令を NO に設定すると、テープ・コーディネーターは、ダンプ操作に必要な最初のテープがテープ装置にあることを前提とします。前述の MOUNT 命令で説明されている通常のテープ要求手順は使用しません。butc コマンドに -noautoquery フラグを組み込むことによっても同様の結果が得られます。

     この命令がない、または YES に設定されている場合、テープ・コーディネーターは最初のテープに対して、通常のテープ要求手続きを使用します。詳しくは、 最初のテープの検索またはプロンプトの除去 を参照してください。

   BUFFERSIZE
     この命令がファイルにある場合は、テープ・コーディネーターはバッファー・サイズをデフォルトの 16 KB ではなく、指定した値に設定します。詳しくは、テープ・ストリーミングをプロモートするためのメモリー・バッファーの設定 を参照してください。

   CFG_device_name ファイルがない場合、テープ・コーディネーターはデータの書き込みをテープ装置に行い、テープが必要になると操作員にプロンプト指示を出します (-noautoquery フラグを butc コマンドに組み込んだ場合に最初のテープのみが例外となります)。

7. ここで、テープ・コーディネーターは、 CFG_device_name ファイル (6 のステップで説明しています) 内の命令の指示に従って、テープ・ドライブかバックアップ・データ・ファイルをオープンします。この命令は、取り付けスクリプトを呼び出すか、あるいは操作員にプロンプト指示を出すかも判別します。1 のステップでは、テープ・コーディネーターは、 tapeconfig ファイルから装置容量およびファイル・マーク・サイズを読み取りました。今度は、同じ値をテープまたはバックアップ・データ・ファイルの磁気ラベルから読み取り、 tapeconfig の値と異なる場合は、これを上書きします。

   この例のように初期ダンプを作成している場合、ラベルに永続名がなければ、次に、テープ・コーディネーターは、 AFS テープ名が受け入れ可能な 3 つの形式のいずれかになっているかどうかを検査します。この形式でなければ、テープは拒否され、backup labeltape コマンドを使用して受け入れ可能な名前を書き込まなくてはなりません。この名前検査ステップは、 NAME_CHECK NO 命令を CFG_device_name ファイルに組み込むことによりバイパスできます。詳細および受け入れ可能な AFS テープ名の値については、AFS テープ名検査の除去 を参照してください。

8. 初期ダンプの場合、テープ・コーディネーターは、テープまたはバックアップ・ダンプ・ファイルの先頭から書き込みを開始し、既存のデータは上書きします。不適切な上書きを避けるために、バックアップ・システムは、まずバックアップ・データベースをチェックして、テープまたはバックアップ・ダンプ・ファイルのラベルの名前 (永続名または AFS テープ名) に関連したダンプ・レコードを検索します。そして、期限が切れていないダンプがあるバックアップ・データ・ファイルや、または期限が切れていないダンプを持つダンプ・セットに含まれるテープへの書き込みを拒否します。すべてのダンプが期限切れとなる前にファイルまたはテープを再利用するには、 backup labeltape コマンドを使用して、テープのラベルを変更します。これにより、そのファイルまたはダンプ・セット内のすべてのテープに含まれる、すべてのダンプのバックアップ・データベース・レコードが除去され、どのテープからのデータの復元もできなくなります。有効期限に関する詳細は、有効期限の定義 を参照してください。

   テープ・コーディネーターは、他にも不適切なテープ再利用を 2 種類チェックします。テープには、現在実行中のダンプに含まれるデータがあってはいけません。これは、以前のテープがドライブにある、または誤って再度挿入してしまったことを示すためです。テープ・コーディネーターは、以下のメッセージを作成して、別のテープを取得しようとします。

          Can't overwrite tape containing the dump in progress

   テープには、現行の (増分) ダンプの親ダンプのデータがあってはいけません。これは、親ダンプを上書きすることにより、現行ダンプのデータが復元できなくなるためです。テープ・コーディネーターは、以下のメッセージを作成して、別のテープを取得しようとします。

          Can't overwrite the parent dump parent_name (parent_dump_ID)

9. これでテープ・コーディネーターはテープまたはバックアップ・データ・ファイルにデータを書き込みます。7 のステップで取得した容量およびファイル・マーク・サイズを使用して使用可能な容量をトラックし、テープの最後に到達してもダンプが完了しない場合は、自動的にテープ要求手続きを使用します。詳細およびテープ・コーディネーターが予期しない物理的なテープ終了に到達した場合については、 tapeconfig ファイルの構成 を参照してください。同様に、予期しない容量不足からもっとも適した方法で回復するようにバックアップ・データ・ファイルを構成する手順については、 データのバックアップ・データ・ファイルへのダンプ で説明している手順の中の、 6 のステップを参照してください。

   ダンプ中、テープ・コーディネーターがボリュームにアクセスできない場合は (サーバー・プロセス、マシン、またはネットワークの障害による)、ボリュームをスキップし、アクセス可能なすべてのボリュームについてダンプを継続します。テープ・コーディネーターは、テープ・コーディネーター・ウィンドウおよびログ・ファイルに、略されたボリュームに関するエラー・メッセージを生成します。バックアップ・ボリュームが前回のダンプ操作以降複製されていないことがわかった場合も (つまり、そのボリュームの現在の複製日がその親複製日と同じ場合)、テープ・コーディネーターは同様のメッセージを生成します。

          Volume volume_name (volume_ID) not dumped - has not been re-cloned
              since last dump.

   すべてのボリュームについて最初のパスが完了すると、テープ・コーディネーターは、省略した各ボリュームについて、再度ダンプを試行します。最初のパスでボリュームがアクセス不能であった理由について、 VL サーバーが 3 のステップで作成したダンプ・ボリュームのリストからボリュームが移動されたためであるかチェックされます。そうであれば、新規サイトからボリュームをダンプします。 2 度目のボリューム・アクセスも失敗した場合、テープ・コーディネーターは以下のメッセージを作成し、今後の処理について指示するようプロンプトを出します。

          Dump of volume volume_name (volume_ID) failed
          Please select action to be taken for this volume.
             r - retry, try dumping this volume again
             o - omit, this volume from this dump
             a - abort, the entire dump

   ダンプ・プロセスの自動化の比率を向上させるには、 ASK NO 命令を CFG_device_name ファイルに組み込みこのプロンプトを抑制し、テープ・コーディネーターが自動的にダンプのボリュームを省略するようにします。

   ダンプを順次トラックするのであれば、プロンプトを使用することにより修正アクションが可能です。ボリュームが再度複製されていなければ、 vos backup コマンドが発行できます。ボリュームがアクセス不能の場合は、調査を行い原因の解決を行うことができます。

10. テープまたはバックアップ・データ・ファイルにまだ AFS テープ名がない場合は、バックアップ・システムが適切な名前を構成し、ラベルおよびバックアップ・データベースに記録します。また、ダンプ名および ID 番号をダンプに割り当て、バックアップ・データベースに作成したダンプ・レコード記録します。テープおよびダンプ名については、ダンプ名および磁気テープ名 を参照してください。ダンプ・レコードまたはボリュームのダンプ履歴の表示、またはテープ内容のスキャン方法については、 バックアップ・ダンプ・レコードの表示 を参照してください。

### ダンプを既存のダンプ・セットに追加するには

AFS バックアップ・システムでは、 -append フラグを backup dump コマンドに組み込むことにより、ダンプ・セットの最後のテープの終端にダンプを追加することができます。ダンプを付加することは、バックアップ・システムの自動化と効率を以下のように改善します。

- テープ容量の使用を最大化します。初期ダンプは、常に新しいテープから開始しなければなりませんが、必ずしもダンプ・セットの最後のテープの終端まで使用する必要はありません。 1 つまたは複数のダンプを付加することによって、テープの未使用部分を埋めることができます。
- ダンプ操作を完了させるために必要なテープ数およびテープ変更の数を削減できます。一連の初期ダンプを最初にまとめて実行するのではなく、まず 1 つの初期ダンプを行った後、すぐに幾つかの付加ダンプを行います。この方法では、1 つの系列のダンプをすべて同じテープに書き込むことができます (テープに十分な容量があれば)。これとは対照的に、一連の初期ダンプを最初に実行すると、それぞれが新しいテープから開始しなければならず、ダンプを追加するにはテープを再び交換しなければなりません。

  該当する一連の backup dump コマンドを、対話式 `backup>` プロンプトで発行するか、あるいは、その backup dump コマンドの -file 引き数で指定するファイルに記録します。この方法でダンプを付加することにより、テープ・スタッカーまたはジュークボックスがない場合でも、複数の無人バックアップ操作が実行可能となります。もちろん、すべてのダンプが 1 つのテープにフィットする場合です。

- 復元オペレーションの際の、テープ変更の回数が削減できます。たとえば、ボリューム・セットのすべての増分ダンプを 1 つのダンプ・セットのテープに追加するのであれば、ボリューム・セットからのボリューム復元に必要となるテープ交換回数は最低限で済みます。ただし、親のフル・ダンプを含むテープには、増分ダンプを追加しない方がよいでしょう。テープを損失した場合、ボリュームのすべてのデータを失うことになります。

  関連する付加ダンプをまとめるのは効果的ですが、バックアップ・システムにとっては、 1 つのテープ、または 1 つのダンプ・セット内の追加ダンプ間に関連がある必要はありません。

追加ダンプを書き込む際、バックアップ・システムは 構成の選択がダンプ・プロセスに与える影響 で説明したほとんどのステップを実行します。追加ダンプはお互いまたは初期ダンプとの間に関連がある必要はありませんので、 7 のステップは省略されます。この場合は、 AFS テープ名がボリューム・セット名やダンプ・レベル名を反映しているかどうかをチェックする必要もありません。 8 のステップも省略します。これは、バックアップ・システムはテープ上の既存のデータを一切上書きしないため、テープまたはファイル上の既存のダンプの有効期限をチェックする必要がないからです。次に、9 のステップで、テープ・コーディネーターはデータの書き込みを始める前に、テープまたはバックアップ・データ・ファイルを、最後のダンプの終わりまでスキャンします。

バックアップ・システムは、追加ダンプに以下の条件を付加します。

- テープに書き込む場合、テープ・コーディネーターは、これがダンプ・セット中の最終テープであることを確認します (ダンプ・セットにはバックアップ・データベース中、完全で有効なテープおよびダンプ・レコードが存在)。そうでない場合は、テープを拒否し、受け入れ可能なテープを要求します。テープに有効なデータが確実に含まれているのであれば、バックアップ・データベースのダンプ・レコードを再構成することができます (-dbadd 引き数を backup scantape コマンドに使用。 テープ内容をスキャンするには を参照)。
- テープまたはバックアップ・データ・ファイルの最新ダンプが正常に完了している必要があります。
- そのテープまたはファイルを含むダンプ・セットは、バックアップ・データベースに記録されている初期ダンプから開始する必要があります。現在のテープにダンプがない場合、バックアップ・システムはそのダンプ操作を初期ダンプとして扱い、関連する要求 (たとえば、AFS テープ名のチェック) を強要します。

ダンプを付加する際、ダンプ・セットのダンプ、およびバックアップ・データベースのテープ・レコードのすべてが、初期ダンプにインデックス化されることに留意してください。付加ダンプのレコードを削除する場合には、初期ダンプのレコードも削除しなければならず、これによりダンプ・セットのすべてのダンプのレコードが削除されます。これらのレコードがなければ、ダンプ・セットのデータはいずれも復元できません。

同様に、ダンプ・セットのいずれかのテープを再利用する (新規に初期ダンプを書き込む) 前に、ダンプ・セットのすべてのダンプの期限が切れている必要があります。有効期限が、ダンプ・セットのいずれかのテープを再利用する日付以降の場合は、ダンプを追加しないでください。最終の有効期限以前にテープを再利用するには、バックアップ・データベースから初期ダンプのレコードを削除しなければなりません。 backup labeltape コマンドを使用してテープを再度ラベル付けするか (磁気テープのラベル付け を参照)、または backup deletedump コマンドを使用してレコードを直接削除します (ダンプ・レコードをバックアップ・データベースから削除するにはを参照)。

理論的には、任意数のダンプを追加することができますが、一般には以下の理由により、ダンプ・セットのテープ数を制限します (たとえば、5)。

- ダンプ・セットのテープのいずれかに読み取り不能な点が発生した場合、テープ・コーディネーターは、 backup scantape 操作の一部としてテープをスキャンし、バックアップ・データベース・レコードを再構成することができなくなる場合があります。通常、テープ・コーディネーターは、損傷のある点までは正常にスキャンし、小さな損傷であればスキップすることができます。スキャン操作は、ダンプ・セットのいずれのテープからも開始することができるため、テープの 1 つに損傷があってもダンプ・セットの他のテープのスキャンが行えなくなることはありません。しかし、テープのスキャンは、ダンプ・セットの損傷テープの前のテープ、または後続のテープのいずれかで、両方では行えません。(テープを使用してバックアップ・データベース内の情報を再構成する方法の詳細は、 テープ内容をスキャンするには を参照してください。)

  また、読み取り不能な点により、ボリュームを完全に復元することができなくなります。これは、復元操作はフル・ダンプから開始し、続いて各増分ダンプについて順番に行うためです。特定のダンプが復元できなければ、後続の増分ダンプからいずれのデータも復元できません。

- 後で 1 つ以上のダンプを保存するのであれば、対象とするデータを含むテープだけではなく、ダンプ・セットを構成するテープ・セット全体を保存する必要があります。これは、テープとアーカイブ記憶域の両方を空費します。アーカイブについての詳細は、テープの保存 を参照してください。

### ダンプのスケジューリング

デフォルトでは、バックアップ・システムは、 backup dump コマンドが入力されるとすぐにダンプ操作を開始し、テープ・コーディネーターが使用中から解放され、書き込むファイルのリストが使用可能になると、すぐにデータの書き込みが開始します。ただし、ダンプ操作をスケジュール化し、後の特定の時刻に開始することができます。

- 単一のダンプ操作をスケジュール化するには、-at 引き数を組み込みその開始時刻を指定します。
- 複数のダンプ操作をスケジュール化するには、 -file 引き数で指定したファイルに操作をリストし、-at 引き数を使用して backup コマンド・インタープリターがファイルを読み取る時刻を指定します。 -at 引き数を省略すると、コマンド・インタープリターはファイルを即時に読み取るため、スケジューリングとはなりませんが、これにより複数のダンプ操作を単一コマンドで開始することはできます。 -file 引き数を、 -volumeset、-dump、-portoffset、-append、または -n オプションと組み合わせないでください。

  ファイル形式の指示については、 -file 引き数の説明 (ダンプの作成 の 7 のステップ) を参照してください。

バックアップ・システムでは、初期ダンプおよび追加ダンプが、スケジュールであるか backup dump コマンド発行直後に実行するかにかかわらず、同じ方法で実行されます。唯一の相違点としては、正常に実行するための要件が、コマンドの発行時、およびバックアップ・システムが実際に実行を開始する際の両方に適用される点があります。バックアップ・データベースのボリューム・セット、ダンプ・レベル、およびポート・オフセットに対するすべての必須項目、およびすべてのダンプおよびテープ・レコードがどちらの場合にも存在しなくてはなりません。より重要な点としては、必要な管理トークンがどちらの時点でも使用可能でなければならないということがあります。バックアップ操作の効率化 を参照してください。

### ダンプの作成

1. /usr/afs/etc/UserList ファイルにリストされているユーザーとして認証されていることを検証します。必要な場合には、bos listusers コマンドを発行します。このコマンドについては、UserList ファイルのユーザーの表示で詳しく説明しています。

          % bos listusers <machine name>

2. 磁気テープ装置に操作を行う磁気テープ・コーディネーターが実行されていない場合には、該当する磁気テープ・コーディネーター・マシンとの接続をオープンにし、butc コマンドを発行してください。詳細については、 テープ・コーディネーター・プロセスを開始するにはを参照してください。

          % butc [<port offset>] [-noautoquery]

3. テープ装置を使用する場合は、テープを挿入します。
4. backup コマンドを発行して、対話モードに入ります。

          % backup

5. どのボリューム・セットを使用するか、およびどのダンプ・レベルを使用するかを決定します。必要であれば、 backup listvolsets および backup listdumps コマンドを発行して、既存のボリューム・セットおよびダンプ・レベルを表示します。詳細な説明および出力については、ボリューム・セットおよびボリューム項目の表示 および ダンプ階層の表示 を参照してください。

          backup> listvolsets  [<volume set name>]
          backup> listdumps

   一時ボリューム・セットを使用したい場合は、そのボリューム・セットを現行の対話式セッションの中で作成する必要があります。これは、(所有者がセルから抜ける際などに) ボリュームを永続的に削除するための準備として、そのボリュームをテープにダンプする場合に便利です。この場合、1 度しか使用しないボリューム・セット・レコードでバックアップ・データベースに影響を及ぼすことなく、対象のボリュームのみを持つボリューム項目を定義することができます。詳細な説明が ボリューム・セットおよびボリューム項目の定義および表示 に示されています。

          backup>  addvolset <volume set name> -temporary
          backup> addvolentry  -name <volume set name>  \
                               -server <machine name>  \
                               -partition <partition name>  \
                               -volumes <volume name (regular expression)>

6. 初期ダンプを作成する場合で、永続名を持たないテープまたはバックアップ・データ・ファイルに書き込む場合、 AFS テープ名は、 AFS テープ名検査の除去 で説明したバックアップ・システムの形式要件を満たしている必要があります。必要であれば、backup readlabel コマンドを使用してラベルを表示し、 backup labeltape コマンドを使用して名前を変更します (テープ・ラベルの書き込みおよび読み取り を参照)。テープを上書きし、これが期限の切れていないダンプを含むダンプ・セットの一部である場合、テープを再度ラベル付けしますが、これは推奨できません。テープの適切な再利用方法については、 テープ再利用スケジュールの作成 を参照してください。
7. backup dump コマンドを発行して、ボリューム・セットを作成します。
   - 1 つの初期ダンプを作成するには、ボリューム・セット名、ダンプ・レベル名、およびポート・オフセット (ゼロでない場合) のみを指定します。
   - 1 つの追加ダンプを作成するには、-append フラグを追加します。
   - 単一の初期または追加ダンプをスケジューリングするには、-at 引き数を追加します。
   - 複数のダンプ操作を開始するには、該当するコマンドをファイルに組み込み、これを -file 引き数で指定します。この引き数は、-at 以外のオプションと組み合わせないでください。

          backup> dump <volume set name> <dump level name> [<TC port offset>]   \
                       [-at <Date/time to start dump>+]  \
                       [-append]  [-n] [-file <load file>]

   ここで、

   dump
     完全な形式でタイプする必要があります。

   volume set name
     ダンプを作成するボリューム・セット名を指定します。

   dump level name
     ボリューム・セットをダンプするダンプ・レベルの完全なパス名を指定します。

   TC port offset
     操作を処理するテープ・コーディネーター・プロセス・のポート・オフセット番号を指定します。デフォルト値の 0 (ゼロ) が適切でない場合には、この引き数を指定しなければなりません。

   -at
     後でコマンドを実行する、または -file 引き数で指定したファイルを読み取る日時を指定します。値を mm/dd/yyyy [hh:MM] 形式で入力し、月 (mm)、日 (dd)、および年 (yyyy) は必須です。年範囲の有効な値は、1970 から 2037 までです。標準 UNIX 表示における最後の日付の表示は 2023 年 2 月であるため、これより高い価は無効です。バックアップ・システムは、それ以降の日付を自動的に最大値の 2038 に削減します。

     時刻 (hh:MM) はオプションですが、入力する場合は 24 時間形式です (たとえば、14:36 は 2:36 p.m. のことです)。. これを省略すると、デフォルトの時刻は午前 0 時 (00:00) になります。

     例では、値 04/23/1999 20:20 により、1999 年 4 月 23 日 8:20 p.m. にコマンドをスケジューリングします。

     注: | コマンド構文中、この引き数にはプラス記号が続きますが、これは複数値を受け入れるためで (値を二重引用符や他の区切り文字で囲む必要はありません)、複数の日付を受け入れるわけではありません。単一の日付 (オプションで時間) を定義します。

   -append
     そのテープまたはバックアップ・データ・ファイルに見つけた以前の 1 つまたは複数のダンプ操作から、データの最後までスキャンすることによって、追加ダンプを作成します。

   -n
     データを実際にテープまたはバックアップ・データ・ファイルに書き込まずに、指定されたダンプに組み込まれるすべてのボリュームの名前を表示します。このフラグを実際のコマンドで使用する引き数に組み合わせますが、-file 引き数とは使用しないでください。

   -file
     backup コマンドを含むファイルのローカル・ディスクまたは AFS パス名を指定します。バックアップ・システムは即時に、または -at 引き数を指定した場合はこれに指定した時刻にファイルを読み取ります。部分的なパス名は、現行作業ディレクトリーに対する相対として解釈されます。

     指定したファイルに、backup dump コマンドをそれぞれその行に配置します。構文はコマンド行と同じですが、行の開始に backup は使用しません。それぞれのコマンドには、 volume set name および dump level name 引き数を組み込む必要があります。さらに、デフォルトの値ゼロが適さない場合には、 TC port offset 引き数も組み込む必要があります。ファイル内のコマンドには、 backup dump コマンドのいずれのオプション引き数を組み込むことができます (-at 引き数を含む。これにはバックアップ・システムがファイルを読み取る日時以降の日時を指定します)。

8. butc コマンドを発行したときに -noautoquery フラグを付けなかったか、装置の CFG_device_name 構成ファイルに AUTOQUERY YES 命令を記述している場合には、テープ・コーディネーターから装置のドライブにテープを装てんするようにプロンプトが出されます。すでにこれを行っていても、 <Return> を押して、テープがラベル付けの準備ができていることを示さなければなりません。

   複数のテープが必要な場合は、 MOUNT 命令を CFG_device_name ファイルに組み込み、対応するスタッカーまたはジュークボックスにテープを装てんするか、コンソールにとどまり次のテープに対するプロンプトに応えなければなりません。

9. ダンプ操作が完了したら、バックアップ・システムのログ・ファイルにエラーがないかチェックします。 bos getlog コマンド (サーバー・プロセス・ログ・ファイル表示する を参照) を使用して /usr/afs/logs/BackupLog ファイルを読み取り、テープ・コーディネーター・マシンのテキスト・エディターを使用して TE_device_name および TL_device_name ファイル (/usr/afs/backup ディレクトリー) を読み取ります。

   それぞれのテープの外部ラベルにテープ名およびダンプ ID 番号を記録してとよいでしょう。

## バックアップ・ダンプ・レコードの表示

backup スイートには、バックアップしたデータの情報を表示する 3 つのコマンドが含まれます。

- 実行の日付および組み込まれたボリュームの数など、 1 つ以上のダンプ操作に関する情報を表示するには、backup dumpinfo コマンドを使用します (ダンプ・レコードの表示を参照)。単一のダンプの詳細な記録を表示する、または特定数のダンプについて最新のものから古いものへとより詳細な記録を表示することができます。ダンプの数を指定するか、またはデフォルトの 10 を指定します。
- ボリュームのダンプ履歴を表示するには、backup volinfo コマンドを使用します (ボリュームのダンプ履歴を表示するにはを参照)。
- テープまたはバックアップ・データ・ファイルに含まれるボリュームについて抽出した情報を表示するには、 backup scantape コマンドを使用します。テープおよびダンプ・レベルから派生した新規のダンプおよびテープ・レコードをバックアップ・データベースに作成するには、 -dbadd フラグを追加します。説明については、 テープ内容をスキャンするにはを参照してください。

### ダンプ・レコードの表示

1. /usr/afs/etc/UserList ファイルにリストされているユーザーとして認証されていることを検証します。必要な場合には、bos listusers コマンドを発行します。このコマンドについては、UserList ファイルのユーザーの表示で詳しく説明しています。

          % bos listusers <machine name>

2. backup dumpinfo コマンドを発行して、バックアップ・データベース内にレコードされたダンプについての情報をリストする。

          % backup dumpinfo [-ndumps <no. of dumps>]  [-id <dump id>]  [-verbose]

   ここで、

   dump
     は、dumpinfo の受け入れ可能な省略形です。

   -ndumps
     特定数のダンプについてそれぞれ、最新のものから古いものへとバックアップ・データベース・レコードを表示します。データベースのダンプが要求した数より少なければ、出力には既存のすべてのダンプのレコードが含まれます。この引き数は、-id 引き数または -verbose フラグと組み合わせないでください。最新の 10 ダンプのレコードを表示するには、3 つのオプションをすべて省略します。

   -id
     バックアップ・データベース・レコードを表示する単一ダンプのダンプ ID 番号を指定します。 -id スイッチを組み込む必要があります。このオプションは、-ndumps または -verbose 引き数と組み合わせないでください。最新の 10 ダンプのレコードを表示するには、3 つの引き数をすべて省略します。

   -verbose
     -id 引き数 (この引き数も合わせて指定します) で指定したダンプに関するより詳細な情報を提供します。このフラグは、 -ndumps オプションと組み合わせないでください。

-ndumps 引き数を指定すると、以下の情報がテーブル形式で、ダンプごとに 1 行に表示されて出力されます。

`dumpid`
  ダンプ ID 番号。

`parentid`
  ダンプの親ダンプのダンプ ID 番号。値 `0` (ゼロ) は、フルダンプを意味します。

`lv`
  ダンプを作成するために使用されたダンプ・レベルのダンプ階層における深さ。値 `0` (ゼロ) は、フルダンプを意味します。この場合は、`parentid` フィールドの値も `0` となります。`1` 以上の値の場合、ダンプ階層内で適切なレベルで、増分ダンプが作成されています。

`created`
  バックアップ・システムが、ダンプを作成したダンプ・オペレーションを開始した日時。

`nt`
  ダンプにデータを含むテープの数。値 `0` (ゼロ) は、ダンプ・オペレーションが終了または失敗したことを示します。backup deletedump コマンドを使用して、古くなった項目を除去します。

`nvols`
  ダンプにデータを組み込まれたボリュームの数。ボリュームがテープをスパンする場合、ボリュームは 2 度カウントされます。値 `0` (ゼロ) は、そのダンプ・オペレーションが終了または失敗したことをダンプ・オペレーションに示します。この場合は、`nt` フィールドの値も `0` となります。

`dump name`
  以下の形式のダンプ名。

            volume_set_name.dump_level_name (initial_dump_ID)

  ここで、volume_set_name は、ボリューム・セットの名前であり、 dump_level_name は、ボリューム・セットがダンプされたダンプ・レベル内の最後の要素の名前です。

  initial_dump_ID が表示された場合、これは、このダンプが属しているダンプ・セットの初期ダンプのダンプ ID です。括弧内に値がない場合、ダンプは、ダンプ・セット内の初期ダンプで、追加ダンプはありません。

-id 引き数だけが指定されている場合、出力の最初の行は、文字列 `Dump` で始まり、以下のフィールドにダンプ全体の情報がレポートされます。

`id`
  ダンプ ID 番号。

`level`
  ダンプを作成するために使用されたダンプ・レベルのダンプ階層における深さ。値 `0` (ゼロ) は、フルダンプを意味します。 `1` またはそれ以上の値は、ダンプ階層の指定されたレベルで行われた増分ダンプを示します。

`volumes`
  ダンプにデータを組み込まれたボリュームの数。

`created`
  ダンプ操作が開始した日時。

フランク行に続いて、ダンプからのボリューム・データを収容する各テープについての項目が出力されます。文字列 `Tape` に続いて、各項目の最初の 2 行では、以下のフィールドにそのテープに関する情報がレポートされます。

`name`
  テープに永続名がある場合はその名前、永続名がない場合は AFS テープ名、および括弧内にテープの ID 番号。

`nVolumes`
  このテープがダンプ・データを組み込むボリュームの数。

`created`
  テープ・コーディネーターがこのテープにデータの書き込みを開始した日時。

別のブランク行に続いて、テープに固有の情報が、テープの各ボリューム・ダンプごとに 1 行を組み込むテーブル形式で出力されます。情報は、以下の見出しを持つ列に表示されます。

`Pos`
  このテープまたはファイルの各ボリュームの相対的な位置。テープでは、カウンターは、位置 2 から始まり (テープ・ラベルが位置 1 を占めます)、ボリュームごとに 1 ずつ増分されます。バックアップ・データ・ファイルのボリュームの場合、位置番号は、1 から始まり、通常、1 ずつ増分されません。各ボリュームは、ボリュームのデータが開始されるファイル内の 16 KB オフセットの順序です。したがって、位置番号の差は、ボリュームのデータが 16 KB ブロックをいくつ占有しているかを示します。たとえば、リストの 2 番目のボリュームが位置 5 で、 3 番目のボリュームが位置 9 の場合は、2 番目のボリュームのダンプが、ファイル内の 64KB (16KB ブロック 4 つ) のスペースを占有することを意味します。

`Clone time`
  バックアップ・ボリュームまたは読み取り専用ボリュームの場合は、読み取り / 書き込みソースから複製された時刻です。読み取り / 書き込みボリュームの場合は、出力の最初の行にレポートされるダンプ作成日と同じになります。

`Nbytes`
  ボリュームのダンプ内のデータのバイト数。

`Volume`
  適切な場合、`.backup` または `.readonly` 拡張子を使用します。

-id 引き数と -verbose フラグの両方を指定すると、出力は、いくつかの機能グループに分割されます。

- 最初の機能グループは、下線付きの文字列 `Dump` で、ダンプ全体に関する情報が表示されます。`id`、`level`、`created`、および`nVolumes`というラベルのフィールドは、-id 引き数だけを指定したときに出力の最初の行に表示される値と同じ値 (順序は違います) をレポートします。その他にバックアップ・オペレーターが関心を持つ可能性のあるフィールドには、以下のものがあります。

  `maxTapes`
    このダンプが属するダンプ・セットのデータを含むテープの数。

  `Start Tape Seq`
    ダンプ・セットを含むテープのセットにおいて、このダンプが開始されるテープの順序。
- このダンプからのデータを含む各テープごとに、下線付きの文字列 `Tape` の見出しで始まる機能グループがあります。 `name`、`written`、および`nVolumes`というラベルのフィールドは、-id 引き数だけを指定したときに出力の 2 行目と 3行目の行に表示される値と同じ値 (順序は違います) をレポートします。その他にバックアップ・オペレーターが関心を持つ可能性のあるフィールドには、以下のものがあります。

  `expires`
    このテープがリサイクルできる日付と時刻。テープに含まれるすべてのダンプに有効期限があるためです。

  `nMBytes Data` および `nBytes Data`
    これらのフィールドは、合計され、 (ラベル、ファイル・マーク、およびその他のマーカーではなく) ボリュームから実際にダンプしたデータの合計量を表します。

  `KBytes Tape Used`
    ダンプ・データの保管に使用されたテープのキロバイト数 (または、バックアップ・データ・ファイルの場合はディスク・スペース)。この値は、一般に、 `nMBytes Data` および `nBytes Data` フィールド内の値の合計よりも大きくなります。なぜなら、この値には、ラベル、ファイル・マーク、およびその他のマーカーに必要なスペースも含まれるからであり、指定されたブロックのデータが 16 KB に満たない場合でも、バックアップ・システムがデータを 16 KB オフセットで書き込むからです。
- 指定したテープのボリュームごとに、下線付きの文字列 `Volume` の見出しで始まる機能グループがあります。`name`、`position`、`clone`、および `nBytes` というラベルのフィールドは、-id 引き数だけを指定したときに各テープのボリュームにリストされるテーブルに表示される値と同じ値 (順序は違います) をレポートします。その他にバックアップ・オペレーターが関心を持つ可能性のあるフィールドには、以下のものがあります。

  `id`
    ボリューム ID。

  `tape`
    このボリューム・データが書き込まれた磁気テープの名前

以下の例のコマンドでは、 5 つの最新ダンプ操作のバックアップ・データベース・レコードを表示しています。

       % backup dump 5
          dumpid   parentid lv created          nt nvols dump name
       924424000          0 0  04/18/1999 04:26  1    22 usr.sun (924424000)
       924685000  924424000 1  04/21/1999 04:56  1    62 usr.wed (924424000)
       924773000  924424000 1  04/22/1999 05:23  1    46 usr.thu (924424000)
       924860000  924424000 1  04/23/1999 05:33  1    58 usr.fri (924424000)
       925033000          0 0  04/25/1999 05:36  2    73 sys.week

### ボリュームのダンプ履歴を表示するには

1. /usr/afs/etc/UserList ファイルにリストされているユーザーとして認証されていることを検証します。必要な場合には、bos listusers コマンドを発行します。このコマンドについては、UserList ファイルのユーザーの表示で詳しく説明しています。

          % bos listusers <machine name>

2. backup volinfo コマンドを発行して、ボリュームのダンプ履歴を表示します。

          % backup volinfo <volume name>

   ここで、

   voli
     は、volinfo の受け入れ可能な省略形です。

   volume name
     ダンプ履歴を表示するボリュームの名前です。ボリュームのバックアップまたは読み取り専用バージョンをダンプした場合は、 .backup または .readonly 拡張子を組み込みます。

出力には、指定したボリュームについて言及する、各バックアップ・データベースのダンプ・レコードに関する 1 行が、最新のものから順に組み込まれています。各レコードに関する出力は、6 列のテーブルに表示されます。

`dumpID`
  ボリュームが組み込まれているダンプのダンプ ID。

`lvl`
  ボリュームをダンプするダンプ・レベルのダンプ階層における深さ。値の `0` は、これがフルダンプであることを示します。`1` またはそれ以上の値は、ダンプ階層の指定された深さで行われた増分ダンプを示します。

`parentid`
  ダンプの親ダンプのダンプ ID。値の `0` は、フルダンプを示します。これは親を持っていません。このケースでは、`lvl` もまた `0` でなければなりません。

`creation date`
  バックアップ・システムが、ダンプを作成したダンプ・オペレーションを開始した日時。

`clone date`
  バックアップ・ボリュームまたは読み取り専用ボリュームの場合は、読み取り / 書き込みソースから複製された時刻です。読み取り / 書き込みボリュームの場合は、 `creation date` フィールドの値と同じです。

`tape name`
  ダンプを含んでいるテープの名前。<volume_set_name>.<dump_level_name>.<tape_index>の形式の、永久テープまたは AFS テープ名。ここで、volume_set_name は、ダンプ・セット内の初期ダンプと関連したボリューム・セットの名前です。 dump_level_name は、初期ダンプがバックアップされたダンプ・レベルにおける最終要素の名前です。 tape_index は、ダンプ・セット内のテープの数値的な位置です。いずれの名前のタイプの後にダンプ ID が括弧内に続くことがあります。ダンプ ID が表示された場合、これは、この付記されたダンプが属しているダンプ・セットの初期ダンプのダンプ ID です。

次の例は、バックアップ・ボリューム user.smith.backup のダンプ履歴の一部を示しています。

       % backup volinfo user.smith.backup
       DumpID    lvl parentID  creation   date  clone date       tape name
       924600000 1   924427600 04/20/1999 05:20 04/20/1999 05:01 user_incr_2 (924514392)
       924514392 1   924427600 04/19/1999 05:33 04/19/1999 05:08 user_incr_2
       924427600 0           0 04/18/1999 05:26 04/18/1999 04:58 user_full_6
           .     .      .         .       .       .      .         .
           .     .      .         .       .       .      .         .

### テープ内容をスキャンするには

注:

破壊または損傷したテープをスキャンできるかどうかは、損傷の程度および破壊されたデータの種類によります。通常、バックアップ・システムは、損傷のある点までは正常にスキャンすることができます。損傷が微小であれば、バックアップ・システムは通常これをスキップし、残りをスキャンしますが、損傷が大きいとスキャンの継続ができない場合があります。スキャン操作は、ダンプ・セットの最初のテープから開始する必要はありませんが、バックアップ・システムは指定された初期テープ以降のテープ処理は順番にしか行いません。このため、1 つのテープに損傷があってもダンプ・セットの他のテープのスキャンが行えなくなることはありませんが、スキャン可能なのは損傷テープの前のテープか、後続のテープのいずれかで、両方はスキャンできません。

-dbadd フラグを使用してバックアップ・データベースに情報をスキャンする場合で、最初のテープがダンプ・セットの最初のテープではない場合、以下の制限が適用されます。

- テープの最初のデータが、ダンプ・セットの前の (未スキャン) テープから開始するボリュームの継続であれば、バックアップ・システムはそのボリュームのレコードをバックアップ・データベースに追加しません。
- バックアップ・システムは、追加ダンプにボリュームのデータベース・レコードを追加する際に、追加ダンプの開始を示すマーカーを読み取らなくてはなりません。テープの最初のボリュームが追加ダンプに含まれる場合で、追加ダンプ・マーカーが直前にない場合、バックアップ・システムは、追加ダンプ、または追加ダンプに含まれる後続のボリュームのバックアップ・データベース・レコードは作成しません。

1. /usr/afs/etc/UserList ファイルにリストされているユーザーとして認証されていることを検証します。必要な場合には、bos listusers コマンドを発行します。このコマンドについては、UserList ファイルのユーザーの表示で詳しく説明しています。

          % bos listusers <machine name>

2. 磁気テープ装置に操作を行う磁気テープ・コーディネーターが実行されていない場合には、該当する磁気テープ・コーディネーター・マシンとの接続をオープンにし、butc コマンドを発行してください。詳細については、 テープ・コーディネーター・プロセスを開始するには を参照してください。

          % butc [<port offset>] [-noautoquery]

3. テープをスキャンする場合は、テープをドライブに挿入します。
4. (オプション) backup コマンドを発行して、対話モードに入ります。

          % backup

5. backup scantape コマンドを発行して、テープの内容を読み取ります。

          backup> scantape [-dbadd] [-portoffset <TC port offset>]

   ここで、

   sc
     は、scantape の受け入れ可能な省略形です。

   -dbadd
     ダンプ内のテープおよびダンプ・レベルからダンプおよびテープ・レコードを構成し、これをバックアップ・データベースに書き込みます。

   TC port offset
     操作を処理するテープ・コーディネーター・プロセス・のポート・オフセット番号を指定します。デフォルト値の 0 (ゼロ) が適切でない場合には、この引き数を指定しなければなりません。
6. butc コマンドを発行したときに、-noautoquery フラグを付けなかったか、装置の CFG_device_name 構成ファイルに AUTOQUERY YES 命令を記述している場合には、テープ・コーディネーターから装置のドライブにテープを装てんするようにプロンプトが出されます。すでにこれを行っていても、 <Return> を押して、テープが読み取りの準備ができていることを示さなければなりません。

テープのスキャン操作を終了するには、 <Ctrl-c> などの終了シグナルを使用するか、対話モードで (backup) kill コマンドを発行します。 -dbadd 引き数を組み込んだ場合は、スキャンに割り込みをしない方がよいでしょう。バックアップ・システムがバックアップ・データベースに新規レコードの書き込みを行った場合は、これを除去してからスキャン操作を再度実行します。スキャン操作の繰り返し中に、バックアップ・システムが作成する必要のあるレコードが既に存在することを検出すると、操作が停止します。

テープ上の各ダンプに対して、[テープ・コーディネーター] ウィンドウ内の出力は、ダンプ・ラベル、および、それに続く、各ボリュームに対する項目を表示します。[コマンド] ウィンドウ内には出力はありません。ダンプ・ラベルは、テープ・ラベルの書き込みおよび読み取り で説明したように、 backup readlabel コマンドによって表示されたテープ・ラベルと同じフィールドを持っています。出力フィールドの詳細は、AFS Administration Reference を参照してください。

以下の例は、ポート・オフセット 2 を持っている装置内のテープ上のダンプ・ラベルおよび最初のボリューム項目を示します。

       % backup scantape 2
       -- Dump label --
       tape name = monthly_guest
       AFS tape name = guests.monthly.3
       creationTime =  Mon Feb  1 04:06:40 1999
       cell = example.com
       size = 2150000 Kbytes
       dump path = /monthly
       dump id = 917860000
       useCount = 44
       -- End of dump label --
       -- volume --
       volume name: user.guest10.backup
       volume ID 1937573829
       dumpSetName: guests.monthly
       dumpID 917860000
       level 0
       parentID 0
       endTime 0
       clonedate Mon Feb  1 03:03:23 1999

## データの復元と回復

バックアップを作成する目的は、データが破壊または偶発的に除去された場合に、データを過去の状態と一貫性がある状態に戻して復元することにあります。 AFS バックアップ・システムでは、さまざまな数のボリュームを復元するコマンドを 3つ提供しています。

- 1 つ以上のボリュームを単一のサイト (AFS ファイル・サーバー・マシン上のパーティション) に復元するには、 backup volrestore コマンドを使用します。
- ボリューム・セットとして定義された 1 つ以上のボリュームを、それぞれ指定したサイトに復元するには、backup volsetrestore コマンドを使用します。
- パーティション全体を復元するには (VLDB に常駐するものとしてリストされているすべてのボリューム)、 backup diskrestore コマンドを使用します。

コマンドは組となって各種目的に応じるようにしています。コマンドの機能の組み合わせ、およびその付与する要件が各種存在するためです。特定の復元操作に適切なコマンドを決定するには、この概要に続く機能グループ backup volrestore コマンドを使用する、backup diskrestore コマンドの使用、および backup volsetrestore コマンドの使用 を参照してください。

### 復元操作をより効率的にする

以下の記述は、すべてのタイプの復元操作に適用されます。

- バックアップ・システムは、ボリュームの最新のフル・ダンプの復元から開始します。以降の増分ダンプを復元する際は、フル・ダンプのデータが適切に更新され、ボリュームの変更履歴が必ず反復されます。 backup diskrestore および backup volsetrestore コマンドにより、常にすべての増分ダンプが復元され、ボリュームは最新の増分ダンプ時の状態に戻ります。 backup volrestore コマンドを使用すると、ボリュームを過去の指定時刻の状態に戻すことができます。この場合、この時刻以降に実行された増分ダンプからは復元しません。
- バックアップ・システムは、復元されたボリュームの作成日を、復元操作の日時に設定します。作成日は、 vos examine および vos listvol コマンド出力の `Creation` フィールドに表示されます。
- 復元するボリュームを識別するには、基本 (読み取り / 書き込み) 名を指定するのがよいでしょう。この場合、バックアップ・システムは、バックアップ・データベースから、そのボリュームの読み取り / 書き込みまたはバックアップ・バージョンのデータを組み込んだ最新のダンプ・セットを検索し、そのボリュームのダンプの復元を最新のフル・ダンプから開始します。指定するボリューム名に .backup または .readonly 拡張子を組み込むと、バックアップ・システムはそのバージョンのダンプのみを復元します。そのバージョンからダンプされたデータが見つからないと、その他のバージョンがダンプされていても復元は行われません。
- 3 つの復元コマンドはいずれも -n オプションを受け入れます。これにより、復元するボリューム、および必要なダンプを含むテープまたはバックアップ・データ・ファイルのリストが作成されます。この場合、実際に AFS サーバー・パーティションにデータが復元されることはありません。これにより、復元操作を開始する前に (スタッカーまたはジュークボックスを使用する場合は、ロードする前に)、テープを集めることができます。
- テープに AFS データをバックアップする場合、復元操作はすべてのテープ装置に互換性があれば (同じタイプのテープの読み取り可、圧縮率が同じなど) 最も単純になります。 (データを復元する段階になってからでは設定できないため、これは バックアップ操作の効率化 でも説明されています。) データのバックアップを非互換の装置を使用して行った場合でも、単一コマンドにより複数ボリュームを復元することが可能です。 3 つの復元コマンドに使用する -portoffset 引き数では、複数の値が受け入れられます。ただしバックアップ・システムは、それぞれのボリュームのフル・ダンプを復元する際、リスト中の最初のポート・オフセットを使用し、レベル 1 の増分ダンプの復元では次のポート・オフセットというように、以降はポート・オフセットを順次使用します。どのボリュームについてもフル・ダンプの作成時に互換性のあるテープ装置を使用しなかった場合は (それぞれの増分レベルについても同様)、単一コマンドで複数ボリュームを復元することはできません。 backup volrestore コマンドを使用して 1 度に 1 ボリュームを復元するか、またはボリュームをグループ化したボリューム・セットの定義をダンプに使用したテープ装置に応じて行ってから backup volsetrestore コマンドを使用する必要があります。
- 復元操作中、バックアップ・システムは、関係のある CFG_device_name 構成ファイル中の命令を、ダンプ操作中と同様の方法 (構成の選択がダンプ・プロセスに与える影響 を参照) で使用します。 MOUNT、UNMOUNT、 AUTOQUERY、BUFFERSIZE、および FILE 命令が、ダンプ操作の場合と同様の手順で使用されます。 BUFFERSIZE 命令の手順で異なるのは、この命令で上書きされるデフォルト・バッファー・サイズが、ダンプ操作では 16 KB であるのに対し、復元操作では 32 KB となる点です。バックアップ・システムは、復元操作では NAME_CHECK 命令を使用しません。バックアップ・システムが何らかの理由によりボリュームを復元できない場合、プロンプトを出すかどうか ASK命令により制御します。これを NO に設定すると、問題のあるボリュームはスキップされ、他のボリュームが最大限復元されます。
- ネットワーク、マシン、またはサーバー・プロセスに問題があり、バックアップ・システムがボリュームまたは VLDB にアクセスできない可能性がある場合は、復元操作は行わないでください。バックアップ・システムは、自動的に数回繰り返しボリュームを復元しようとしますが、復元操作には余計な時間がかかり、場合によっては完全に停止して継続方法を指示するようプロンプトが出ることがあります。
- 復元操作は停止しないでください (たとえば、(backup) kill コマンドを対話モードで発行する)。復元操作が何らかの理由で割り込まれた場合、 (制御不能な原因を含む)、同じ復元コマンドをすぐさま再発行するのが現実的な解決法です。障害、または他の問題により操作が中断した場合は、システムが正常な状態に戻るまでは継続しないでください。

  操作が停止した際に完全に復元されているボリュームは、オンラインにあり使用可能ですが、この状態にあると思われるボリュームはごく少数です。複数ボリュームを 1 度に復元する場合、バックアップ・システムはすべてのボリュームのフル・ダンプを復元してから、そのいずれかのレベル 1 の増分ダンプの復元を開始します。そして、すべてのボリュームの復元を指定した増分レベルで完了し、次の増分レベルのデータ復元を開始します。ボリュームが、同じ操作の一部として復元される他のボリュームの増分レベルより上位のレベルでダンプされているのでなければ、復元が完了する見込みがなくなります。

  ボリュームの現行の内容を上書きする場合に復元操作を割り込むのはさらに危険です。復元操作がどの程度進行したかにもよりますが、ボリュームが矛盾した状態になり、バックアップ・システムがこれを完全に除去してしまう場合があります。復元中のデータはテープ、またはバックアップ・データ・ファイル上で使用することができますが、ボリュームを再度作成するには、余計なステップを踏まなくてはなりません。

### backup volrestore コマンドを使用する

いくつかのボリュームを単一のサイト (ファイル・サーバー・マシンのパーティション)に復元するには、 backup volrestore コマンドを使用するのが最適です。デフォルトでは、ボリュームは最新のダンプ操作時の状態に復元されます (フル復元 と呼ばれます)。また、このコマンドを使用することにより、日付指定の復元 が実行できます。これは、指定した日時以前に実行されたダンプ (フルおよび増分) のみを復元し、ボリュームを妥当な最終増分ダンプ時の状態に戻します。backup diskrestore および backup volsetrestore コマンドは、フル復元のみ実行します。

データの復元を、現行バージョンに上書きするのではなく、それぞれのボリュームの新規コピーに行うには、 -extension 引き数を組み込みます。ファイル・スペースに新規ボリュームをマウントした後、両者の内容を比較して、どちらを永続的に保持するか決定することができます。

以下のリストには、backup volrestore コマンドの引き数を組み合わせた、異なる方法によるボリュームの復元方法を示しています。

- 前述のように、日付指定の復元を実行するには、 -date 引き数を使用して日付およびオプションで時刻を指定します。バックアップ・システムは、ダンプに組み込まれたボリュームの複製日が指定した日時より前である最新のフル・ダンプ、および後続の増分ダンプをそれぞれ復元します (複製日の定義については、 構成の選択がダンプ・プロセスに与える影響 の 4 のステップを参照)。この引き数を-extension 引き数と組み合わせることにより、新規ボリュームに日付指定の復元が配置できます。
- ボリュームを新規サイトに移動し、復元されたデータで内容を上書きをするには、 -server および -partition 引き数を単独で、または組み合わせて使用し、現行サイトではなく新規のサイトを指定します。バックアップ・システムはそのサイトに新しいボリュームを作成し、既存のボリュームを削除し、そのボリュームの VLDB 項目内のサイト情報を更新します。元のサイトにそのボリュームのバックアップ・バージョンがある場合、そのバックアップ・バージョンは、自動的に削除されません。 vos remove コマンドを使用してこれを削除し、 vos backup コマンドを使用して、新しいサイトにバックアップ・バージョンを作成します。
- 既存ボリュームを上書きするのではなく、新規ボリュームを作成して復元データを配置するには、 -extension 引き数を使用します。バックアップ・システムは、 -server および -partition 引き数で指定したサーバーおよびパーティション上の新規ボリュームを作成します。この名前は、 -volume 引き数で指定した名前に拡張子を追加したもので、これに対する新規 VLDB 項目が作成されます。コマンドにより、既存のボリュームが影響を受けることはありません。ただし、指定された拡張子を持つボリュームが既に存在する場合は、コマンドはこれを上書きします。新規ボリュームの内容をアクセス可能にするには、fs mkmount コマンドを使用してこれをマウントします。その上で、その内容を既存のボリュームの内容と比較し、どちらを永続的に保存するか判別することができます。
- データがバックアップされており、 AFS サーバー・パーティションに存在しないボリュームを復元するには、 -volume 引き数で新規ボリューム名を指定し、-server および -partition 引き数を使用して任意のサイトにこれを復元します。バックアップ・システムは、新規ボリュームおよび新規の VLDB 項目を作成します。

### backup volrestore コマンドによるボリュームの復元

1. /usr/afs/etc/UserList ファイルにリストされているユーザーとして認証されていることを検証します。必要な場合には、bos listusers コマンドを発行します。このコマンドについては、UserList ファイルのユーザーの表示で詳しく説明しています。

          % bos listusers <machine name>

2. 磁気テープ装置に操作を行う磁気テープ・コーディネーターが実行されていない場合には、該当する磁気テープ・コーディネーター・マシンとの接続をオープンにし、butc コマンドを発行してください。詳細については、 テープ・コーディネーター・プロセスを開始するには を参照してください。

          % butc [<port offset>] [-noautoquery]

   複数のテープ装置を使用している場合は、それぞれのテープ・コーディネーターごとにコマンドを繰り返します。

3. テープ装置を使用する場合は、テープを挿入します。
4. backup コマンドを発行して、対話モードに入ります。

          % backup

5. 使用したい引き数を付けて backup volrestore コマンドを発行します。

          backup> volrestore <destination machine> <destination partition>  \
                             -volume <volume(s) to restore>+  \
                             [-extension <new volume name extension>]  \
                             [-date <date from which to restore>]  \
                             [-portoffset <TC port offsets>+] [-n]

   ここで、

   volr
     は、volrestore の受け入れ可能な省略形です。

   destination machine
     それぞれのボリュームを復元するファイル・サーバー・マシンの名前です。ボリュームの現行サイトである必要はありません。

   destination partition
     それぞれのボリュームを復元するパーティションの名前です。ボリュームの現行サイトである必要はありません。

   -volume
     復元するボリュームの名前です。基本 (読み取り / 書き込み) 名を指定するのが最適です。理由は 復元操作をより効率的にする を参照してください。

   -extension
     復元したデータを配置する新規ボリュームを作成します。名前は、-volume 拡張子で指定した各ボリューム名に指定文字列を追加して作成します。バックアップ・システムは、既存のボリュームが存在する場合は、その内容を保存します。.readonly または .backup 拡張子は予約済みのため使用しないでください。基本ボリューム名と拡張子の組み合わせは、22 文字以内とします。ピリオドを使って拡張子を名前から分離したい場合、ピリオドを文字列の最初の文字に指定します (たとえば、 .rst のようにします)。

   -date
     日付およびオプションで時刻を指定します。復元されるボリュームには、この日付以前に実行されたダンプのデータのみが組み込まれます。値を mm/dd/yyyy [hh:MM] 形式で入力します。必須部分の mm/dd/yyyy は、月 (mm)、日 (dd)、および年 (yyyy) を示し、オプションの hh:MM は、 24 時間形式の時刻を示します (たとえば、14:36 は 2:36 p.m. を表します)。これを省略すると、デフォルトは、午前 0 時 59 秒 (00:00:59 時) となります。

     年範囲の有効な値は、1970 から 2037 までです。標準 UNIX 表示における最後の日付の表示は 2023 年 2 月であるため、これより高い価は無効です。コマンド・インタープリターは、それ以降の日付を自動的に最大値に削減します。

     注: | コマンド構文中、この引き数にはプラス記号が続きますが、これは複数値を受け入れるためで (値を二重引用符や他の区切り文字で囲む必要はありません)、複数の日付を受け入れるわけではありません。単一の日付 (オプションで時間) を定義します。

   -portoffset
     1 つ以上のポート・オフセット番号を指定します。それぞれが操作で使用するテープ・コーディネーターに対応します。複数の値がある場合、それぞれのボリュームのフル・ダンプを復元する際、リスト中の最初のオフセット、レベル 1 の増分ダンプの復元では次のオフセットというように、以降はこれを順次使用します。リストの最終値を使用する際は、ダンプ階層中これに対応する深さのダンプ、およびこれ以下のレベルのすべてのダンプが復元されます。

     すべてのダンプについてデフォルト値の 0 (ゼロ) が適切でない場合に限り、この引き数を使用します。 0 がリスト中の値の 1 つであれば、これを適当な順序で明示的に指定します。

   -n
     復元操作で必要とするダンプを含むテープのリストを表示します。実際に操作は行いません。
6. butc コマンドを発行したときに、-noautoquery フラグを付けなかったか、装置の CFG_device_name 構成ファイルに AUTOQUERY YES 命令を記述している場合には、テープ・コーディネーターから装置のドライブにテープを装てんするようにプロンプトが出されます。すでにこれを行っていても、 <Return> を押して、テープがラベル付けの準備ができていることを示さなければなりません。

   複数のテープが必要な場合は、 MOUNT 命令を CFG_device_name ファイルに組み込み、対応するスタッカーまたはジュークボックスにテープを装てんするか、コンソールにとどまり次のテープに対するプロンプトに応えなければなりません。

7. 復元操作が完了したら、バックアップ・システムのログ・ファイルにエラーがないかチェックします。 bos getlog コマンド (サーバー・プロセス・ログ・ファイル表示する を参照) を使用して /usr/afs/logs/BackupLog ファイルを読み取り、テープ・コーディネーター・マシンのテキスト・エディターを使用して TE_device_name および TL_device_name ファイル (/usr/afs/backup ディレクトリー) を読み取ります。

### backup diskrestore コマンドの使用

ハードウェア障害によりすべてのデータが破壊または破棄された場合など、すべてのボリュームを AFS サーバー・パーティションに復元する必要がある場合には、 backup diskrestore コマンドが最適です。このコマンドにより、指定パーティションが現行サイトとして VLDB にリストされているすべての読み取り / 書き込みボリュームのフル復元が実行されます。この際、最新のダンプの種類に応じて、それぞれのボリュームの読み取り / 書き込みまたはバックアップ・バージョンのいずれかのダンプが使用されます。 (backup diskrestore 操作の完了後、 vos backup および vos release コマンドを使用すれば、パーティション上にある任意のバックアップまたは読み取り専用ボリュームを復元できます。)

デフォルトでは、バックアップ・システムはボリュームが以前に配置されていたサイトに復元を行います。パーティション内容を新規サイトに移動するには、 -newserver および -newpartition 引き数を単独または組み合わせて使用します。

デフォルトでは、バックアップ・システムは復元されたデータにより既存のボリュームの内容を上書きします。代わりに新規ボリュームを作成して復元データを配置するには、 -extension 引き数を使用します。バックアップ・システムは、 -newserver および -newpartition 引き数 (これを使用した場合)、または -server および -partition 引き数 (それ以外の場合) で指定したサイトに新規ボリュームを作成します。バックアップ・システムは、 VLDB にリストされている読み取り / 書き込み基本名に拡張子を追加してボリューム名を作成し、新しい VLDB 項目を作成します。コマンドにより、既存のボリュームが影響を受けることはありません。ただし、指定された拡張子を持つボリュームが既に存在する場合は、コマンドはこれを上書きします。

パーティションが損傷を受けていると思われる場合、backup diskrestore コマンドの前に vos syncserv コマンドを実行しないでください。前述のとおり、バックアップ・システムは VLDB のサイト定義に従いボリュームを復元します。 vos syncserv コマンドは、パーティションの損傷がひどくボリューム・サーバーがボリュームの存在を確認できない場合に、ボリュームの VLDB 項目を除去する場合があります。

### backup diskrestore コマンドによるパーティションの復元

1. /usr/afs/etc/UserList ファイルにリストされているユーザーとして認証されていることを検証します。必要な場合には、bos listusers コマンドを発行します。このコマンドについては、UserList ファイルのユーザーの表示で詳しく説明しています。

          % bos listusers <machine name>

2. 磁気テープ装置に操作を行う磁気テープ・コーディネーターが実行されていない場合には、該当する磁気テープ・コーディネーター・マシンとの接続をオープンにし、butc コマンドを発行してください。詳細については、 テープ・コーディネーター・プロセスを開始するには を参照してください。

          % butc [<port offset>] [-noautoquery]

   複数のテープ装置を使用している場合は、それぞれのテープ・コーディネーターごとにコマンドを繰り返します。

3. テープ装置を使用する場合は、テープを挿入します。
4. backup コマンドを発行して、対話モードに入ります。

          % backup

5. 使用したい引き数を付けて backup diskrestore コマンドを発行します。

          backup> diskrestore <machine to restore> <partition to restore>  \
                              [-portoffset <TC port offset>+]  \
                              [-newserver <destination machine>]  \
                              [-newpartition <destination partition>]  \
                              [-extension <new volume name extension>] [-n]

   ここで、

   di
     は、diskrestore の受け入れ可能な省略形です。

   machine to restore
     VLDB に復元の必要があるボリュームのサイトとしてリストされているファイル・サーバー・マシンの名前です。

   partition to restore
     VLDB に復元の必要があるボリュームのサイトとしてリストされているパーティションの名前です。

   -portoffset
     1 つ以上のポート・オフセット番号を指定します。それぞれが操作で使用するテープ・コーディネーターに対応します。複数の値がある場合、それぞれのボリュームのフル・ダンプを復元する際、リスト中の最初のオフセット、レベル 1 の増分ダンプの復元では次のオフセットというように、以降はこれを順次使用します。リストの最終値を使用する際は、ダンプ階層中これに対応する深さのダンプ、およびこれ以下のレベルのすべてのダンプが復元されます。

     すべてのダンプについてデフォルト値の 0 (ゼロ) が適切でない場合に限り、この引き数を使用します。 0 がリスト中の値の 1 つであれば、これを適当な順序で明示的に指定します。

   -newserver
     ボリュームの復元先である代替ファイル・サーバー・マシンの名前です。この引き数を省略すると、ボリュームは -server 引き数で指定したファイル・サーバー・マシンに復元されます。

   -newpartition
     データの復元先となる代替パーティションの名前です。この引き数を省略すると、ボリュームは -partition 引き数で指定したパーティションに復元されます。

   -extension
     復元されるそれぞれのボリュームに対して新規ボリュームを作成し、復元データを配置します。VLDB にリストされているボリュームの読み取り / 書き込み基本名に、指定文字列を追加します。 .readonly または .backup 以外のいずれの文字列も受け入れ可能です。基本名と拡張子の組み合わせは、22 文字以内とします。ピリオドを使って拡張子を名前から分離するには、ピリオドを文字列の最初の文字に指定します (たとえば、 .rst のようにします)。

   -n
     要求された復元の実行に必要なテープをリストします。実際に操作は行いません。
6. butc コマンドを発行したときに、-noautoquery フラグを付けなかったか、装置の CFG_device_name 構成ファイルに AUTOQUERY YES 命令を記述している場合には、テープ・コーディネーターから装置のドライブにテープを装てんするようにプロンプトが出されます。すでにこれを行っていても、 <Return> を押して、テープがラベル付けの準備ができていることを示さなければなりません。

   複数のテープが必要な場合は、 MOUNT 命令を CFG_device_name ファイルに組み込み、対応するスタッカーまたはジュークボックスにテープを装てんするか、コンソールにとどまり次のテープに対するプロンプトに応えなければなりません。

7. 復元操作が完了したら、バックアップ・システムのログ・ファイルにエラーがないかチェックします。 bos getlog コマンド (サーバー・プロセス・ログ・ファイル表示する を参照) を使用して /usr/afs/logs/BackupLog ファイルを読み取り、テープ・コーディネーター・マシンのテキスト・エディターを使用して TE_device_name および TL_device_name ファイル (/usr/afs/backup ディレクトリー) を読み取ります。

### backup volsetrestore コマンドの使用

複数の読み取り / 書き込みボリュームをフル復元し、それぞれを指定サイトに配置する場合は、 backup volsetrestore コマンドが最適です。復元するボリュームの指定は、 -name 引き数でボリューム・セットを指定するか、またはそれぞれのボリューム名および復元サイトを -file 引き数で指定したファイルにリストします。以下の機能グループで説明をします。

backup volsetrestore コマンドを使用すると、単一コマンドで多数のボリュームが復元できるため、復元操作は完了までに長時間かかる場合があります。時間を短縮する方法としては、コマンドの複数インスタンスを同時に実行する方法があります。 -name 引き数を使用してそれぞれのコマンドにばらばらのボリューム・セットを指定するか、 -file 引き数を使用して、異なるボリュームをリストするファイルを指定します。要求されるテープを読み取るには、複数のテープ・コーディネーターが必要です。復元するボリュームをテープにダンプする方法によっては、ばらばらのボリューム・セットを指定することにより、必要なテープ交換回数も減らすことができます。

#### -name 引き数を使用したボリューム・セットの復元

-name 引き数を使用することにより、ボリューム・セットに定義されたボリューム・グループを復元することができます。バックアップ・システムは、ボリューム・セットのボリューム項目に定義されたサーバー、パーティション、およびボリューム名条件に一致し、ダンプが可能なボリュームのリストを VLDB に作成します。ボリュームは、VLDB にリストされていれば、サーバー・パーティションに存在しなくてもかまいません (これはたとえば、ハードウェア問題によりディスク全体の内容が破壊された場合に起こります)。

デフォルトでは、バックアップ・システムは、ボリューム・セット条件と一致するボリュームを、それぞれ読み取り / 書き込みボリュームとして、VLDB にリストされたサイトに復元します。一致する名前のボリュームがそのサイトに存在すれば、現行の内容は上書きされます。代わりに -extension 引き数を組み込むことにより、新規ボリュームを作成して復元データを配置することができます。バックアップ・システムは、新規ボリュームを既存のボリュームのサイトに作成します。この名前は、既存ボリュームの読み取り / 書き込み基本名に拡張子を追加したもので、これに対する新規 VLDB 項目が作成されます。コマンドにより、既存のボリュームが影響を受けることはありません。ただし、指定された拡張子を持つボリュームが既に存在する場合は、コマンドはこれを上書きします。新規ボリュームの内容をアクセス可能にするには、fs mkmount コマンドを使用してこれをマウントします。その上で、その内容を既存のボリュームの内容と比較し、どちらを永続的に保存するか判別することができます。

そのボリューム・セットが、以前にボリュームのバックアップに使用された (backup dump コマンドの -volumeset オプションとして使用された) 必要はありません。ボリューム・セットは、このコマンドを使った復元が必要かつ通常はよりよい選択肢であるボリュームに適すように、特に定義することができます。実際、 backup addvolset コマンドに -temporary フラグを組み込んで作成された temporary ボリューム・セットは、このコンテキストでは特に役立ちます (ボリューム・セットおよびボリューム項目の定義および表示 の説明を参照)。一時ボリューム・セットはバックアップ・データベースに追加されず、現在の対話式バックアップ・セッションの間のみ存続します。これは、そのボリューム・セットが、このコマンドによって開始された単一の復元操作のみを完了する必要がある場合に適しています。

特に定義されたボリューム・セットの方がおそらく適しているという理由は、ダンプ操作で使用するために以前に定義されたボリューム・セットは、ボリュームのバックアップ・バージョンに適していますが、復元操作に対しては、基本 (読み取り / 書き込み) 名に適したボリューム項目を定義するのがよいからです。この場合、バックアップ・システムは、バックアップ・データベースから、ボリュームの読み取り / 書き込みまたはバックアップ・バージョンのいずれかのダンプを含む最新のダンプ・セットを検索します。これに対して、ボリューム項目が明示的にボリュームのバックアップまたは読み取り専用バージョンと一致する場合は、バックアップ・システムは、そのボリューム・バージョンのダンプのみを使用し、 .backup または .readonly 拡張子を取り外して、それらを読み取り / 書き込みボリュームに復元します。

ボリューム・セット条件に合致する VLDB 項目がある場合で、これに対してバックアップ・データベースにはダンプが記録されていなければ、バックアップ・システムはこれを復元することができません。それぞれにつき、標準エラー・ストリームにエラー・メッセージが表示されます。

#### -file 引き数によりファイルにリストされたボリュームを復元する

-file 引き数を使用して、復元するそれぞれの読み取り / 書き込みボリュームの名前およびサイトを指定します。それぞれのボリュームの項目が、ファイル中の指定行 (改行なし) に以下の形式に準拠して表示されます。

          machine    partition   volume    [comments...]

ここで、

machine
  ボリュームの復元先であるファイル・サーバー・マシンの名前です。現行サイト以外のマシンを指定することにより、復元する際にボリュームが移動できます。

partition
  ボリュームの復元先であるパーティションの名前です。現行サイト以外のパーティションを指定することにより、復元する際にボリュームが移動できます。

volume
  復元するボリュームの名前です。基本 (読み取り / 書き込み) 名を指定して、バックアップ・システムが、バックアップ・データベースから、ボリュームの読み取り / 書き込みまたはバックアップ・バージョンのいずれかのダンプを含む最新のダンプ・セットを検索するようにします。これにより、最新のフル・ダンプから開始して、ボリュームのそのバージョンのダンプが復元されます。一方で、 `.backup` または `.readonly` 拡張子を組み込んだ場合は、バックアップ・システムはそのボリューム・バージョンのダンプのみを復元しますが、読み取り / 書き込みボリュームに拡張子なしで復元されます。基本名は、 VLDB ではなくバックアップ・データベースのダンプ・レコードで使用する名前に一致させます (これらが異なる場合)。バックアップ・システムは -file 引き数を使用する際、VLDB を照会しません。

comments...
  その他のテキストです。バックアップ・システムは、ボリューム名以降の行内のテキストは無視するため、このフィールドに注釈を記入することができます。

machine、partition、または volume フィールドにワイルドカード (たとえば .*) は使用しないでください。ファイル内の複数行で同じボリュームを指定することができますが、バックアップ・システムはその最初のボリュームのみ処理します。

デフォルトでは、バックアップ・システムはそれぞれのボリュームの既存のバージョンを復元データに置き換え、ボリュームを machine および partition フィールドで指定したサイトに配置します。代わりに -extension 引き数を組み込むことにより、新規ボリュームを作成して復元内容を配置することができます。バックアップ・システムは、 machine および partition フィールドで指定したサイトに、新規ボリュームを作成します。新規ボリュームの名前は、 volume フィールドの名前の読み取り / 書き込みバージョンに指定拡張子を追加したもので、これに対する新規 VLDB 項目が作成されます。コマンドにより、既存のボリュームが影響を受けることはありません。ただし、指定された拡張子を持つボリュームが既に存在する場合は、コマンドはこれを上書きします。新規ボリュームの内容をアクセス可能にするには、fs mkmount コマンドを使用してこれをマウントします。その上で、その内容を既存のボリュームの内容と比較し、どちらを永続的に保存するか判別することができます。

バックアップ・データベースにダンプが記録されていないボリュームの項目がファイルに含まれる場合は、バックアップ・システムはこれを復元することができません。それぞれにつき、標準エラー・ストリームにエラー・メッセージが表示されます。

-file 引き数の入力に使用するファイルを作成する方法としては、コマンドを -name および -n オプションを使用して発行し、出力をファイルに送信する方法があります。出力には、それぞれのボリュームについて以下のような行が含まれます (ここでは分かりやすくするため、 2 行に分けて表示)。この値は、以下のリストに示すソースより取得しています。

          machine   partition   volume_dumped  # as   volume_restored;    \
             tape_name   (tape_ID);   pos   position_number;   date

ここで、

machine
  現在ボリュームを所有するファイル・サーバー・マシンの名前。VLDB のリストに同様。

partition
  現在ボリュームを所有するパーティションの名前。VLDB のリストに同様。

volume_dumped
  バックアップ・データベースのリストに従って、ダンプされたボリュームのバージョン (読み取り / 書き込みまたはバックアップ) を指定します。

volume_restored
  -n フラグを組み込まずにバックアップ・システムがボリュームを復元する際に使用する名前を指定します。 -extension 引き数を、 -name および -n オプションと合わせて組み込んだ場合、このフィールドの名前には拡張子が付きます (たとえば、`user.pat.rst`)。

tape_name
  ボリュームのダンプを含むテープの名前です。バックアップ・データベースにリストされています。テープに永続名がある場合、ここに表示されます。なければ AFS テープ名となります。

tape_ID
  ボリュームのダンプを含むテープのテープ ID です。バックアップ・データベースにリストされています。

position_number
  テープにおけるダンプの位置を指定します (たとえば `31` は、テープ上で現行ダンプの前に 30 ボリューム・ダンプがあることを示します)。ダンプがバックアップ・データ・ファイルに書き込まれた場合は、この数はボリューム・データが開始する 16 KB オフセットの順序数です。

date
  ボリュームがダンプされた日時。

項目を -file 引き数で使用できるようにするには、これを指示に従い編集します。

- バックアップ・システムは、入力ファイルのそれぞれの行の最初の 3 つのフィールドのみを使用するため、番号記号 (`#`) より後のフィールドはすべて無視します。ファイルを読みやすくするためにこれらを削除することができますが、削除しなくてもかまいません。
- 出力ファイルの各行の volume_dumped (3 番目) のフィールドが、入力ファイルの volume フィールドとなります。バックアップ・システムは、読み取り / 書き込みボリュームにのみデータを復元するため、 volume_dumped フィールドの名前に `.backup` または `.readonly` 拡張子がある場合は、これを削除します。
- 出力ファイルには、特定のボリューム・ダンプを組み込むダンプ操作 (フル・ダンプおよび増分ダンプ) のそれぞれについての行が含まれます。しかし、バックアップ・システムは入力ファイル中、特定のボリュームについて記述した最初の行のみを処理します。ファイルを読みやすくするために、繰り返し現れる行は削除することができます。
- 出力行の machine および partition フィールドは、ボリュームの現行サイトを指定します。復元する際、ボリュームを他のサイトに移動するには、値を変更します。

### backup volsetrestore コマンドによりボリューム・グループを復元する

1. /usr/afs/etc/UserList ファイルにリストされているユーザーとして認証されていることを検証します。必要な場合には、bos listusers コマンドを発行します。このコマンドについては、UserList ファイルのユーザーの表示で詳しく説明しています。

          % bos listusers <machine name>

2. 磁気テープ装置に操作を行う磁気テープ・コーディネーターが実行されていない場合には、該当する磁気テープ・コーディネーター・マシンとの接続をオープンにし、butc コマンドを発行してください。詳細については、 テープ・コーディネーター・プロセスを開始するには を参照してください。

          % butc [<port offset>] [-noautoquery]

   複数のテープ装置を使用している場合は、それぞれのテープ・コーディネーターごとにコマンドを繰り返します。

3. テープ装置を使用する場合は、テープを挿入します。
4. backup コマンドを発行して、対話モードに入ります。

          % backup

5. (オプション) この復元操作のために特別に新規ボリュームを作成するのが適当な場合は、 (backup) addvolset を発行してこれを作成します。バックアップ・データベースにボリューム・セットを負荷する必要がない場合は、 -temporary フラグを組み込みます。次に、1 つまたは複数の (backup) addvolentry コマンドを発行して、復元されるボリュームのみを組み込むボリューム項目を作成します。詳細な説明が ボリューム・セットおよびボリューム項目の定義および表示 に示されています。

          backup> addvolset <volume set name>  [-temporary]

          backup> addvolentry  -name <volume set name>  \
                               -server <machine name>  \
                               -partition <partition name>  \
                               -volumes <volume name (regular expression)>

6. 使用したい引き数を付けて backup volsetrestore コマンドを発行します。

          backup> volsetrestore [-name <volume set name>]  \
                        [-file <file name>]  \
                        [-portoffset <TC port offset>+]  \
                        [-extension <new volume name extension>] [-n]

   ここで、

   -name
     復元するボリューム・セットの名前です。バックアップ・システムは、 VLDB のリスト中、ボリューム・セットのボリューム項目に一致するすべてのボリュームを復元します (-name 引き数を使用したボリューム・セットの復元 を参照)。この引き数は、 -file 引き数とは一緒に使用できません。

   -file
     1 つ以上のボリューム、およびそれぞれのボリュームを復元するサイト (ファイル・サーバー・マシンおよびパーティション) をリストするファイルの全パス名を指定します。入力ファイルは、 -file 引き数によりファイルにリストされたボリュームを復元する に説明した形式をとります。この引き数は、-name 引き数とは一緒に使用できません。

   -portoffset
     1 つ以上のポート・オフセット番号を指定します。それぞれが操作で使用するテープ・コーディネーターに対応します。複数の値がある場合、それぞれのボリュームのフル・ダンプを復元する際、リスト中の最初のオフセット、レベル 1 の増分ダンプの復元では次のオフセットというように、以降はこれを順次使用します。リストの最終値を使用する際は、ダンプ階層中これに対応する深さのダンプ、およびこれ以下のレベルのすべてのダンプが復元されます。

     すべてのダンプについてデフォルト値の 0 (ゼロ) が適切でない場合に限り、この引き数を使用します。 0 がリスト中の値の 1 つであれば、これを適当な順序で明示的に指定します。

   -extension
     復元されるそれぞれのボリュームに対して新規ボリュームを作成し、復元データを配置します。VLDB にリストされているボリュームの読み取り / 書き込み基本名に、指定文字列を追加します。 .readonly または .backup 以外のいずれの文字列も受け入れ可能です。基本名と拡張子の組み合わせは、22 文字以内とします。ピリオドを使って拡張子を名前から分離するには、ピリオドを文字列の最初の文字に指定します (たとえば、 .rst のようにします)。

   -n
     フラグが組み込まれない場合に復元するボリュームのリストを表示します。実際にこれを復元することはありません。この解説ページの 出力 についての機能グループには、出力形式の詳細が記されています。 -name 引き数と組み合わせると、その出力が簡単に編集でき、以降の backup volsetrestore コマンドで -file 引き数の入力に使用することができます。
7. butc コマンドを発行したときに、-noautoquery フラグを付けなかったか、装置の CFG_device_name 構成ファイルに AUTOQUERY YES 命令を記述している場合には、テープ・コーディネーターから装置のドライブにテープを装てんするようにプロンプトが出されます。すでにこれを行っていても、 <Return> を押して、テープがラベル付けの準備ができていることを示さなければなりません。

   複数のテープが必要な場合は、 MOUNT 命令を CFG_device_name ファイルに組み込み、対応するスタッカーまたはジュークボックスにテープを装てんするか、コンソールにとどまり次のテープに対するプロンプトに応えなければなりません。

8. 復元操作が完了したら、バックアップ・システムのログ・ファイルにエラーがないかチェックします。 bos getlog コマンド (サーバー・プロセス・ログ・ファイル表示する を参照) を使用して /usr/afs/logs/BackupLog ファイルを読み取り、テープ・コーディネーター・マシンのテキスト・エディターを使用して TE_device_name および TL_device_name ファイル (/usr/afs/backup ディレクトリー) を読み取ります。

## バックアップ・データベースの保守

バックアップ・データベースは、データのダンプと復元を行うときに使用する構成と追跡のすべての情報を保管します。ハードウェア障害、またはデータベース・サーバー・マシンのほかの問題によってデータベースが破壊、または損傷した場合、構成情報 (ダンプ階層、ボリューム・セットのリスト、およびテープ・コーディネーターのポート・オフセット番号) を再作成するのは比較的容易です。けれども、ダンプ追跡情報 (ダンプ・レコード) の復元は、もっと複雑で時間がかかります。データの消失を防ぐ、バックアップ・データベースそのものを定期的にテープにバックアップします。

他の潜在的な問題としては、バックアップ・システムは、ダンプ操作の詳細で相互参照されたレコードを保持するため、バックアップ・データベースがすぐに大きくなってしまう点があげられます。バックアップ・サーバーが、必要なデータを見つけるために大量の古くなったレコードをナビゲートしなければならない場合、バックアップ・オペレーションは、より非効率的になる可能性があります。データベースを管理可能なサイズに保つには、 backup deletedump コマンドを使用して、古くなったレコードを除去します (古くなったレコードをバックアップ・データベースから除去する を参照)。しかし、まだ必要なレコードを除去してしまったことに後から気付いた場合は、 backup scantape コマンドを使用して、対応するテープ上のダンプおよびラベルから情報をデータベースに読み取ることができます (テープ内容をスキャンするには を参照)。

### バックアップ・データベースのバックアップと復元

バックアップ・データベース内の情報は重要なものであり、これはテープまたは他の永続的なメディアに定期的に保存するのがよいでしょう。他の AFS 管理データベースの場合、推奨される方法としては、 UNIX tar コマンドのようにマシンのローカル・ディスクをバックアップするためのユーティリティーを使用するものがあります。説明については、管理用データベースのバックアップと復元 を参照してください。

まれにではありますが、バックアップ・データベースが損傷または破壊されたと思われる場合は、 backup dbverify コマンドを使用してその状況をチェックすることができます。これが破壊されている場合は、backup savedb コマンドを使用することにより損傷が修復可能な場合もあります。その上で、backup restoredb を使用して、修正したデータベースをデータベース・サーバー・マシンのローカル・ディスクに戻します。説明については、バックアップ・データベースの破壊のチェックおよび修復 を参照してください。

### バックアップ・データベースの破壊のチェックおよび修復

まれにバックアップ・データベースが、ディスクまたはその他のハードウェア・エラーのために損傷または破壊される場合があります。 backup dbverify コマンドを使用して、データベースの整合性を検査します。これが破壊されている場合、最も効率的な修復方法は、backup savedb コマンドを使用してデータベースをテープにコピーするものです。コマンドにより、自動的にいくつかの種類の損傷は自動的に修復され、その上で backup restoredb コマンドを使用して、データベースの修復コピーをデータベース・サーバー・マシンのローカル・ディスクに戻します。

backup savedb コマンドにより 孤立ブロック を削除することもできます。これは、バックアップ・サーバーがデータベースに事前割り振りしたメモリー範囲で、使用できなくなったものです。孤立ブロックはデータベース・アクセスの障害となるものではありませんが、ディスク・スペースを浪費します。backup dbverify コマンドを使用すると、 -detail フラグを組み込んだ場合に、孤立ブロックがあるか報告されます。

### バックアップ・データベースの整合性を検査するには

1. /usr/afs/etc/UserList ファイルにリストされているユーザーとして認証されていることを検証します。必要な場合には、bos listusers コマンドを発行します。このコマンドについては、UserList ファイルのユーザーの表示で詳しく説明しています。

          % bos listusers <machine name>

2. backup dbverify コマンドを発行して、バックアップ・データベースの整合性を検査します。

          % backup dbverify [-detail]

   ここで、

   db
     は、dbverify の受け入れ可能な省略形です。

   -detail
     AFS Administration Reference の backup dbverify 参照ページで説明したように、孤立ブロックの存在、およびデータベースについてのその他の情報を表示します。

   出力は、以下のメッセージのいずれかをレポートします。

   - `Database OK` は、バックアップ・データベースが損傷していないことを示す。
   - `Database not OK` は、バックアップ・データベースが損傷していることを示す。問題を回復するには、バックアップ・データベースの破壊の修復 の指示に従います。

### バックアップ・データベースの破壊の修復

1. ローカル・スーパーユーザー root として、セル内の各データベース・サーバー・マシンにログインします。
2. 磁気テープ装置に操作を行う磁気テープ・コーディネーターが実行されていない場合には、該当する磁気テープ・コーディネーター・マシンとの接続をオープンにし、butc コマンドを発行してください。詳細については、テープ・コーディネーター・プロセスを開始するには を参照してください。

          % butc [<port offset>] [-noautoquery]

3. テープに書き込む場合は、適切な装置にテープを挿入します。
4. いずれかのマシンで作業をし、backup コマンドを発行して、対話モードに入ります。

          #  backup -localauth

   ここで、-localauth により、ローカルの /usr/afs/etc/KeyFile ファイルからサーバー・チケットを構成します。このフラグにより、AFS 管理トークンを持っていなくても、ローカル・スーパーユーザー root としてログインし、特権コマンドを発行することができます。

5. バックアップ操作がアクティブで実行されていないことを確認します。必要であれば、 (backup) status コマンドを発行します (テープ・コーディネーター・プロセスの状況を検査するには を参照)。それぞれのテープ・コーディネーターのポート・オフセットごとに順に繰り返します。

          backup> status -portoffset <TC port offset>

6. (backup) savedb コマンドを発行し、データベースがテープまたはファイルに書き込まれる際に破壊の修復を行います。

          backup> savedb [-portoffset <TC port offset>]

   ここで、

   sa
     は、savedb の受け入れ可能な省略形です。

   -portoffset
     この操作で磁気テープを処理する磁気テープ・コーディネーターのポート・オフセット番号を指定します。デフォルト値の 0 (ゼロ) が適切でない場合には、この引き数を指定しなければなりません。
7. 対話モードを終了します。

          backup>  quit

8. それぞれのマシン上で、順に bos shutdown コマンドを発行して、バックアップ・サーバー・プロセスを終了します。ユーザーはローカル・スーパーユーザー root としてログインしているため、 -localauth を組み込みますが、管理トークンは必要ありません。完全なコマンド構文については、 プロセスを一時停止させる方法 を参照してください。

          # /usr/afs/bin/bos shutdown <machine name> buserver  -localauth  -wait

9. それぞれのマシンで、順に以下のコマンドを発行し、バックアップ・データベースを除去します。

          # cd /usr/afs/db
          # rm bdb.DB0
          # rm bdb.DBSYS1

10. 最下位の IP アドレスのマシンから開始し、それぞれのマシンで順に bos start コマンドを発行して、バックアップ・サーバー・プロセスを再始動します。開始する際には長さゼロのバックアップ・データベースのコピーが作成されます。完全なコマンド構文については、状況フラグを Run に変更してプロセスを開始する方法 を参照してください。

           # /usr/afs/bin/bos start <machine name> buserver  -localauth

11. いずれかのマシンで作業をし、backup コマンドを発行して、対話モードに入ります。

           #  backup -localauth

    ここで、-localauth により、ローカルの /usr/afs/etc/KeyFile ファイルからサーバー・チケットを構成します。

12. (backup) addhost コマンドを発行し、データベースの修復コピーを読み取るテープまたはファイルを処理するテープ・コーディネーター・プロセスに対し、新規の空のデータベースに項目を作成します (2 のステップで開始したプロセス、および 6 のステップの backup savedb 操作で実行したプロセスについて)。完全な構文については、 磁気テープ・コーディネーター・マシンを構成するには 内の 8 のステップを参照してください。

           backup>  addhost <tape machine name> [<TC port offset>]

13. (backup) restoredb コマンドを発行し、修復されたデータベースをデータベース・サーバー・マシンにコピーします。

           backup> restoredb  [-portoffset <TC port offset>]

    ここで、

    res
      は、restoredb の受け入れ可能な省略形です。

    -portoffset
      この操作で磁気テープを処理する磁気テープ・コーディネーターのポート・オフセット番号を指定します。デフォルト値の 0 (ゼロ) が適切でない場合には、この引き数を指定しなければなりません。
14. (オプション) 追加の backup コマンドを発行する予定がなければ、対話モードを終了します。

           backup>  quit

15. (オプション) 必要であれば、Ctrl-d または他の割り込みシグナルを入力し、それぞれのデータベース・サーバー・マシンの root シェルを終了します。また、テープ・コーディネーター・マシンで Ctrl-c 信号を発行してプロセスを停止することもできます。

### 古くなったレコードをバックアップ・データベースから除去する

backup dump コマンドまたは backup labeltape コマンドを使用して、テープのリサイクルまたは再ラベル付けを行う度に、バックアップ・システムは、そのテープ、およびダンプ・セット内のすべてのテープ上に含まれたダンプに対するすべてのダンプ・レコードを自動的に除去します。しかし、それでも時間がたつと、バックアップ・データベースに古くなったレコードがたまる場合があります。たとえば、バックアップ・テープを、メーカーが推奨している最大使用回数まで使用して廃棄した場合、そのテープ上のダンプ用のレコードは、データベース上に残されます。同様に、ダンプの有効期限になってもそのダンプを含むテープをリサイクルまたはラベル変更しただけの場合、バックアップ・システムは自動的にダンプのレコードを削除しません。さらに、バックアップ操作が途中で停止した場合、操作が停止する前に正常にテープに書き込まれたすべてのボリュームのレコードは、データベース内に残ります。

非常に大きいバックアップ・データベースは、バックアップ・オペレーションを、より非効率にする可能性があります。その理由は、バックアップ・サーバーが、必要なレコードを検出するのに大量のレコードをナビゲートしなければならないからです。古くなったレコードを除去するには、backup deletedump コマンドを使用します。ダンプ ID 番号によって個々のダンプを識別するか、または一定の時間枠で作成されたすべてのダンプの除去を指定します。それを行うと、すべての関連した付加ダンプのレコードを除去することになり、初期ダンプのレコードの除去を行わない限り、付加ダンプのレコードは、除去できないということに留意してください。ダンプのレコードを除去することは、対応するテープから、または削除されたダンプをその親として参照するどのダンプからも、直接的にも間接的にもデータの復元を不可能にします。つまり、復元オペレーションは、フルダンプから開始し、続いて各増分ダンプを順番に行わなければなりません。特定のダンプのレコードを除去した場合、どのデータもその後の増分ダンプから復元できません。

バックアップ・データベースを切り捨てる別の方法は、-archive 引き数を backup savedb コマンドに組み込むものです。データベースのコピーがテープまたはバックアップ・データ・ファイルに書き込まれたら、バックアップ・サーバーは、指定した日時より前のタイプ・スタンプを持つすべてのダンプ操作のダンプ・レコードを削除します。ただし、backup deletedump コマンドに -to 引き数のみを組み合わせて発行すれば、結果的に同等であり、 backup savedb コマンドのようにテープ・コーディネーターの開始が要求されないためより簡単です。 backup savedb コマンドにおける -archive 引き数に関する詳細は、 AFS Administration Reference のコマンド解説ページを参照してください。

削除したダンプ・レコードに後でアクセスする必要がある場合で、対応するテープがまだ存在するのであれば、-dbadd 引き数を backup scantape コマンドで使用して、その内容をデータベースにスキャンすることができます。テープ内容をスキャンするには を参照してください。

### ダンプ・レコードをバックアップ・データベースから削除するには

1. /usr/afs/etc/UserList ファイルにリストされているユーザーとして認証されていることを検証します。必要な場合には、bos listusers コマンドを発行します。このコマンドについては、UserList ファイルのユーザーの表示で詳しく説明しています。

          % bos listusers <machine name>

2. (オプション) 複数のレコードを削除する、または追加のコマンドを発行する場合は、backup コマンドを発行して、対話モードに入ります。以下のように対話式でプロンプトが表示されます。

          % backup

3. (オプション) backup dumpinfo コマンドを発行して、削除するレコードを決定する手助けとなる情報をバックアップ・データベースからリストします。詳細は、ダンプ・レコードの表示 を参照してください。

          backup> dumpinfo [<no. of dumps>]  [-id <dump id>]  [-verbose]

4. backup deletedump コマンドを発行して、 1 つまたは複数のダンプ・セットを削除する。

          backup> deletedump [-dumpid <dumpid>+] [-from <date time>]  \
                             [-to <date time>]

   ここで、

   dele
     は、deletedump の受け入れ可能な省略形です。

   -dumpid
     バックアップ・データベースから削除する各初期ダンプのダンプ ID を指定します。また、関連したすべての付加ダンプに対するレコードも削除されます。この引き数、または -to (そして、任意選択で、 -from) 引き数のいずれかを与えます。

   -from
     日付の範囲の先頭を指定します。指示された期間中に作成されたダンプに対するレコードは削除されます。

     -to 引き数で指示された時刻以前のすべてのレコードを省略するには、この引き数を省略します。そうしない場合は、値を以下の形式で与えます。

     mm/dd/yyyy [hh:MM]

     ここで、月 (mm)、日 (dd)、および年 (yyyy) は必須です。時と分 (hh:MM) を省略して、デフォルト値の真夜中 (00:00 時) を指示することができます。時と分を与える場合は、24 時間形式 (たとえば、値の 14:36 は、 2:36 p.m. を表す) を使用します。

     これと共に、-to 引き数を与えなければなりません。

     注: | コマンド構文中、この引き数にはプラス記号が続きますが、これは複数値を受け入れるためで (値を二重引用符や他の区切り文字で囲む必要はありません)、複数の日付を受け入れるわけではありません。単一の日付 (オプションで時間) を定義します。

   -to
     日付の範囲の末尾を指定します。この範囲の中で作成されたダンプのレコードは、バックアップ・データベースから削除されます。

     -from 引き数で指定する日付の後で作成されたすべてのレコードを削除するには、値の NOW を指定します。バックアップ・データベース内のすべてのダンプ・レコードを削除するには、値の NOW を与え、-from 引き数を省略します。そうしない場合は、-from 引き数について説明したのと同じ形式で、日付値を与えます。年 (yyyy) 範囲の有効な値は、1970 から 2037 までです。これより高い値は無効です。なぜなら、標準 UNIX 表示における最も後の (将来に近い) 表示は、2038年の初期までだからです。コマンド・インタープリターは、それ以降の日付を自動的に最大値の 2038 に削減します。

     時刻部分 (hh:MM) を省略すると、午前 0 時 59 秒 (00:00:59 時) がデフォルトとなります。同様に、backup コマンド・インタープリターは、与えられた値に自動的に 59 秒を加算します。両方のケースとも、59 秒の加算は、バックアップ・データベースおよび backup dumpinfo コマンドがダンプ作成時刻を時と分だけで表示するのを補正します。たとえば、データベースは、20:55:00 から 20:55:59 までの間に開始したダンプ・オペレーションに対して、 `20:55` のタイム・スタンプ作成をレコードします。自動的に時刻に 59 秒を加算することにより、その一分間に生成されたすべてのダンプのレコードを含みます。

     この引き数か、または-dumpid 引き数のいずれかを与えます。 -from 引き数が与えられている場合は、この引き数は必須です。

     注: | コマンド構文中、この引き数にはプラス記号が続きますが、これは複数値を受け入れるためで (値を二重引用符や他の区切り文字で囲む必要はありません)、複数の日付を受け入れるわけではありません。単一の日付 (オプションで時間) を定義します。

[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]

(C) IBM Corporation 2000. All Rights Reserved