15.21. 使用 Retro Changelog 插件

Retro Changelog 插件将目录服务器配置为维护与 Directory Server 4.x 中实施的 changelog 兼容的更改日志。
注意
如果您需要为依赖于 Directory Server 4.x 风格的目录客户端维护更改日志,则仅启用 Retro Changelog 插件。
要使用 Retro Changelog 插件,Directory 服务器实例必须配置为单层次副本。
当目录服务器配置为维护重新引入日志时,此更改日志存储在特殊后缀 cn=changelog 下的独立数据库中。
retro changelog 由单个条目级别组成。changelog 中的每个条目都有对象类 changeLogEntry。有关 changelog 条目中可能的属性列表,请参阅 Red Hat Directory Server 配置、命令行和文件参考中的 Changelog 属性部分。

15.21.1. 启用 Retro Changelog 插件

这部分论述了如何启用 Retro Changelog 插件。
警告
不要在 retro changelog 后端中启用复制。在重新更改日志中启用复制可能会导致:
  • 生成大量复制流量,一半是重复的更新。
  • 使用与 retro changelog 修剪相关的删除操作创建错误。
  • 复制性能不佳,在供应商上没有协调更新。

15.21.1.1. 使用命令行启用 Retro Changelog 插件

使用命令行启用 Retro Changelog 插件:
  1. 使用 dsconf 工具启用插件:
    # dsconf -D "cn=Directory Manager" ldap://server.example.com plugin retro-changelog enable
  2. 重启实例:
    # dsctl instance_name restart

15.21.1.2. 使用 Web 控制台启用 Retro Changelog 插件

使用 Web 控制台启用 Retro Changelog 插件:
  1. 在 web 控制台中打开 Directory Server 用户界面。请参阅 第 1.4 节 “使用 Web 控制台登录到目录服务器”
  2. 选择实例。
  3. 选择 Plugins 菜单。
  4. 在左侧的列表中选择 Retro Changelog 插件。
  5. 将状态更改为 On
  6. 单击 Save Config

15.21.2. 修剪 Retro Changelog

如果您降低 nsslapd-changelogmaxage 参数和下一次修剪间隔中设置的记录最长期限,则会在 nsslapd-changelog-trim -interval 中设置,则会自动缩小重新更改日志 的大小。
例如,要将 retro changelog 中记录的最大年龄设置为 2 天:
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin retro-changelog set --max-age="2d"

15.21.3. 搜索和修改 Retro Changelog

changelog 支持搜索操作,并针对包含表单过滤器(&amp ; (changeNumber>=X) (changeNumber<=Y))的搜索 进行了优化。
作为常规规则,请不要对 retro changelog 条目执行添加或修改操作,但可以删除条目来修剪 changelog 的大小。仅修改 retro changelog 条目,以修改默认的访问控制策略。

15.21.4. 重新引入更改日志和访问控制策略

当目录服务器创建重新引入日志时,不会创建访问控制指令(ACI),并且只有 Directory Manager 应用访问控制规则(读取、搜索、比较、写和删除)。
要更改应用到 retro changelog 的默认访问控制策略,请修改 cn=changelog 条目的 aci 属性。例如,如果要向所有授权用户 授予读取搜索 和比较 权限,请将以下 ACI 添加到 cn=changelog
dn: cn=changelog
aci: (targetattr="changeNumber || objectClass")(targetfilter="(objectClass=changelogentry)")
 (version 3.0; acl "Enable authenticated users to read the retro changelog"; allow (read, search, compare)
 (userdn="ldap:///all");)
警告
修改 ci 属性时,请不要向匿名用户(userdn=anyone)授予读取权限,因为更改日志条目可以包含敏感信息,如密码。您必须只允许经过身份验证的用户和用户(userdn=all)访问此信息。