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

初始化複本

建立複寫協議並配置兩個複本之後,必須初始化用戶複寫的尾碼,才會開始複寫。您可以在初始化期間,實際將資料從供應者複寫的尾碼複製到用戶複寫的尾碼。

此外,部分錯誤情況或配置變更會需要重新初始化複本。例如,如果因為任何理由從備份復原單一主伺服器複寫的尾碼中之資料,則必須重新初始化其所更新的所有複本。

重新初始化時,會刪除用戶上複寫的尾碼之內容,並以主伺服器上的尾碼內容取代。如此做可確保複本會進行同步化,且複寫更新可以繼續進行。本節中所述的所有初始化方法會自動重建用戶複本的索引,使得用戶能以最佳方式回應用戶端的讀取請求。

使用多重主伺服器複寫時,如果拓樸中有其他主伺服器已更新用戶,則用戶可能無須重新初始化。

Procedure從遠端 (供應者) 伺服器初始化複寫的尾碼

您可以使用現有的複寫協議,從遠端伺服器初始化尾碼。此初始化方法比其他方法簡單,因此請儘可能使用此方法。而僅在有大量資料使得匯入耗費太多時間時使用其他方法。

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

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

  1. 初始化複本。


    $ dsconf init-repl-dest -h host -p port suffix-DN destination-host:destination-port [destination-host:destination-port]

    其中 destination-host:destination-port 是您從遠端伺服器初始化目標伺服器的主機與連接埠。

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


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

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

使用二進位副本初始化複寫的尾碼

二進位副本可讓您使用某部伺服器的二進位備份檔案,復原相同的目錄內容到另一部伺服器上,以複製整部伺服器。您可以使用二進位副本初始化,或從主伺服器或集散伺服器的二進位副本重新初始化任何伺服器,或從其他用戶伺服器的二進位副本重新初始化用戶。


備註 –

此進階程序會與目錄伺服器的資料庫檔案互動,且應僅由有經驗的管理員使用。

如果複本有大型資料庫檔案,例如包含百萬條項目的複本,在此功能上設定某些限制有助執行與節省時間。


使用二進位副本的複寫限制

由於二進位副本會將資料庫檔案從一部機器移動到另一部,該機制會遵守下列嚴格限制:

建立初始化伺服器的二進位副本

本節說明如何建立初始化伺服器的二進位副本,以及如何建立使用最低磁碟空間的二進位副本。

Procedure建立初始化伺服器的二進位副本

本程序可用以執行二進位副本,以初始化複寫的伺服器,因為其使用標準備份功能建立伺服器資料庫檔案的副本。執行標準備份可確保所有資料庫檔案皆處於一致的狀態,而不需要停止伺服器。

本程序有幾點限制。備份與復原作業會在相同機器上建立資料庫檔案的副本,因此會加倍各機器上這些檔案所需的磁碟空間量。此外,如果目錄包含十億位元組的資料,這些檔案上的實際複製作業可能需要相當長的時間。

針對此程序的某些部分,您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。此程序的其他部分只能使用指令行完成。

  1. 為新複寫的尾碼在目標機器上安裝目錄伺服器,視需要建立新的伺服器實例,並根據使用二進位副本的複寫限制配置伺服器。

  2. 在包含此複寫的尾碼之複寫拓樸中建立所有複寫協議。

    在此複本中包含來自供應者的協議。如果此複本不是專屬用戶,請在其用戶中包含來自此複本的協議。請參閱建立複寫協議

  3. 選取完整配置與想要初始化的相同類型 (主伺服器、集散中心或用戶) 之初始化複本,並根據二進位備份在複本上執行標準備份。

  4. 例如,使用 ftp 指令從備份目錄複製或傳輸檔案到目標機器上的目錄。

  5. 如果已在多重主伺服器複寫方案中初始化新主伺服器,請遵循復原多重主伺服器方案中的主伺服器中的程序。

Procedure使用二進位副本初始化使用最低磁碟空間的伺服器

本程序不會建立資料庫檔案的備份副本,因此會使用較少的磁碟空間與較少的時間。但是,您需要停止正在複製到排序中的伺服器,以確保資料庫檔案的狀態一致。


注意 – 注意 –

本程序不得用以重新初始化已在多重主伺服器複寫方案中使用的主伺服器,僅能用以重新初始化用戶伺服器或初始化新的主伺服器。若要重新初始化現有的主伺服器複本,請使用線上初始化,匯入 LDIF 檔案,或遵循建立初始化伺服器的二進位副本中的程序。


針對此程序的某些部分,您可以使用 DSCC 執行此作業。如需有關資訊,請參閱目錄服務控制中心介面與 DSCC 線上說明。此程序的其他部分只能使用指令行完成。

  1. 為新複寫的尾碼在目標機器上安裝目錄伺服器,視需要建立新的伺服器實例,並根據使用二進位副本的複寫限制配置伺服器。

  2. 在包含此複本的複寫拓樸中建立所有複寫協議。

    在此複本中包含來自供應者的協議。如果此複本不是專屬用戶,請在其用戶中包含來自此複本的協議。請參閱建立複寫協議

  3. 啟動、停止與重新啟動目錄伺服器實例中所述,停止要初始化或重新初始化的目標伺服器。

  4. 選取完整配置與想要初始化的相同類型 (主伺服器、集散中心或用戶) 初始化的複本,同時停止此伺服器。

    如果複製的是多重主伺服器配置中的主伺服器複本,請確保已完整更新所有其他主伺服器最近的變更,再停止伺服器。

  5. 從目標伺服器移除所有資料庫檔案,包含作業事件記錄、變更記錄與區域檔案 (__db.xxx 檔案)。

    除非已遷移檔案,否則資料庫檔案與作業事件記錄會位於 instance-path/db 目錄中。

  6. 例如,使用 ftp 指令從來源複本機器複製或傳輸所有資料庫檔案 (包含作業事件記錄與變更記錄) 到目標機器。

    除非已遷移檔案,否則資料庫檔案與作業事件記錄會位於 instance-path/db 目錄中。

    如果初始化的是主伺服器或集散複本,也須複製變更記錄中的所有檔案,變更記錄預設會位於 instance-path/changelog 中。

  7. 重新啟動來源與目標伺服器。

在串聯複寫中初始化複本

串聯複寫中,請一律以下列程序中所示的順序初始化複本。

Procedure在串聯複寫中初始化複本

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

  1. 如果也有多重主伺服器複寫,請確保其中一部主伺服器有要複寫的完整資料集,再使用此主伺服器初始化其他主伺服器的複本。

  2. 從第一層集散複本的主伺服器複本初始化複本。

  3. 如果有多層集散中心,請從之前初始化的集散層級初始化每個層級。

  4. 從最後一層集散複本初始化專屬用戶上的複本。