nsrck プログラムは、クライアントのセーブセットの Backup オンラインインデックスの整合性をチェックする場合に使用します。
nsrck を使用して、Backup クライアントファイルインデックスの整合性が検査されます。通常、nsrck プログラムは、nsrindexd の起動の一部として、nsrindexd プログラムによって自動的に開始されます。.nsrck ファイルはプログラムの実行時にロックされるので、nsrck のインスタンスだけがサーバーで動作します。
nsrck プログラムは、その実行中であればいつでも再起動できます。そのため、システムのクラッシュ時やリソースの消耗時にも、データを失うことなく動作します。
インデックスの整合性検査は、4 つのフェーズを経て完了します。
フェーズ 0 では、クライアントのインデックスをさらに調査すべきかどうかを判別します。このフェーズでは、インデックスの内部状態が検査され、その状態に整合性がある場合は、検査はこれ以上続行されません。また、フェーズ 0 では、適切でないインデックス名 (たとえば、有効なネットワークアドレスに名前が対応していないインデックスなど) もレポートされます。
フェーズ 1 では、データベースレコードファイル db 内で検出されたあらゆるエラーが処理され、さらに必要に応じて、データベースの b- ツリーインデックスが再構築されます。
-X オプションが指定されている場合は、nsrck によりフェーズ 2 が呼び出され、クライアントファイルインデックスとメディアデータベースが相互に検査されます。既存のブラウズ可能なセーブセットエントリがないレコードは、削除されます。
フェーズ 2 で解放されたスペースが生じたことにより、あるいは前回のプログラムの実行によりフラグが付けられたことによりデータベースを圧縮する必要がある場合は、フェーズ 3 でそのインデックスが圧縮されます。
インデックスを圧縮するには、2 つ、または 3 つの手順で処理を行います。まず、データベースのレコードが一時データベース db.CMP にコピーされます。この処理が完了すると、フラグファイル db.SVC が作成され、古い、圧縮されていないデータベースは削除されます。さらに、圧縮されたデータベースは、名前が db に変更されます。最後に、db.SVC ファイルが削除されます。db ファイルが格納されているファイルシステムに一時データベースが入るだけのスペースがない場合は、nsrck は、他の書き込み可能なファイルシステムに一時ファイルを作成します。次に、db.PTR という名前のファイルにこの一時ファイルへのポインタを格納します。この場合、データを追加コピーする必要があります。それは、データが適切な場所にコピーされる前に、圧縮されていないデータベースをまず最初に削除する必要があるからです。これらの手順がすべて完了した後で、db.PTR ファイルが削除されます。
nsrck プログラムに使用する形式とオプションは、次のとおりです。
nsrck [-qM] | [-T tempdir] [-X [-x percent] | -C | -F | -m] [clientname...] |
-C オプションを使用すると、指定したクライアントで、またクライアントを指定していない場合はすべてのクライアントで、強制的にインデックスを圧縮できます。データベース内にエラーが検出された場合にだけ、他のフェーズのチェックが行われます。
-F オプションを使用すると、指定したクライアント名について強制的に検査を実行します。名前を指定していない場合は、強制検査は、すべてのクライアントインデックスに対して実行されます。このオプションでは、インデックス検査のすべてのフェーズが強制的に実行されます。下位互換の場合は、-F オプションにより、インデックスの圧縮を指定したことになり、またこのオプションを使用して、強制的にインデックスを圧縮できます。このオプションは、通常、ブラウズポリシーが短縮された時にのみ必要です (たとえば、ブラウズポリシーが 1 年から 6 か月に変更された場合)。ポリシーリソースについては、「「NSR policy」」を参照してください。
-M オプションを使用すると、nsrck プログラムをマスターモードで使用できます (手動処理の場合は、お勧めできません)。このオプションは、nsrck を呼び出した nsrd または他の Backup デーモンを nsrck に通知し、さらに、nsrd が要求するその他の処理を実行すると同時に、タイムスタンプを付けてメッセージを記録します。
-m オプションを使用すると、クライアントのオンラインファイルインデックスを検査する代わりに、強制的にメディアデータベースの b- ツリーインデックスを検査して、作成し直します。
-q オプションを使用すると、nsrck をクワイエットモードで実行できます。クワイエットモードでは、報告メッセージは表示されません。
db ファイルが格納されているファイルシステムに十分な空き容量がない場合に、-T オプションを使用して、圧縮中に一時データベースを保持するために nsrck が使用するディレクトリを指定できます。このオプションが指定されていて、指定された一時ディレクトリ内に十分なスペースがない場合は、nsrck プログラムは失敗します。db ファイルが格納されているファイルシステムに十分な容量がある場合は、この引数は無視されます。
-X オプションを使用すると、(フェーズ 0 でエラーが発生しない限り) インデックスデータベースを検査する代わりに、インデックスレコード内の ssid と、メディアデータベース内で検出されたセーブセットとの相互検査を行うように nsrck に指示できます。メディアセーブセットと対応していないレコードは破棄されます。ここに特定のクライアントを指定すると、相互検査は、そのクライアントインデックスに限定して行われます。
-x オプションを使用すると、データベースの UNIX ファイルの利用率が指定した割合よりも低い場合は、相互検査の終了後にデータベースを圧縮できます。使用されていないページは、ファイルシステムに戻されます。-x オプションのデフォルトの利用率は、30 % です。