本部分从以下几个方面介绍如何管理现有复制拓扑:
可以编辑复制协议以更改用于绑定到使用方服务器的复制管理员标识。为了避免复制中断,应该在使用方上定义新的复制管理员条目或证书条目,然后再修改复制协议。但是,如果复制由于绑定失败而中断,复制机制将在您更正错误时自动发送所有必要的更新,此过程将在复制恢复设置的限制下完成。有关过程,请参见使用非默认复制管理员。
可以禁用、启用或删除复制协议。
禁用复制协议时,主服务器将停止向指定的使用方发送更新。到该服务器的复制将会停止,但协议中的所有设置将被保留。您可以稍后通过重新启用此协议来恢复复制。有关在复制中断后恢复复制机制的信息,请参见启用复制协议。
可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
禁用复制协议。
$ dsconf disable-repl-agmt -h host -p port suffix-DN consumer-host:consumer-port |
例如:
$ dsconf disable-repl-agmt -h host2 -p 1389 dc=example,dc=com host1:1389 |
启用复制协议将恢复与指定使用方之间的复制。但是,如果复制中断的时间已超过复制恢复设置所允许的时间,并且使用方未被其他提供方更新,则必须对该使用方进行重新初始化。复制恢复设置包括此提供方更改日志的最大大小和最大存留期,以及使用方的清除延迟(请参见执行高级使用方配置)。
如果中断时间很短并且复制可以恢复,则主服务器将在重新启用协议时自动更新使用方。
可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
启用复制协议。
$ dsconf enable-repl-agmt -h host -p port suffix-DN consumer-host:consumer-port |
例如:
$ dsconf enable-repl-agmt -h host2 -p 1389 dc=example,dc=com host1:1389 |
删除复制协议将停止到相应使用方的复制,并将删除有关此协议的所有配置信息。如果日后要恢复复制,请禁用此协议,如禁用复制协议。所述。
可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
删除复制协议。
$ dsconf delete-repl-agmt -h host -p port suffix-DN consumer-host:consumer-port |
例如:
$ dsconf delete-repl-agmt -h host2 -p 1389 dc=example,dc=com host1:1389 |
对副本进行升级或降级将更改该副本在复制拓扑中的角色。专用使用方可升级为集线器,而集线器可升级为主服务器。主服务器可降级为集线器,而集线器也可降级为专用使用方。但是,主服务器不能直接降级为使用方,同样,使用方也不能直接升级为主服务器。
多主复制机制中所允许的升级和降级功能使得拓扑非常灵活。以前由使用方副本提供服务的站点可能会增大,并且需要具有多个副本的集线器来处理负载。如果负载包括许多副本内容修改,则集线器可以变为主服务器以允许更快速的本地更改,然后可以将这些更改复制到位于其他站点的其他主服务器中。
对副本进行升级或降级时,请注意以下几点:
如果升级使用方,使用方将变为集线器。如果升级集线器,集线器将变为主服务器。无法直接将服务器从使用方升级为主服务器。必须首先将使用方升级为集线器,然后再将集线器升级为主服务器。同样,将主服务器降级为使用方时,必须先将主服务器降级为集线器,然后再将集线器降级为使用方。
将主服务器降级为集线器时,副本将变为只读副本,并被配置为将引用发送给其余的主服务器。新的集线器将保留其所有使用方,无论这些使用方是集线器还是专用使用方。
将单个主服务器降级为集线器将创建无主副本的拓扑。假定您要定义新的主服务器,目录服务器将允许您执行此操作。但是,最好将新的主服务器添加为多主服务器并允许对其进行初始化,然后再对其他主服务器进行降级。
将集线器降级为使用方之前,必须禁用或删除出入集线器的所有复制协议。如果不执行此操作,则降级操作将会失败,并出现以下错误:LDAP_OPERATIONS_ERROR “无法在启用某些协议的情况下将集线器降级为只读副本”。
如果集线器的使用方未被其他集线器或主服务器更新,将不再对它们进行更新。您应该在其余的集线器或主服务器上创建新协议,以便更新这些使用方。
将使用方升级为集线器时,将启用其更改日志,并且您可以定义与这些使用方之间的新协议。
将集线器升级为主服务器时,副本将接受修改请求,并且您可以定义与其他主服务器、集线器或专用使用方之间的新协议。
可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
使用以下任一命令对副本进行升级或降级:
$ dsconf promote-repl -h host -p port role suffix-DN |
$ dsconf demote-repl -h host -p port role suffix-DN |
其中 role 为 master、hub 或 consumer。
禁用复制后缀会将该后缀从复制拓扑中删除。根据该后缀的角色(主服务器、集线器或使用方),它将不再接受更新或发送更新。禁用提供方服务器上的后缀将删除所有复制协议,如果再次启用该副本,则必须重新创建这些协议。
可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
禁用复制后缀。
$ dsconf disable-repl -h host -p port suffix-DN |
例如:
$ dsconf disable-repl -h host2 -p 1389 dc=example,dc=com |
停止复制所使用的目录服务器以进行常规维护之后,当服务器重新处于联机状态时,必须确保立即通过复制对该服务器进行更新。对于多主环境中的主服务器,目录信息需要由多主服务器集中的其他主服务器进行更新。在其他情况下,当集线器服务器或专用使用方服务器进入脱机状态以进行维护之后,如果这些服务器重新处于联机状态,则需要通过主服务器对其进行更新。
本部分介绍复制重试算法,并说明如何在不等待下次重试的情况下强制执行复制更新。
只有在已经设置复制并且已经初始化使用方时,才能使用本部分介绍的过程。
如果源副本未成功复制到目标,它将定期以递增的时间间隔进行重试。重试时间间隔取决于错误类型。
请注意,即使您已将复制协议配置为始终保持源副本和目标副本同步,但这还不足以立即更新脱机时间已超过五分钟的副本。
如果复制已停止,您可以对目标后缀强制执行复制更新。
无法使用 DSCC 执行此任务。请使用命令行,如以下过程所述。
在源服务器上,重新启动对目标服务器的复制更新。
$ dsconf update-repl-dest-now -h host -p port suffix-DN destination-host:destination-port |
例如:
$ dsconf update-repl-dest-now -h host2 -p 1389 dc=example,dc=com host1:1389 |
在某些情况下,可能需要将主副本移到其他计算机上。如果不需要使用相同的主机名和端口号,请使用 dsconf change-repl-dest 更改远程副本的主机名和端口号。有关详细信息,请参见更改复制协议目标。
如果需要保留相同的主机名和端口号,则必须从现有拓扑中删除主服务器,然后将主服务器重新添加到拓扑中。
使用 DSCC 执行这些任务则要简便得多,因为 DSCC 负责处理所有受影响的复制协议。但是,如果使用 DSCC,则不能指定主服务器最初在拓扑中具有的相同副本 ID。要使用相同的副本 ID,必须使用命令行来执行这些任务,如下所示。
确保已复制了主服务器中的所有更改。
如果可以,请使用二进制副本来备份主服务器,以免丢失任何更改。
将主副本降级为集线器副本。
请参见对副本进行升级或降级。
等待集线器开始向其他服务器进行复制。
当集线器打开与拓扑中其他服务器之间的复制会话时,它将保留在 RUV 中,而不会在引用中再次使用。
停止集线器。
从拓扑中删除集线器。
请参见禁用复制后缀。
使用相同副本 ID 添加主副本。
请参见在主副本上启用复制。
重新创建从该主服务器到拓扑中其他副本的复制协议。
初始化新的主服务器。