15.12. 使用复制管理已删除条目

删除条目时,它不会立即从数据库中删除。相反,它将转换为 tombstone 条目,即复制中服务器使用的一系列备份条目来解决特定的冲突(孤立条目)。tombstone 条目是带有修改后的 DN 的原始条目,添加了一个 nsTombstone 对象类,但属性会从索引中删除。
tombstones 不会无限期保留。清除作业会定期运行,间隔为 nsDS5ReplicaTombstonePurgeInterval 属性;清除会删除旧的 tombstone 条目。在给定时间内保存 tombstone 条目(在 nsDS5ReplicaPurgeDelay 属性中设置);当 tombstone 条目早于延迟周期后,它会在下一次清除作业处获取。
清除延迟和清除间隔都在 cn=replica,cn=复制后缀,cn= mapping 树,cn=config 配置条目的 replica 条目上设置。为复制定义清除设置时有两个注意事项:
  • 清除操作非常耗时,特别是当服务器处理大量删除操作时。不要设置清除间隔太低,或者可能会消耗太多的服务器资源并影响性能。
  • 供应商使用更改信息(包括 tombstone 条目)在初始化后进行主复制。应有足够的更改来有效地重新初始化消费者,并解决复制冲突。不要设置清除延迟(tombstone 条目的年龄)太低,或者可能会丢失解决复制冲突所需的信息。
    设置清除延迟,使其比复制拓扑中复制的最大调度稍长。例如,如果复制间隔最多为 24 小时,则大约 25 小时保留 tombstone 条目。这样可确保有足够的更改历史记录来初始化消费者,并防止不同供应商中存储的数据分离。
当您使用 dsconf replication set 命令时,--repl-tombstone-purge-interval=seconds选项会 设置 nsDS5ReplicaTombstonePurgeInterval 属性和 --repl-purge-delay= 选项,s nsDS5ReplicaPurgeDelay 属性。
例如,要将 tombstone 清除间隔设置为 43200 (12 小时),副本清除延迟为 90000 (25 小时):
# dsconf -D "cn=Directory Manager" ldap://supplier.example.com replication set \
     --repl-tombstone-purge-interval=43200 --repl-purge-delay=90000
注意
要立即清理 tombstone 条目和状态信息,请为 nsDS5ReplicaTombstonePurgeIntervalnsDS5ReplicaPurgeDelay 属性设置一个非常小的值。两个属性都有设置的值(以秒为单位),因此几乎可以立即启动清除操作。
警告
始终使用清除间隔从数据库清理 tombstone 条目。永不手动删除 tombstone 条目。