第 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
协议将数据与目录服务器同步。