每當您在兩部伺服器之間配置一或多個尾碼的複寫時,模式定義也會自動複寫。模式定義的自動複寫可確保所有複本均具有完整且相同的模式,並以此模式定義所有可複寫至用戶的物件類別與屬性。主伺服器因此也含有主伺服器模式。
但模式複寫並不是即時的,即使您透過 LDAP 修改模式也是如此。目錄資料更新時,或在模式修改後第一次啟動複寫階段作業時,皆會觸發模式複寫。
若要對所有複本執行模式,至少必須對所有主伺服器啟用模式檢查。在執行 LDAP 作業的主伺服器上檢查模式時,模式並不需在用戶更新後進行檢查。為提昇效能,複寫機制會略過對用戶複本的模式檢查。
請勿關閉集散中心與專屬用戶的模式檢查。模式檢查並不會影響用戶的效能。請持續開啟模式檢查,以指出複本內容是否符合其模式。
主伺服器會在用戶初始化期間自動將模式複寫至用戶。主伺服器也會在透過 DSCC 或透過指令行工具修改模式時,自動複寫模式。依預設會複寫整個模式。任何在用戶上尚不存在的其他模式元素,皆會在用戶上建立,並儲存於 99user.ldif 檔案中。
例如,假設主伺服器在啟動時於 98mySchema.ldif 檔案中含有模式定義。此外同時假設,您接下來將定義與其他伺服器 (主伺服器、集散中心或專屬用戶) 的複寫協議。當您後續由此主伺服器初始化複本時,複寫的模式將含有來自 98mySchema.ldif 的定義,但定義會儲存在複本伺服器上的 99user.ldif 中。
於用戶初始化期間複寫模式後,若在主伺服器上修改 cn=schema 中的模式,也將使整個模式複寫至用戶。因此,透過指令行公用程式或 DSCC 對主伺服器模式所做的任何修改,均會複寫至用戶。這些修改會儲存在主伺服器的 99user.ldif 中,而透過前述的相同機制,這些修改亦可儲存在用戶的 99user.ldif 中。
請考量下列在複寫環境中維護模式一致性的指示:
請勿修改用戶伺服器上的模式。
修改用戶伺服器上的模式可能會導致複寫錯誤。這是因為用戶上的模式差異,可能會導致來自供應者的更新不符合用戶上的模式。
在多重主伺服器複寫環境中,請修改單一主伺服器上的模式。
當您修改兩部主伺服器的模式時,最新更新的主伺服器會將其模式版本傳播至用戶。用戶上的模式因此可能會變得與其他主伺服器上的模式不一致。
配置部分複寫時,需同時考量下列事項:
當供應者在部分複寫配置中發送模式時,部分用戶複本上的模式將是主伺服器複本之模式的副本。因此,模式將可能無法對應於所套用的部分複寫配置。
一般而言,目錄伺服器會依照模式中的定義複寫每個項目的所有必要屬性,以避免違反模式。當您配置部分複寫而排除必要屬性時,必須停用模式檢查。
若對部分複寫啟用模式檢查,可能無法以離線方式初始化複本。若排除必要屬性,目錄伺服器將不允許您從 LDIF 載入資料。
若您對部分用戶複本停用了模式檢查,部分用戶複本所在的整個伺服器實例,都將不會執行模式檢查。因此,請避免將相同伺服器實例上的供應者複本配置為部分用戶。
複寫機制每次複寫模式時,預設會將整個模式傳送至用戶。以下兩種情況不適合將整個模式傳送至用戶:
使用 DSCC 或從指令行對 cn=schema 所進行的修改,僅限於使用者定義的模式元素,所有標準模式皆不會變更。若您經常修改模式,在每次傳送大量的未變更模式元素時,都會使得效能受到影響。您可以僅就使用者定義的模式元素進行複寫,而提昇複寫與伺服器的效能。
當目錄伺服器上的主伺服器複寫至 Directory Server 5.1 上的用戶時,這些版本的配置屬性模式將不會相同,而會產生衝突。在此情況下,您必須僅就使用者定義的模式元素進行複寫。
目錄伺服器使用 11rfc2307.ldif 模式檔案。此模式檔案符合 RFC 2307。
Directory Server 5.2 之前的目錄伺服器版本使用 10rfc2307.ldif 模式檔案。
無法使用 DSCC 執行此作業。請依照此程序中的說明使用指令行。