要更改选定映射的主服务器,必须先在新 NIS 主服务器上生成该映射。由于旧的主服务器名称以关键字-值对的形式出现在现有映射中(此对由 makedbm 自动插入),因此将该映射复制到新的主服务器或使用 ypxfr 将副本传送到新的主服务器是不够的。您必须将该关键字与新主服务器名重新关联。如果映射具有 ASCII 源文件,应将此文件复制到新的主服务器。
newmaster# cd /var/yp
如果目前没有,现在请编辑 Makefile。对于此示例,请为名为 sites.byname 的映射添加一个项。
newmaster# make sites.byname
确保注释掉 Makefile 中创建 sites.byname 映射的部分,以便不再创建映射。
首先,通过使用 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。其余所有的从属服务器仍会认为旧的主服务器是当前的主服务器,并尝试从旧的主服务器中获取最新版本的映射。当客户机这样做时,它们将获得新得映射,该映射会将新的主服务器指定为当前主服务器。