參照完整性是外掛程式機制,可確保維持項目之間的關係。群組成員身份類型等多種屬性類型包含其他項目的 DN。參照完整性可用以確定移除項目時,也會移除所有包含其 DN 的屬性。
例如,如果從目錄移除使用者項目並啟用參照完整性,伺服器也會從使用者為其成員的任何群組中移除該使用者。如果未啟用參照完整性,管理員必須手動從群組移除使用者。如果您要整合目錄伺服器與其他相依於使用者與群組管理目錄的 Sun Java System 產品,這會是很重要的功能。
啟用參照完整性外掛程式時,會在刪除、重新命名或移動作業之後,立即在特定屬性上執行完整性更新。預設會停用參照完整性外掛程式。
每當您在目錄中刪除、重新命名或移動使用者或群組項目時,會將此作業記錄至參照完整性記錄檔:
instance-path/logs/referint
在稱為更新間隔的指定時間過後,伺服器會在啟用參照完整性的所有屬性上執行搜尋,並將該搜尋所產生的項目與記錄檔中已刪除或修改的項目 DN 進行比較。如果記錄檔顯示項目已經刪除,也會刪除對應的屬性。如果記錄檔顯示項目已經變更,也會據以修改對應的屬性值。
啟用參照完整性外掛程式的預設配置後,它會在發生刪除、重新命名或移動作業之後,立即對 member、uniquemember、owner、seeAlso 與 nsroledn 屬性執行完整性更新。不過,您可以配置參照完整性外掛程式的運作方式,以符合您的需求。可以配置下列運作方式:
在不同檔案中記錄參照完整性更新。
修改更新間隔。
若要降低參照完整性更新對系統的影響,可以增加更新之間的時間間隔。
選取要套用參照完整性的屬性。
如果使用或定義包含 DN 值的屬性,可能會想要參照完整性外掛程式監視這些屬性。
參照完整性外掛程式使用的所有資料庫內的所有屬性皆必須編製索引。這些索引必須建立於所有資料庫的配置中。啟用回溯變更記錄時,必須編製 cn=changelog 尾碼的索引。如需相關資訊,請參閱第 12 章, 目錄伺服器編製索引。
部分限制與在複寫的環境中使用參照完整性外掛程式相關。如需這些限制的清單,請參閱複寫與參照完整性。
您可以使用 DSCC 執行此作業。如需相關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。
請確定已配置所有複本,同時已定義所有複寫協議。
決定您要維護其參照完整性的屬性集與要在主伺服器上使用的更新間隔。
在所有主伺服器上,使用相同的屬性集與更新間隔來啟用參照完整性外掛程式。
若要定義參照完整性的屬性,請使用此指令:
$ 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 |
確認已在所有用戶伺服器上停用參照完整性外掛程式。