NIS+ データセットに変更を加えると、その変更は、当該 NIS+ ドメイン (またはサブドメイン) のマスターサーバーのメモリに格納されます。変更の記録はマスターサーバーのトランザクションログ (/var/nis/data/trans.log) にも残されます。
通常、NIS+ データセットに変更が加えられると、その 120 秒 (2 分) 後に、マスターサーバーから当該ドメインの複製サーバーにその変更の内容が転送されます。この転送プロセスのことを ping といいます。マスターサーバーから複製サーバーへの「ping」が実行されると、通知された変更内容に従って複製サーバーのデータセットが更新されます。これにより、変更された NIS+ データがマスターサーバーと複製サーバーの両方のメモリーに格納されることになります。
自動 ping プロセスが不調で複製サーバーのデータセットが更新されないこともあります。その場合は、「ping を強制的に実行する」の説明に従って ping を強制的に実行する必要があります。複製サーバーが最新の NIS+ データどおりに正しく更新されているかどうか不安な場合は、「最新更新時間を表示する」の説明に従って複製サーバーが最後に更新されたのはいつであるかを確認してください。
NIS+ データセットに対する変更は、サーバーのメモリーに格納され、トランザクションログに記録されたのち、ディスク上の NIS+ テーブルに書き込まれなければなりません。この NIS+ テーブルを更新することを「チェックポイントを実行する」といいます。
チェックポイントの実行は自動的には行われません。「ディレクトリにチェックポイントを実行する」の説明に従ってチェックポイントコマンドを実行する必要があります。
複製サーバーが最後に ping されたのはいつであるかを表示する (詳細は、「最新更新時間を表示する」を参照)。
自動 ping サイクルが不調に終わった場合、マスターサーバーから複製サーバーへの ping を強制的に実行する (詳細は、「ping を強制的に実行する」を参照)。
サーバーにチェックポイントを実行する (詳細は、「ディレクトリにチェックポイントを実行する」を参照)。
-u オプションを指定して nisping コマンドを実行すると、ローカルドメインのマスターサーバーと複製サーバーが更新された時間が表示されます。
/usr/lib/nis/nisping -u [domain]
他のドメインで最後に更新が行われた時間を表示するには、コマンド行にそのドメイン名を指定します (-u オプションを指定して nisping コマンドを実行した場合、複製サーバーに対する ping は一切実行されない点に注意)。
たとえば、ローカルドメイン doc.com. で複製サーバーが最後に更新された時間を表示するには、次のように入力します。
rootmaster# /usr/lib/nisping -u Last updates for directory doc.com.: Master server is rootmaster.doc.com. Last update occurred at Wed Nov 25 10:53:37 1992 Replica server is rootreplica1.doc.com. Last update seen was Wed Nov 25 10:53:37 1992
-u オプションを指定して nisping コマンドを実行した結果、複製サーバーが正しく更新されていないことがわかったとします。そのような場合は、nisping コマンドを実行することにより、マスターサーバーからドメイン内のすべての複製サーバーに対して、または特定の複製サーバーに対して、ping を強制的に実行できます。
すべての複製サーバーを ping の対象とする場合、次に示すように、nisping コマンドをオプションなしで実行します。
/usr/lib/nis/nisping
これにより、マスターサーバーからドメイン内のすべての複製サーバーへの ping が強制的に実行されます。ローカルドメイン doc.com. のすべての複製サーバーに対する ping を強制的に実行するには、次のように入力します。
rootmaster# /usr/lib/nis/nisping Pinging replicas serving directory doc.com.: Master server is rootmaster.doc.com. Last update occurred at Wed Nov 25 10:53:37 1992 Replica server is rootreplica1.doc.com. Last update seen was Wed Nov 18 11:24:32 1992 Pinging ... rootreplica1.doc.com.
ローカルドメインでないドメイン内のすべての複製サーバーに対し ping を実行するには、ドメイン名を指定します。
/usr/lib/nis/nisping domainname
特定の 1 台のホスト上のすべてのディレクトリにあるすべてのテーブルに対し ping を実行することもできます。この場合、-a オプションを使用します。
/usr/lib/nis/nisping -a hostname
スワップの頻度やディスク領域との関連でトランザクションログが大きくなりすぎる場合、各ドメインおよびサブドメインに対しては、少なくとも 24 時間に 1 回はチェックポイントを実行する必要があります。
大きなドメイン、または大きなトランザクションログを持つドメインに対してチェックポイントを実行すると、終了するまでにかなりの時間がかかり、その間 NIS+ サーバーが拘束され、NIS+ サービスの速度が低下します。サーバーは、チェックポイントを実行している間もサービス要求に応答しますが、更新できません。できるだけ、システムが混んでいない時間帯を選んでチェックポイントを実行することをお勧めします。チェックポイントの実行スケジュールは cron ファイルで調整できます。
チェックポイントを実行するには、当該ドメインのマスターサーバー上で nisping -C コマンドを実行します。先にすべての複製サーバーに対して ping を実行してから、チェックポイントを実行することをお勧めします。その場合には、複製サーバーに対して常に最新のデータでチェックポイントを実行できます。
特定のディレクトリに対してチェックポイントを実行するには、次に示すように、-C オプションを指定して nisping コマンドを実行します。
rootmaster# /usr/lib/nis/nisping rootmaster# /usr/lib/nis/nisping -C org_dir
ローカルドメイン内のすべてのディレクトリに対してチェックポイントを実行するには、次に示すように、-C -a オプションを指定して nisping コマンドを実行します。
rootmaster# /usr/lib/nis/nisping rootmaster# /usr/lib/nis/nisping -C -a
サーバーによってそのトランザクションログの情報が NIS+ テーブルに転送されると、ログファイル内のトランザクションは、ディスク領域の節約のため消去されます。
doc.com. ドメイン内のすべてのディレクトリに対してチェックポイントを実行するには、次のように入力します。
rootmaster# /usr/lib/nis/nisping -C -a Checkpointing replicas serving directory doc.com. : Master server is rootmaster.doc.com. Last update occurred at Wed May 25 10:53:37 1995 Master server is rootmaster.doc.com. checkpoint has been scheduled with rootmaster.doc.com. Replica server is rootreplica1.doc.com. Last update seen was Wed May 25 10:53:37 1995 Replica server is rootreplica1.doc.com. checkpoint has been scheduled with rootmaster.doc.com.