第 16 章 在部分复制内管理属性
部分复制设置目录服务器不会从供应商复制到消费者(或其他供应商)的属性。因此,目录服务器可以在不复制所有包含或所有信息的情况下复制数据库,从而提高了服务器性能和安全性。
在以下情况下使用部分复制:
- 您想要限制通过慢速网络发送的大量属性。
-
您要减少目录服务器运行修复任务的次数,如
memberOf
计算。 - 如果消费者服务器放置在不可信网络中,则您要从复制中排除敏感属性。
每个复制协议启用并配置部分复制,而不是每个条目配置。从复制中排除属性会平等地应用到复制协议范围内的所有条目。您可以为增量更新(nsDS5ReplicatedAttributeList
)和整个更新(nsDS5ReplicatedAttributeListTotal
)设置不同的属性,并防止部分复制期间出现空更新(nsds5ReplicaStripAttrs
)。
部分复制参数是复制协议的一部分,您可以在 web 控制台的复制协议向导中创建复制协议时使用命令行配置这些参数。
16.1. 使用命令行从总数和增量更新中排除属性 复制链接链接已复制到粘贴板!
在基本场景中,部分复制不包括在总和增量更新中排除相同的属性列表。但是,您可以使用以下配置属性将 Directory 服务器配置为从增量和总更新中排除不同的属性:
nsDS5ReplicatedAttributeList
-
这是主要部分复制属性。当您只设置
nsDS5ReplicatedAttributeList
时,Directory 服务器会从增量和总更新中排除指定的属性。 nsDS5ReplicatedAttributeListTotal
- 这个部分复制属性指定 Directory 服务器必须只从总(初始)更新中排除的属性列表。
例如,每次将 memberOf
属性添加到条目时,Directory 服务器都会运行一个 memberOf 修复任务来解析组成员资格。如果 Directory 服务器每次发生复制时都运行任务,这可能会导致服务器上的开销。由于只针对新添加到复制的数据库或长时间离线的数据库进行总更新,因此请在完全更新是一个可接受的选项后运行 memberOf 修复任务。在这种情况下,nsDS5ReplicatedAttributeList
属性包含 memberOf
,并从增量更新中排除它,但 nsDS5ReplicatedAttributeListTotal
不包含 memberOf
,使其包含在整个更新中。
以下流程从增量和总更新中排除不同的属性。
先决条件
-
您复制
dc=example,dc=com
后缀,并且存在复制协议example_agreement
。
流程
使用
dsconf
工具配置部分复制:dsconf <instance_name> repl-agmt set example_agreement --suffix="dc=example,dc=com" --frac-list="authorityRevocationList accountUnlockTime memberof" --frac-list-total="accountUnlockTime"
# dsconf <instance_name> repl-agmt set example_agreement --suffix="dc=example,dc=com" --frac-list="authorityRevocationList accountUnlockTime memberof" --frac-list-total="accountUnlockTime"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 该命令从增量更新中排除
authorityRevocationList
、accountUnlockTime
和memberof
属性,并且仅从总更新中排除accountUnlockTime
。- 注意
-
如果要从 total 和 incremental 更新中排除相同的属性列表,请使用 '--frac-list' 选项将排除属性列表添加到
nsDS5ReplicatedAttributeList
配置属性中。
-
可选:如果要防止空的复制更新,请使用
-strip-list
选项添加目录服务器从复制中删除的属性。详情请参阅在部分 复制中清除空更新。
验证
查看复制协议设置:
dsconf <instance_name> repl-agmt list --suffix=dc=example,dc=com | grep -i nsDS5ReplicatedAttributeList
# dsconf <instance_name> repl-agmt list --suffix=dc=example,dc=com | grep -i nsDS5ReplicatedAttributeList nsDS5ReplicatedAttributeList: (objectclass=*) $ EXCLUDE authorityRevocationList accountUnlockTime memberof nsDS5ReplicatedAttributeListTotal: (objectclass=*) $ EXCLUDE accountUnlockTime
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 重要
-
nsDS5ReplicatedAttributeList
和nsDS5ReplicatedAttributeListTotal
的值必须包含(objectclass swig)$ EXCLUDE
部分。如果您直接编辑属性,例如使用ldapmodify
工具,您必须将此部分与排除的属性列表一起使用。
-
nsDS5ReplicatedAttributeList
-
nsDS5ReplicatedAttributeListTotal