对于在提供方服务器和使用方服务器之间复制的后缀,在恢复之前需要注意一些特殊事项。请尽可能通过复制机制(而不是通过从备份恢复后缀)来更新后缀。
恢复提供方或集线器实例时,服务器配置必须与创建备份时的配置相同。要确保这一点,请在恢复目录服务器数据之前先恢复 dse.ldif 文件。请参见恢复 dse.ldif 配置文件。
本部分介绍如何、何时恢复副本,以及如何确保副本在恢复后与其他副本同步。要初始化副本,请参见初始化副本。
如果您有大型的复制后缀并要添加许多条目,同时要确保正确添加复制更新,请参见逐渐向大型复制后缀添加大量条目。
本部分包含与以下内容有关的信息:
作为单主提供方的后缀包含整个复制拓扑的授权数据。因此,恢复此后缀等同于重新初始化整个拓扑中的所有数据。只有在使用要恢复的备份内容重新初始化所有数据时,才应恢复单主提供方。
如果单主数据由于错误而无法恢复,请考虑使用某个使用方上的数据,因为它可能包含比备份还新的更新。在这种情况下,您需要将使用方副本中的数据导出到 LDIF 文件,然后从该 LDIF 文件重新初始化主服务器。
无论您在主副本上恢复备份还是导入 LDIF 文件,都必须重新初始化从此副本接收更新的所有集线器和使用方副本。在提供方服务器的日志文件中将记录一条消息,以提醒您必须对使用方进行重新初始化。
在多主复制中,其他每个主服务器都包含复制数据的授权副本。您无法恢复旧的备份,因为该备份对于当前的副本内容可能已经过时。如有可能,应允许复制机制使用其他主服务器的内容来更新主服务器。
如果无法执行此操作,请使用以下任一方法恢复多主副本:
最简单的方法不是恢复备份,而是从其他某个主服务器重新初始化预期的主服务器。这可以确保将最新数据发送到预期的主服务器,并且该数据可用于复制。请参见从 LDIF 进行副本初始化。
对于具有数百万条目的副本,较快的做法是创建二进制副本,以恢复其他某个主服务器上的较新备份。请参见使用二制进副本初始化复制后缀。
如果主服务器备份的存留期不长于其他任何主服务器上更改日志内容的最长存留期,则可使用该备份恢复此主服务器。有关更改日志存留期的描述,请参见修改主副本上的更改日志设置。恢复旧的备份之后,其他主服务器将使用其更改日志中自保存该备份以来进行的所有修改来更新此主服务器。
无论您以何种方式恢复或重新初始化,主副本在初始化后都仍然保持只读模式。此行为可使副本与其他主服务器进行同步,以便您在同步后允许执行写入操作,如在多主方案中恢复主服务器所述。
在已恢复或重新初始化的主服务器上允许执行写入操作之前一致所有副本的好处在于,所有集线器或使用方服务器都不需要重新初始化。
本部分仅适用于复制机制无法自动更新集线器副本的情况。数据库文件损坏或复制中断时间过长都属于这种情况。在这些情况下,您需要使用以下任一方法恢复或重新初始化集线器副本:
最简单的方法不是恢复备份,而是从某个主副本重新初始化集线器。这可以确保将最新数据发送到集线器,并且该数据可用于复制。请参见初始化后缀。
对于具有数百万条目的副本,较快的做法是创建二进制副本,以恢复来自其他集线器复制后缀的较新备份。请参见使用二制进副本初始化复制后缀。如果没有需要复制的其他集线器副本,请按照上一条的描述重新初始化集线器,或者按照下一条的描述恢复集线器(如有可能)。
如果集线器备份的存留期不长于其他任何提供方(集线器或主副本)上更改日志内容的最长存留期,则可使用该备份恢复此集线器。恢复集线器之后,提供方将使用其更改日志中自保存该备份以来进行的所有修改来更新此集线器。
无论您以何种方式恢复或重新初始化集线器副本,接下来都必须重新初始化此集线器的所有使用方,包括所有其他级别的集线器。
本部分仅适用于复制机制无法自动更新专用使用方副本的情况。数据库文件损坏或复制中断时间过长都属于这种情况。在这些情况下,您需要使用以下任一方法恢复或重新初始化使用方:
最简单的方法不是恢复备份,而是从某个提供方(主服务器或集线器副本)重新初始化使用方。这可以确保将最新数据发送到使用方,并且该数据可用于复制。请参见从 LDIF 进行副本初始化。
对于具有数百万条目的副本,较快的做法是创建二进制副本,以恢复来自其他使用方复制后缀的较新备份。请参见使用二制进副本初始化复制后缀。如果没有需要复制的其他使用方,请按照上一条的描述重新初始化副本,或者按照下一条的描述恢复副本(如有可能)。
如果使用方备份的存留期不长于其他任何提供方(集线器或主副本)上更改日志内容的最长存留期,则可使用该备份恢复此使用方。恢复使用方之后,提供方将使用其更改日志中自保存该备份以来进行的所有修改来更新此使用方。
使用多主复制时,其他主服务器可能会在给定主服务器恢复期间处理更改操作。因此,完成恢复操作之后,新的主服务器还必须接收恢复数据中未包含的较新更新。由于恢复主服务器可能需要大量时间,因此挂起的更新数也可能十分庞大。
为了一致这些挂起的更新,新恢复的主服务器将自动设置为只读模式,以便在恢复后执行客户端操作。此情况仅在通过以下方式恢复主服务器时适用:使用命令行从 LDIF 文件导入数据,或者使用备份执行二进制复制。
因此,在完成恢复操作之后,多主配置中的主服务器将处理复制更新并允许执行读取操作,但是对于来自客户端的所有写入操作将返回引用。
要在允许更新前验证新的主服务器是否与其他主服务器完全同步,请在已初始化的主服务器上手动启用更新。
由于主副本会因为上述新行为而发送引用,因此等待执行写入操作的客户端可能会达到配置的跳数限制。您可能需要提高客户端的跳数限制配置,以使其能够访问可用的主服务器。如果已初始化或重新初始化所有主副本,则所有写入操作都会失败,因为所有副本都不会接受客户端更新。
在任何情况下,都应密切监视已初始化的主服务器,并适当地设置引用属性,以尽可能提高服务器的响应能力。
可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。
可以在脚本中使用以下命令,以便自动执行多主副本的初始化过程:
使用 insync 工具确保副本已与所有其他主服务器一致。
如果所有服务器上修改之间的延迟为零,或副本从未有任何需要复制的更改(延迟为 -1),则表明副本处于同步状态。有关详细信息,请参见 insync(1) 手册页。
开始接受更新。
$ dsconf set-suffix-prop -h host -p port suffix-DN repl-accept-client-update-enabled:on |
此命令自动将服务器设置为读写模式。