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

從 LDIF 初始化複本

Procedure從 LDIF 初始化複寫的尾碼

本程序概要說明從 LDIF 檔案初始化複寫的尾碼所用之一般步驟。

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

使用 DSCC 以線上方式初始化複寫的尾碼,是初始化或重新初始化用戶的簡單方式。但是,如果初始化大量的項目,此程序可能很耗時。此時,使用指令行以離線方式初始化用戶可能比較有效率。

  1. 請確定已設定複寫協議。

    您必須在初始化複本之前執行此項作業。

  2. 從主伺服器複寫的尾碼匯出尾碼資料的原始副本至 LDIF 檔案。

    請參閱匯出複寫的尾碼至 LDIF

    您可以在多重主伺服器複寫環境中,使用從原始主伺服器匯出的 LDIF 檔案同時初始化其他主伺服器與任何用戶。您可以在串聯複寫環境中,使用相同的檔案同時初始化集散複本及其用戶。

    在所有的情況下,皆須以從配置的主伺服器複本匯出之 LDIF 檔案開始。您無法使用任意的 LDIF 檔案初始化所有複本,因為該檔案可能不包含複寫中介資料。

  3. 如果初始化部分複本,請篩選檔案而僅保留複寫的屬性,再將該檔案傳輸到所有用戶伺服器。

    請參閱為部分複寫篩選 LDIF 檔案

  4. 初始化複本。

    請執行下列其中一項動作:

    • 若要在離線的 (停止的) 伺服器上快速進行初使化,請使用 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) 線上手冊。

  5. (可選擇) 請為各個協議檢查尾碼是否已初始化。


    $ dsconf show-repl-agmt-status -h host -p port suffix-DN destination-host:destination-port 
    

Procedure匯出複寫的尾碼至 LDIF

您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。

    使用下列其中一個指令匯出 LDIF 檔案中複寫的尾碼內容:

    • 若是以離線方式匯出,請鍵入:


      $ 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

    如需更多資訊,請參閱備份至 LDIFdsadm(1M) 線上手冊與 dsconf(1M) 線上手冊。

為部分複寫篩選 LDIF 檔案

使用 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 檔案匯入資料中所述,傳輸檔案至用戶伺服器並匯入檔案。