系统管理指南:名称和目录服务(DNS、NIS 和 LDAP)

更改映射的主服务器

要更改所选映射的主服务器,必须先在新 NIS 主服务器上生成该映射。由于旧的主服务器名称以关键字-值对的形式出现在现有映射中(此对由 makedbm 自动插入),因此将该映射复制到新的主服务器或使用 ypxfr 将副本传送到新的主服务器是不够的。必须将该关键字与新主服务器名重新关联。如果映射具有 ASCII 源文件,则应将此文件复制到新的主服务器。

如何更改映射的主服务器
  1. 在新的主服务器上,成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见System Administration Guide: Security Services中的“Using Role-Based Access Control (Tasks)”

  2. 更改目录。


    newmaster# cd /var/yp
    
  3. Makefile 必须具有新映射的项,才能指定要进行的映射。否则,请使用名为 sites.byname 的映射立即编辑 Makefile

  4. 要更新映射或重新进行映射,请键入以下命令。


    newmaster# make sites.byname
    
  5. 如果旧的主服务器仍为 NIS 服务器,请远程登录 (rlogin) 到旧的主服务器并编辑 Makefile。确保注释掉 Makefile 中创建 sites.byname 的部分,使其不再被创建。

  6. 如果 sites.byname 只作为 ndbm 文件存在,请在新的主服务器上重新创建它,方法是从任何 NIS 服务器上反汇编副本,然后通过 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 服务器并执行上面所示的 ypxfr 命令。