Oracle® Solaris 11.2 ディレクトリサービスとネームサービスでの作業: DNS と NIS

印刷ビューの終了

更新: 2014 年 7 月
 
 

マップのマスターサーバーの変更

選択したマップのマスターサーバーを変更するには、まず新しい NIS マスター上にマップを構築する必要があります。古いマスターサーバー名は既存のマップにキーと値のペアとして発生するので (このペアは makedbm で自動的に挿入される)、ypxfr でマップを新しいマスターサーバーにコピーしたり、コピーを新しいマスターサーバーに転送するだけでは不十分です。鍵と新しいマスターサーバー名との対応づけをし直す必要があります。マップに ASCII ソースファイルが存在する場合は、このファイルを新しいマスターサーバーにコピーします。

マップのマスターサーバーを変更する方法

  1. NIS マスターサーバー上の管理者になります。

    詳細は、Oracle Solaris 11.2 でのユーザーとプロセスのセキュリティー保護 の割り当てられている管理権利の使用を参照してください。

  2. ディレクトリを変更します。
    newmaster# cd /var/yp
  3. 作成するマップを指定する前に、/var/yp/Makefile に新しいマップのエントリが存在する必要があります。

    そうでない場合は、ここで Makefile を編集します。この例では、sites.byname という名前のマップのエントリを追加します。

  4. マップを更新または再作成するには、次のように入力します。
    newmaster# make sites.byname
  5. 古いマスターが NIS サーバーとして残っている場合は、古いマスターにリモートログイン (ssh) して /var/yp/Makefile を編集します。

    sites.byname マップを作成した Makefile のセクションをコメントアウトして、そのマップがもうそこで作成されないようにしてください。

  6. sites.bynamendbm ファイルとしてのみ存在する場合は、新しいマスターサーバー上で作成し直します。

    まず、ypcat コマンドを使用して、sites.byname ファイルのコピーを分解します。次に、makedbm を使用して、分解されたバージョンを実行します。

    newmaster# cd /var/yp
    newmaster# ypcat sites.byname | makedbm domain/sites.byname 

    新しいマスターサーバー上でマップが作成されたら、そのコピーをほかのスレーブサーバーに送信する必要があります。yppush を使用しないでください。これを使用すると、ほかのスレーブは新しいマスターではなく、古いマスターから新しいコピーを取得しようとします。このような動作を回避するには、一般にマップのコピーを新しいマスターサーバーから古いマスターサーバーに送り返すという方法が使用されます。これを行うには、古いマスターサーバーでスーパーユーザーになるか、同等の役割になり、次のように入力します。

    oldmaster# /usr/lib/netsvc/yp/ypxfr -h newmaster sites.byname

    これで、yppush を使用できます。スレーブサーバーは古いマスターサーバーを現行のマスターサーバーとして認識しているので、マップの現行バージョンを古いマスターサーバーから取得しようとします。クライアントがこの処理を行うときは、新しいマスターサーバーが現行のマスターサーバーとして指定されている新しいマップを取得します。

    この方法が失敗した場合は、各 NIS サーバーに root としてログインし、上に示すように ypxfr コマンドを実行できます。