本程序概要說明從 LDIF 檔案初始化複寫的尾碼所用之一般步驟。
您可以使用 DSCC 執行此作業。如需相關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。
使用 DSCC 以線上方式初始化複寫的尾碼,是初始化或重新初始化用戶的簡單方式。但是,如果初始化大量的項目,此程序可能很耗時。此時,使用指令行以離線方式初始化用戶可能比較有效率。
請確定已設定複寫協議。
您必須在初始化複本之前執行此項作業。
從主伺服器複寫的尾碼匯出尾碼資料的原始副本至 LDIF 檔案。
請參閱匯出複寫的尾碼至 LDIF。
您可以在多重主伺服器複寫環境中,使用從原始主伺服器匯出的 LDIF 檔案同時初始化其他主伺服器與任何用戶。您可以在串聯複寫環境中,使用相同的檔案同時初始化集散複本及其用戶。
在所有的情況下,皆須以從配置的主伺服器複本匯出之 LDIF 檔案開始。您無法使用任意的 LDIF 檔案初始化所有複本,因為該檔案可能不包含複寫中介資料。
如果初始化部分複本,請篩選檔案而僅保留複寫的屬性,再將該檔案傳輸到所有用戶伺服器。
請參閱為部分複寫篩選 LDIF 檔案。
初始化複本。
請執行下列其中一項動作:
若要在離線的 (停止的) 伺服器上快速進行初使化,請使用 dsadm import 指令。
$ dsadm import instance-path LDIF_file suffix-DN |
若要從 LDIF 檔案以線上方式初始化複本,請使用 dsconf import 指令。
$ dsconf import -h host -p port LDIF_file suffix-DN |
使用 dsconf import 會比使用 dsadm import 還要慢,但是您無須在執行匯入作業期間停止伺服器。
如需初始化尾碼的詳細資訊與範例,請參閱初始化尾碼。如需詳細的指令用法,請參閱 dsadm(1M) 線上手冊與 dsconf(1M) 線上手冊。
(可選擇) 請為各個協議檢查尾碼是否已初始化。
$ dsconf show-repl-agmt-status -h host -p port suffix-DN destination-host:destination-port |
您可以使用 DSCC 執行此作業。如需相關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。
若是以離線方式匯出,請鍵入:
$ dsadm export instance-path suffix-DN LDIF_file |
若是以線上方式匯出,請鍵入:
$ dsconf export -h host -p port suffix-DN LDIF_file |
下列範例將匯出整個 dc=example,dc=com 複寫的尾碼與複寫資訊至檔案 example_replica_export.ldif:
$ dsconf export -h host2 -p 1389 dc=example,dc=com \ /local/ds/ldif/example_export_replica.ldif |
如需更多資訊,請參閱備份至 LDIF、dsadm(1M) 線上手冊與 dsconf(1M) 線上手冊。
使用 DSCC 時,不會感覺到正在初始化配置有部分複寫的複本。初始化期間僅會將選取的屬性傳送至用戶。
如果已配置部分複寫,應剔除所有未使用的屬性,再將匯出的 LDIF 檔案複製到用戶伺服器。目錄伺服器為此用途提供有 fildif 工具。此工具會篩選指定的 LDIF 檔案,僅保留複寫協議中定義之屬性集所允許的屬性。
此工具會讀取伺服器的配置,以決定屬性集定義。若要讀取配置檔案,必須以超級使用者身份或以擁有程序與檔案 (由 nsslapd-localuser 屬性所指定) 的使用者身份執行 fildif 工具。例如,下列指令會篩選上一範例內 dc=example,dc=com 尾碼所匯出的檔案:
$ fildif -i /local/ds1/ldif/example_master.ldif \ -o /local/ds1/ldif/filtered.ldif -b "cn=host2.example.com:1389, \ cn=replica,cn=\\"dc=example,dc=com\\",cn=mapping tree,cn=config" -p /local/ds1 |
如需瞭解 fildif 指令的位置,請參閱指令位置。
-i 與 -o 選項分別是輸入與輸出檔案。-b 選項是定義部分複寫的複寫協議之 DN。您可以使用此指令尋找此 DN:
$ ldapsearch -h host -p port -D cn=admin,cn=Administrators,cn=config -w - \ -b "cn=config" "(&(objectclass=nsds5replicationagreement) (nsDS5ReplicaPort=replica-port) \ (nsDS5ReplicaHost=replica-host))" dn |
例如:
$ ldapsearch -h host2 -p 1389 -D cn=admin,cn=Administrators,cn=config -w - \ -b "cn=config" "(&(objectclass=nsds5replicationagreement) \ (nsDS5ReplicaPort=2090)(nsDS5ReplicaHost=host2))" dn Enter bind password: version: 1 dn: cn=host2:1389,cn=replica,cn=dc\=example\,dc\=com,cn=mapping tree,cn=config |
如需 fildif 工具完整的指令行語法,請參閱 fildif(1) 線上手冊。
您接著可以使用 fildif 產生的 filtered.ldif 檔案,初始化此複寫協議中的用戶。如從 LDIF 檔案匯入資料中所述,傳輸檔案至用戶伺服器並匯入檔案。