Sun Java System Directory Server Enterprise Edition 6.3 管理指南

维护引用完整性

引用完整性是一种插件机制,可确保条目之间的关系得到维护。有些类型的属性(如组成员身份属性)包含其他条目的 DN。使用引用完整性可确保在删除条目时同时删除包含该条目 DN 的所有属性。

例如,如果从目录中删除用户条目并启用了引用完整性,则服务器也会从该用户所属的所有组中删除该用户。如果未启用引用完整性,则必须由管理员从组中手动删除该用户。如果您要将目录服务器与依赖于目录进行用户和组管理的其他 Sun Java System 产品集成,则此功能十分重要。

引用完整性的工作方式

启用引用完整性插件之后,它将在删除、重命名或移动操作后立即对指定属性执行完整性更新。默认情况下,引用完整性插件处于禁用状态。

只要删除、重命名或移动目录中的用户或组条目,该操作都会记录到引用完整性日志文件中:

instance-path/logs/referint

在指定时间(称为更新时间间隔)过后,服务器将对已启用引用完整性的所有属性执行搜索,并将搜索结果中的条目与日志文件中存在的已删除或已修改条目的 DN 进行匹配。如果日志文件显示条目已被删除,则会删除相应的属性。如果日志文件显示条目已被更改,则会根据更改情况修改相应的属性值。

如果启用了引用完整性插件的默认配置,则在执行删除、重命名或移动操作后,它将立即对 memberuniquememberownerseeAlsonsroledn 属性执行完整性更新。但是,您也可以根据自己的需求配置引用完整性插件的行为。可以配置以下行为:

Procedure配置引用完整性插件


注 –

必须为引用完整性插件使用的所有数据库中的所有属性编制索引。需要在所有数据库的配置中创建这些索引。启用追溯更改日志后,必须为 cn=changelog 后缀编制索引。有关信息,请参见第 13 章,目录服务器索引


某些限制与在复制环境下使用引用完整性插件相关。有关这些限制的列表,请参见复制和引用完整性

可使用 DSCC 执行此任务。有关信息,请参见目录服务控制中心界面和 DSCC 联机帮助。

  1. 确保已配置所有副本,并且已定义所有复制协议。

  2. 确定要维护引用完整性的属性集,以及要在主服务器上使用的更新时间间隔。

  3. 使用相同的属性集和相同的更新时间间隔在所有主服务器上启用引用完整性插件。

    • 要定义引用完整性的属性,请使用以下命令:


      $ dsconf set-server-prop -h host -p port ref-integrity-attr:attribute-name \
       ref-integrity-attr:attribute-name
      
    • 要在现有属性列表中添加引用完整性属性,请使用以下命令:


      $ dsconf set-server-prop -h host -p port ref-integrity-attr+:attribute-name
      
    • 要定义引用完整性更新时间间隔,请使用以下命令:


      $ dsconf set-server-prop -h host -p port ref-integrity-check-delay:duration
      
    • 要启用引用完整性,请使用以下命令:


      $ dsconf set-server-prop -h host -p port ref-integrity-enabled:on
  4. 确保在所有使用方服务器上禁用引用完整性插件。