只允许 NIS+ 主服务器将数据写入 LDAP 中。NIS+ 副本服务器可以从 NIS+ 主服务器获取更新(此更新可能是从 LDAP 获取的,也可能不是),也可以直接从 LDAP 服务器读取数据。也可能会存在这两种情况的组合。因此,可通过两种主要方法来安排 NIS+ 复制。
保持 NIS+ 副本服务器不变,并使其从 NIS+ 主服务器获取数据更新。
这种安排的优点在于配置简单(只有 NIS+ 主服务器需要与 LDAP 服务器建立连接),并且还可保持以前的复制关系(主服务器先于副本服务器获知新数据)。当 NIS+ 始终是名称服务数据的授权源时,这种安排可能是最方便的解决方案。但是,此方案也会延长 LDAP 与 NIS+ 副本服务器之间的路径。
使 NIS+ 副本服务器直接从 LDAP 而非 NIS+ 主服务器获取其数据。
在这种情况下,副本服务器可能已在 NIS+ 主服务器之前或之后更新了数据,具体取决于查找通信流量和从 LDAP 派生的数据的 TTL。这种安排更为复杂,但是,如果 LDAP 是授权的名称服务系统信息库,而且很少或不对 NIS+ 数据进行直接更新,则这种安排非常方便。
如果 NIS+ 副本服务器是从 LDAP 为特定 NIS+ 目录中至少一个对象获取数据,则 nisping(1M) 列显的更新时间标记不必指示 NIS+ 主服务器和副本服务器之间数据的一致程度。例如,假定 NIS+ 目录 dir1 中包含 table1 和 table2 表。如果副本服务器是从 NIS+ 主服务器获取 table1 和 table2 的数据,则可能会看到类似以下的输出:
# nisping dir1 |
Master server is "master.some.domain." Last update occurred at Mon Aug 5 22:11:09 2002 Replica server is "replica.some.domain." Last Update seen was Mon Aug 5 22:11:09 2002 |
以上输出表明主服务器和副本服务器具有完全相同的数据。但是,如果副本服务器是从 LDAP 获取 table1 和 table2 中任意一个表的数据或同时获取二者的数据,则输出中仅显示副本服务器已从主服务器接收了 NIS_PING,并且更新了其重新同步时间标记以进行内务处理。如果符合以下任一条件,从 LDAP 映射的一个或多个表中的数据可能会与 NIS+ 主服务器中的数据不同:
LDAP 数据与 NIS+ 主服务器中的数据不同。
副本服务器的高速缓存(NIS+ 数据库的本地版本)中存在尚未过期但与 LDAP 不同步的数据。
如果您不接受这种类型的数据不一致,请允许所有的 NIS+ 副本服务器仅从 NIS+ 主服务器获取其数据。在已经配置 NIS+ 主服务器,使其从 LDAP 获取数据之后,就无需对副本服务器进行修改了。