第 17 章 使用 SyncRepl 协议设置内容同步
使用
内容同步 插件,目录服务器会根据 RFC 4533 支持 SyncRepl 协议。此协议可让 LDAP 服务器和客户端使用 Red Hat Directory Server 作为源,将其本地数据库与目录服务器的更改内容同步。
使用
SyncRepl 协议:
- 在目录服务器中启用
内容同步插件,并选择性地创建新用户,客户端将用于绑定到目录服务器。帐户必须具有读取目录中内容的权限。 - 配置客户端。例如,将子树的搜索基础设置为 sync。详情请查看您的客户端文档。
17.1. 使用命令行配置内容同步 插件 复制链接链接已复制到粘贴板!
复制链接链接已复制到粘贴板!
使用命令行配置
内容同步 插件:
内容同步插件需要Retro Changelog插件来记录nsuniqueid属性:- 要验证 retro changelog 是否已启用,请输入:
# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin retro-changelog show ... nsslapd-pluginEnabled: off - 添加
nsuniqueid属性来重新引入 changelog 插件配置:# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin retro-changelog set --attribute nsuniqueid:targetUniqueId - 另外,还可应用以下建议来提高性能:
- 为 retro 更改日志中的条目设置最大有效期。例如,要设置 2 天(2d):
# ldapmodify -D "cn=Directory Manager" -W -p 389 -h server.example.com -x dn: cn=changelog5,cn=config changetype: modify replace: nsslapd-changelogmaxage nsslapd-changelogmaxage: 2d - 如果您知道哪个后端或子树客户端访问来同步数据,请限制
Retro Changelog插件的范围。例如,要排除cn=demo,dc=example,dc=com子树,请输入:# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin retro-changelog set --exclude-suffix "cn=demo,dc=example,dc=com"
- 启用
内容同步插件:# dsconf -D "cn=Directory Manager" ldap://server.example.com plugin set --enabled on "Content Synchronization" - 使用默认值,Directory 服务器会在
oid=1.3.6.1.4.1.4203.1.9.1.1,cn=features,cn=config条目中创建访问控制指令(ACI),使所有用户能够使用SyncRepl协议:aci: (targetattr != "aci")(version 3.0; acl "Sync Request Control"; allow( read, search ) userdn = "ldap:///all";)(可选)更新 ACI 以使用SyncRepl控制来限制。有关 ACI 的详情,请参考 第 18.11 节 “定义绑定规则”。 - 重启 Directory 服务器:
# dsctl instance_name restart
客户端现在可以使用
SyncRepl 协议将数据与目录服务器同步。