Sun Java logo     上一頁      目錄      索引      下一頁     

Sun logo
Sun Java(TM) System Directory Server 5.2 2005Q1 管理指南 

第 8 章
管理複製

複製是自動將目錄內容從一個 Directory Server 複製到另一個或多個 Directory Server 的機制。任一種寫入作業 - 加入、修改或甚至刪除項目 - 都會自動對映到其他 Directory Server。如需關於複製概念、複製案例以及目錄部署中複製規劃方式等完整說明,請參閱 Directory Server Deployment Planning Guide

Directory Server 5.2 包括以下新的複製功能:

本章描述為了設定各種複製案例所要執行的工作,而且包含以下主題:


簡介

複製配置的設定工作相當複雜。開始之前,您應該充分瞭解組織即將佈署複製的方式,例如,要使用單一主機、多重主機還是有集線器的串級複製。複製的單位是尾 碼或子尾碼:屬於該尾碼的所有項目將會一起複製。在您計劃的部署中,您必須根據尾碼所包含的資料來識別主機、集線器或專屬用戶。

伺服器上複製的尾碼稱為複本。主機是指接受來自用戶端的讀寫作業的複本。集線器與專屬用戶是只透過複製機制接收更新的唯讀複本;集線器會從主機或另一個集線器接收更新,然後轉送給另一個集線器或專屬用戶。專屬用戶則只接收來自用戶或集線器的更新。

下列三個圖表顯示一般複製案例中,複本之間的關係。

圖 8-1 單一主機複製

有一台主機和二個專用客戶的單一主機複製

圖 8-2 有集線器的串級複製

有一台主機、兩台集線器和四個專用客戶的串級複製

圖 8-3 多重主機複製

有兩台主機和三個專用客戶的多重主機複製

本文件也使用提供者用戶 等用語表示複製協議中兩個參與伺服器的角色。提供者是傳送複製更新的伺服器,用戶則是接收複製更新的伺服器。上圖所顯示的關係如下:

許多複製設定值適用於協議中提供者或用戶角色的複本,不論其類型為何。


配置複製的步驟摘要

下列步驟假設您要複製單一尾碼。如果您要複製多個尾碼,請在每部伺服器上同時配置這些尾碼。換句話說,您可以重複每個步驟以在多個尾碼上配置複製。

若要配置任何複製拓樸,依照下列順序進行:

  1. 定義除單一主機外的所有伺服器上的複製管理員項目 (或使用所有伺服器上的預設複製管理員。)
  2. 在所有包含專屬用戶複本的伺服器上,執行下列步驟:
    1. 為用戶複本建立空白尾碼。
    2. 透過複製精靈啟用尾碼上的用戶複本。
    3. 選擇性地配置進階複本設定值。
  3. 在所有包含集線器複本的伺服器上,執行下列步驟:
    1. 為集線器複本建立空白尾碼。
    2. 透過複製精靈在尾碼上啟用集線器複本。
    3. 選擇性地配置進階複本設定值。
  4. 在所有包含主機複本的伺服器上,執行下列步驟:
    1. 在要作為主機複本的其中一台主機上選擇或建立尾碼。
    2. 透過複製精靈在尾碼上啟用主機複本。
    3. 選擇性地配置進階複本設定值。
  5. 依照下列順序,在所有提供者複本上配置複製協議:
    1. 介於多重主機集合中的主機之間。
    2. 介於主機與其專屬用戶之間。
    3. 介於主機與集線器複本之間。
    4. 或者,您可以在此階段配置部份複製。

  6. 設定介於集線器複本及其用戶之間的複製協議,
  7. 若是在多重主機複製的情況下,請從包含原始資料的同一個主機複本初始化所有主機。初始化集線器和用戶複本。

  8. 備註

    嘗試建立複製協議之前,啟用所有複製很重要。這樣可讓您在建立複製協議之後,立即初始化用戶複本。用戶初始化永遠是設定複製的最後一個階段。



選擇複製管理員

設定複製時其中一項重要的工作便是:選擇提供者在傳送複製更新時用來與用戶伺服器連結的項目,此項目稱為複製管理員。所有含有接收更新的尾碼之伺服器,必須至少擁有一個複製管理員項目。

Directory Server 有預設複製管理員項目,此項目可用於每一台伺服器;它的 DN 是 cn=Replication Manager,cn=replication,cn=config

對於簡單的複製案例,建議您使用預設的複製管理員。複製精靈會自動用此項目配置用戶複本,因而簡化複本的部署工作。

如果未定義密碼,複製精靈會提示您為預設複製管理員設定密碼。日後若要變更密碼:

  1. 在 Directory Server Console 最上層的 [配置] 標籤上,選擇 [資料] 節點,然後選擇右面板上的 [複製] 標籤。
  2. 在 [複製管理員] 標題下的兩個文字欄位內輸入新的密碼。
  3. 確認密碼之後,按一下 [儲存]。如果密碼與確認密碼不相符,便無法使用 [儲存] 按鈕。

如果不使用預設複製管理員,您可以建立任何新項目作為複製管理員。例如,您可能想讓每個複製管理員項目,對每個複製的尾碼各有不同的密碼。另一個自行建立複製管理員的原因,是為了支援不同的複製驗證模式,例如透過 SSL 使用憑證。

複製管理員項目必須包含您在定義複製協議時,所選擇的驗證方法需要的屬性。例如,預設複製管理員是一個 person 物件類別,可讓 userPassword 屬性進行簡單驗證。如需關於使用憑證連結複製管理員的詳細資料,請參閱透過 SSL 複製

此複製管理員項目不應該位於用戶伺服器的複製尾碼中。適合定義複製管理員的位置在 cn=replication,cn=config 中。

如果您從指令行手動建立新的複製管理員,您必須透過修改複製配置項目的 nsDS5ReplicaBindDN 屬性指定用戶的連結 DN。

如果您正在使用原來的複製,複製管理員項目上會有其他限制。如需詳細資訊,請參閱將 Directory Server 5.2 配置為 Directory Server 4.x 的用戶


小心

您不能使用複製管理員項目的 DN 和密碼,在伺服器上連結或執行作業。複製管理員只能用於複製機制和其他可能需要重新初始化複本時使用。

您必須從未將目錄管理員當作複製管理員使用。


為每個用戶選好複製管理員後,執行下列步驟:

  1. 寫下或記住您所選擇或建立的複製管理員 DN。稍後在此用戶的提供者上建立提供者與此用戶的複製協議時,會需要此 DN 及其密碼。
  2. 如果您定義密碼到期策略,您必須記住排除複製管理員,否則當密碼到期時,將無法複製。若要讓複製管理員項目的密碼不會到期,請建立密碼不會到期的密碼策略,再將它指定給複製管理員項目。如需詳細資訊,請參閱管理個別密碼策略


配置專屬用戶

專屬用戶是複製尾碼的唯讀複本。它會接收來自連結為複製管理員之伺服器的更新,以進行變更。配置用戶伺服器的工作包括準備空白尾碼以儲存複本,並使用複製精靈啟用該尾碼上的複製。可選用的進階配置包括選擇不同的複製管理員、設定參照或設定清除延遲。

下列各節提供在伺服器上配置一個專屬用戶複本的步驟。請在包含指定尾碼之專屬用戶複本的每部伺服器上重複所有程序。

為用戶複本建立尾碼

如果用戶上還沒有空白尾碼,請使用與預訂主機複本相同的 DN 建立一個空白尾碼。如需說明,請參閱建立尾碼

如果尾碼存在而且不是空白,則其內容會在從主機初始化複本時遺失。

啟用用戶複本

複製精靈簡化了啟用專屬用戶複本的工作:

  1. 在 Directory Server Console 最上層的 [配置] 標籤上,展開 [資料] 節點與要設為用戶複本的尾碼節點,然後選擇尾碼下方的 [複製] 節點。
  2. 在右面板中顯示複製狀態資訊。

  3. 按一下 [啟用複製] 按鈕開始複製精靈。
  4. 預設狀態下會選擇 [用戶複本] 選項按鈕。按一下 [下一步] 繼續。
  5. 如果尚未如此做,則會提示您輸入並確認預設複製管理員的密碼。在每一個欄位中輸入相同的密碼,再按一下 [下一步] 繼續。
  6. 如果預設複製管理員已經定義密碼,精靈會略過此步驟。

  7. 複製精靈於更新複製配置的同時,顯示狀態訊息。完成時,請按一下 [關閉]。

複製狀態現在顯示複製已經準備好接收更新,而且在左窗格中的圖示會變更以反映這項變化。

進階用戶配置

依預設值,複製精靈會將複本配置為使用預設的複製管理員。如果您想要使用不同的複製管理員項目,則必須設定進階配置。您也可以使用此對話方塊,設定修改和清除延遲的參照。

  1. 在 Directory Server Console 最上層的 [配置] 標籤上,展開 [資料] 節點和您想要配置尾碼的節點,然後選擇尾碼下方的 [複製] 節點。
  2. 在右面板中,按一下 [進階] 按鈕,顯示 [進階複本設定值] 對話方塊。
  3. 在 [連結 DN] 標籤上,使用 [加入] 和 [刪除] 按鈕,建立有效複製管理員的 DN 清單。接著提供者可以於與此複本之間的協議內來使用任何一個 DN。您可利用輸入新 DN 的名稱或瀏覽目錄來加入新的 DN。
  4. 若要透過 SSL 使用憑證來配置複製,請輸入憑證項目的 DN 作為其中一個複製管理員。

  5. 當您完成或選取更進階配置的 [選用] 標籤時,請按一下 [確定]。
  6. 在 [進階複本設定值] 對話方塊的 [選用] 標籤上,LDAP URL 清單會指定傳送給此用戶之修改要求的額外參照。使用 [加入] 或 [刪除] 按鈕,建立 LDAP URL 清單。
  7. 複製機制會自動配置用戶傳回複製拓樸中所有已知主機的參照。這些預設參照假設用戶端會在一般連線上使用簡單驗証。如果想要利用安全連線的 SSL 將與主機連結的選項提供給用戶端,請加入使用安全 port 號碼之格式 ldaps://servername:port 的參照。(如果主機只是為了安全連線而配置,URL 將依預設值指向安全的連接埠。)

    如果您已經加入一或多個 LDAP URL 作為參照,則選擇清單下方的核取方塊時,會強迫用戶為這些 LDAP URL 獨佔地傳送參照,而非為主機複本。例如,如果您要用戶端永遠被參照到主機伺服器上的安全連接埠而不是預設連接埠,請建立這些安全連接埠的 LDAP URL 清單,並選取此核取方塊。如果您想要指定特定的主機,或指定應該處理所有更新的 Directory Server 代理,則您也可以使用獨占參照。

  8. 此外,在 [選用] 標籤上,您也可以變更清除延遲。
  9. 用戶伺服器儲存有關複本內容更新的內部資訊,而清除延遲參數則指定其保留此資訊的時間,這與其提供者伺服器上變更記錄的 MaxAge 參數有關。在兩個參數中,較短的參數可決定兩部伺服器間的複製在停用或當機後仍能回復正常的最長時間。預設值是 7 天,這已足夠大部分情況使用。

  10. 按一下 [確定] 儲存此複本的進階複製配置。


配置集線器

集線器複本同時作為用戶與主機,將複製資料進一步分散給更多用戶。集線器複本接收來自提供者的複製更新,並將複製更新傳給其用戶。集線器複本不接受修改,而是將參照傳回給主機。

配置集線器伺服器的工作包括準備空白的尾碼以儲存複本,並使用複製精靈啟用該尾碼上的複製。可選用的進階配置包括選擇不同的複製管理員、設定參照、設定清除延遲及設定變更記錄參數。

下列各節提供配置一個集線器伺服器的步驟。請在包含指定尾碼之集線器複本的每部伺服器上重複所有程序。

為集線器複本建立尾碼

如果集線器伺服器上還沒有空白尾碼,請用與預訂主機複本相同的 DN 建立一個空白尾碼。如需說明,請參閱建立尾碼

如果尾碼存在而且不是空白,則其內容會在從主機初始化複本時遺失。

啟用集線器複本

複製精靈簡化了啟用集線器複本的工作:

  1. 在 Directory Server Console 最上層的 [配置] 標籤上,展開 [資料] 節點與要設為集線器複本的尾碼節點,然後選擇尾碼下方的 [複製] 節點。
  2. 在右面板中顯示複製狀態資訊。

  3. 按一下 [啟用複製] 按鈕開始複製精靈。
  4. 選擇 [集線器複本] 選項按鈕,再按一下 [下一步] 繼續。
  5. 如果尚未如此做,則會提示您選擇變更記錄檔。預設變更記錄檔在文字欄位中顯示。如果不想要使用預設,請輸入變更記錄的檔名,或按一下 [瀏覽] 顯示檔案選擇器。
  6. 如果已經啟用變更記錄,精靈會略過此步驟。

  7. 按一下 [下一步]。如果尚未如此做,則會提示您輸入並確認預設複製管理員的密碼。在每一個欄位中輸入相同的密碼,再按一下 [下一步] 繼續。
  8. 如果預設複製管理員已經定義密碼,精靈會略過此步驟。

  9. 複製精靈於更新複製配置同時,也會顯示狀態訊息。完成時,請按一下 [關閉]。

複製狀態現在顯示複製已經準備好接收更新,而且在左窗格中的圖示會變更以反映這項變化。

進階集線器配置

集線器伺服器作為提供者時需要變更記錄,而精靈會將集線器複本配置為使用預設的變更記錄設定值。若要修改這些設定值:

  1. 在 Directory Server Console 最上層的 [配置] 標籤上,選擇 [資料] 節點,然後選擇右面板上的 [複製] 標籤。
  2. 您可能需要選取 [啟用變更記錄] 核取方塊並按一下 [重設] 按鈕,重新整理此標籤的內容。接著,應該會看到您在複製精靈中選擇的變更記錄檔。
  3. 您可以對變更記錄檔的名稱變更,並更新變更記錄參數:
    1. 變更記錄最大筆數 - 對於為了傳送更新給用戶而儲存的修改而言,變更記錄最大筆數可決定該修改的總數。依據預設,這是無限制的。如果您的複本收到許多大型的修改,您或許想要限制記錄的數目以節省磁碟空間。
    2. 變更記錄最長期限 - 可決定集線器儲存必須傳送給用戶更新的時間。依據預設,這是無限制的。建議使用變更記錄最長期限參數限制變更記錄大小。

變更記錄配置屬性在 Directory Server Administration Reference 中有詳細的描述。

複製精靈也使用預設的複製管理員。如果已經建立想要使用的不同複製管理員項目,則需要設定進階配置。您也可以使用此對話方塊,設定修改和清除延遲的參照。

  1. 在 Directory Server Console 最上層的 [配置] 標籤上,展開 [資料] 節點和您想要配置尾碼的節點,然後選擇尾碼下方的 [複製] 節點。
  2. 在右面板中,按一下 [進階] 按鈕,顯示 [進階複本設定值] 對話方塊。
  3. 在 [連結 DN] 標籤上,使用 [加入] 和 [刪除] 按鈕,建立有效複製管理員的 DN 清單。接著提供者可以於與此複本之間的協議內來使用任何一個 DN。您可利用輸入新 DN 的名稱或瀏覽目錄來加入新的 DN。
  4. 若要透過 SSL 使用憑證來配置複製,請輸入憑證項目的 DN 作為其中一個複製管理員。

  5. 當您完成或選取更進階配置的 [選用] 標籤時,請按一下 [確定]。
  6. 在 [進階複本設定值] 對話方塊的 [選用] 標籤上,LDAP URL 清單會指定傳送給此集線器之修改要求的額外參照。使用 [加入] 或 [刪除] 按鈕,建立 LDAP URL 清單。
  7. 複製機制可自動配置集線器,以傳回複製拓樸中所有已知主機的參照。這些預設參照假設用戶端會在一般連線上使用簡單驗証。如果想要利用安全連線的 SSL 將與主機連結的選項提供給用戶端,請加入使用安全連接埠號碼之格式 ldaps://servername:port 的參照。

    如果您已經加入一或多個 LDAP URL 作為參照,則選擇清單下方的核取方塊時,會限制伺服器只為這些 LDAP URL 傳送參照,而非為主機複本。例如,如果您要用戶端永遠被參照到主機伺服器上的安全連接埠而不是預設連接埠,請建立這些安全連接埠的 LDAP URL 清單,並選取此核取方塊。如果您想要指定特定的主機,或指定應該處理所有更新的 Directory Server 代理,則您也可以使用獨占參照。

  8. 此外,在 [選用] 標籤上,您也可以變更清除延遲。
  9. 集線器伺服器儲存有關複本內容更新的內部資訊,而清除延遲參數則指定其保留這些資訊的時間,這與供應更新之伺服器上的變更記錄 (不是 它自己的變更記錄) 的 MaxAge 參數有關。在兩個參數中,較短的參數可決定兩部伺服器間的複製在停用或當機後仍能回復正常的最長時間。預設值是 7 天,這已足夠大部分情況使用。

  10. 按一下 [確定] 儲存此複本的進階複製配置。


配置主機複本

主機複本包含資料的主要複本,並先將所有修改集中之後,再將更新傳給其他所有複本。主機會記錄所有變更,檢查用戶狀態,並在需要時將更新傳給用戶。在多重主機複製中,主機複本也會收到來自其他主機的更新。

配置主機伺服器的工作包括定義包含主機複本的尾碼、用複製精靈啟用主機複本以及視需要設定進階複製。

下列各節提供配置一個主機伺服器的步驟。請在包含指定尾碼之主機複本的每部伺服器上重複所有程序。

為主機複本定義尾碼

在包含要複製之項目的主機伺服器上選擇或建立尾碼。如需說明,請參閱建立尾碼

建立複製協議之前,尾碼應包含所有的初始資料。如此一來,您才能夠立即根據這些資料初始化用戶複本。為確保正確的多重主機配置與初始化,應該只有其中一個主機包含所有初始資料,而其他主機上的尾碼應該空白。

啟用主機複本

複製精靈簡化了啟用主機複本的工作:

  1. 在 Directory Server Console 最上層的 [配置] 標籤上,展開 [資料] 節點與要設為主複本的尾碼節點,然後選擇尾碼下方的 [複製] 節點。
  2. 在右面板中顯示複製狀態資訊。

  3. 按一下 [啟用複製] 按鈕開始複製精靈。
  4. 選擇 [主機複本] 選項按鈕,再按一下 [下一步] 繼續。
  5. 輸入複本 ID:選擇 1 到 65534 (含 1 與 65534) 之間的唯一整數。
  6. 複本 ID 在指定尾碼的所有主機複本之中應該是唯一的。同一伺服器上不同尾碼的主機複本可以使用相同的複本 ID,前提是它在每個複本的其他主機之中是唯一的。

  7. 按一下 [下一步]。如果尚未如此做,則會提示您選擇變更記錄檔。預設變更記錄檔在文字欄位中顯示。如果不想要使用預設,請輸入變更記錄的檔名,或按一下 [瀏覽] 顯示檔案選擇器。
  8. 如果已經啟用變更記錄,精靈會略過此步驟。

  9. 按一下 [下一步]。如果尚未如此做,則會提示您輸入並確認預設複製管理員的密碼。在單一主機複本的情況下不使用複製管理員,但您還是必須輸入密碼,才能繼續。在每一個欄位中輸入相同的密碼,再按一下 [下一步] 繼續。
  10. 如果預設複製管理員已經定義密碼,精靈會略過此步驟。

  11. 複製精靈於更新複製配置同時,也會顯示狀態訊息。完成時,請按一下 [關閉]。

現在複製狀態會顯示此主機的複本 ID,而且左窗格中的圖示會變更以顯示此尾碼已啟用複製。

進階多重主機配置

依預設值,精靈會將主機複本配置為使用預設的變更記錄設定值。若要修改變更記錄設定值:

  1. 在 Directory Server Console 最上層的 [配置] 標籤上,選擇 [資料] 節點,然後選擇右面板上的 [複製] 標籤。
  2. 您可能需要選取 [啟用變更記錄] 核取方塊並按一下 [重設] 按鈕,重新整理此標籤的內容。接著,應該會看到您在複製精靈中選擇的變更記錄檔。
  3. 您可以將變更記錄檔的名稱變更,並更新變更記錄參數:
    1. 變更記錄最大筆數 - 對於為了傳送更新給用戶而儲存的修改而言,變更記錄最大筆數可決定該修改的總數。依據預設,這是無限制的。如果您的複本收到許多大型的修改,您或許想要限制記錄的數目以節省磁碟空間。
    2. 變更記錄最長期限 - 可決定主機儲存必須傳送給用戶更新的時間。依據預設,這是無限制的。建議使用變更記錄最長期限參數限制變更記錄大小。

變更記錄配置屬性在 Directory Server Administration Reference 中有詳細的描述。

複製精靈也使用預設的複製管理員。如果已經建立想要使用的不同複製管理員項目,則需要設定進階配置。您也可以使用此對話方塊,設定修改和清除延遲的參照。如果要配置單個主機,您可以略過此程序。

  1. 在 Directory Server Console 最上層的 [配置] 標籤上,展開 [資料] 節點和您想要配置尾碼的節點,然後選擇尾碼下方的 [複製] 節點。
  2. 在右面板中,按一下 [進階] 按鈕,顯示 [進階複本設定值] 對話方塊。
  3. 在 [連結 DN] 標籤上,使用 [加入] 和 [刪除] 按鈕,建立有效複製管理員的 DN 清單。接著提供者可以於與此複本之間的協議內來使用任何一個 DN。您可利用輸入新 DN 的名稱或瀏覽目錄來加入新的 DN。
  4. 若要透過 SSL 使用憑證來配置複製,請輸入憑證項目的 DN 作為其中一個複製管理員。

  5. 當您完成或選取更進階配置的 [選用] 標籤時,請按一下 [確定]。
  6. 在 [進階複本設定值] 對話方塊的 [選用] 標籤上,LDAP URL 清單會指定傳送給此主機之修改要求的額外參照。初始化後,主機會立即自動傳送參照,如多重主機初始化後的交集所述。使用 [加入] 或 [刪除] 按鈕,建立 LDAP URL 清單。
  7. 複製機制可自動配置集線器,以傳回複製拓樸中所有已知主機的參照。這些預設參照假設用戶端會在一般連線上使用簡單驗証。如果想要利用安全連線的 SSL 將與主機連結的選項提供給用戶端,請加入使用安全連接埠號碼之格式 ldaps://servername:port 的參照。

    如果您已經加入一或多個 LDAP URL 作為參照,則選擇清單下方的核取方塊時,會限制伺服器只為這些 LDAP URL 傳送參照,而非為主機複本。例如,如果您要用戶端永遠被參照到主機伺服器上的安全連接埠而不是預設連接埠,請建立這些安全連接埠的 LDAP URL 清單,並選取此核取方塊。

  8. 此外,在 [選用] 標籤上,您也可以變更清除延遲。
  9. 主機伺服器必須儲存有關複本內容更新的內部資訊,而清除延遲參數則指定其保留這些資訊的時間,這與供應更新之主機伺服器上的變更記錄 (不是 它自己的變更記錄) 的 MaxAge 參數有關。在兩個參數中,較短的參數可決定兩部伺服器間的複製在停用或當機後仍能回復正常的最長時間。預設值是 7 天,這已足夠大部分情況使用。

  10. 按一下 [確定] 儲存此複本的進階複製配置。


建立複製協議

複製協議是在提供者上的一組參數,用以配置及控制更新傳送到指定用戶的方式。複製協議必須建立在傳送更新給其用戶的提供者複本上。您必須為每一個要更新的用戶建立複製協議。

依照下列順序建立複製協議:

  1. 介於多重主機集合中的主機之間,從包含要複製之尾碼原始複本的主機開始。
  2. 介於主機與不透過集線器複製的專屬用戶之間。
  3. 介於主機與集線器複本之間。
  4. 介於集線器複本與其用戶之間。

例如,在有 2 台主機及 3 台專屬用戶的多重主機複製拓樸中 (如圖 8-3 所示),您應該依照下列順序建立 8 個複製協議:

若要建立複製協議:

  1. 在 Directory Server Console 最上層的 [配置] 標籤上,展開 [資料] 節點與提供者尾碼節點,然後選擇尾碼下方的 [複製] 節點。
  2. 在右面板中顯示複製狀態資訊。

  3. 按一下已定義複製協議清單旁的 [新增] 按鈕。
  4. 在 [複製協議] 對話方塊中,選擇功能表中包含用戶複本的現有伺服器,或按一下 [其他] 按鈕以定義伺服器。
  5. 當您按 [其他] 按鈕時,請輸入用戶伺服器的完整格式名稱,以及其 LDAP 連接埠號碼。如果在此連接埠上使用 SSL,請核取安全連接埠的方塊,為複製更新啟用安全連線。

  6. 在用戶伺服器上輸入複製管理員項目的 DN 與密碼。依預設值,這是預設複製管理員的 DN。
  7. 如果您選擇具有安全連接埠的用戶,您可以按一下 [選項] 按鈕決定 DN 欄位的意義。如果您用密碼連線,提供者將使用簡單驗證,並透過加密的 SSL 連線進行通訊。如果您利用憑證進行連線,DN 欄位就是包含憑證的項目 DN,而且不需要密碼。

  8. 選擇性地輸入此協議的描述字串。用戶伺服器名稱與連接埠號碼及描述字串將出現在此主機複本的複製協議清單中。
  9. 完成時,按一下 [確定]。便會顯示確認對話方塊,詢問您是否要測試剛輸入的連線參數。
  10. 如果要用指定的複製管理員與密碼來測試能否連線到指定的伺服器及連接埠號碼,請按一下 [是]。如果連線失敗,您還是能夠選擇使用此協議,例如,可能是參數正確,但伺服器是處於離線狀態。
  11. 當您完成時,協議會出現在此主機複本的複製協議清單中。

稍後您可以編輯複製協議,以變更用戶伺服器上複製管理員的 DN 與密碼:

  1. 從清單中選擇複製協議,再按一下 [編輯] 按鈕。
  2. 在 [複製協議] 對話方塊中,請選擇 [連線] 標籤。
  3. 編輯用戶伺服器的複製管理員 DN 或密碼。
  4. 選擇性地編輯協議的描述字串。
  5. 按一下 [確定] 儲存新設定值,並在將更新傳給此用戶時立即開始使用新設定值。
  6. 啟用部份複製透過 WAN 複製中會說明其他標籤中的配置參數。

  7. 在建立每個複製協議後,您可以選擇為此尾碼設定部份複製,然後立即初始化複本,如初始化複本所述。

  8. 備註

    如果您在複製已經運作的 情況下更改主機上的連接埠號碼,則不需要重新初始化伺服器。但是,指向舊位址 (host:oldport) 的舊複製協議已不再有用,而且如果您希望複製如同未變更連接埠之前般繼續,則它必須以具有新位址 (host:newport) 的新複製協議取代。



配置部份複製

依預設值,複製會將複製尾碼中的所有項目全部複製到用戶 複本。若使用部份複製功能,您可以指定複製過程中所複製或排除的屬性子集。部份複製是在複製協議中設定,讓您可以為主機的每個用戶複本定義屬性組。如此一 來,您可以控制分散的資料內容,並且更有效率地使用複製頻寬及用戶資源。

例如,如果您要減少複製頻寬,可以選擇不複製通常為大值的屬性,例如 photojpegPhotoaudio。因此,在用戶上無法使用這些屬性。又例如,您可以選擇只複製 uiduserpassword 屬性到專門用來執行驗證的用戶伺服器。

部份複製的考慮事項

凡是啟用或修改片斷的屬性組,都必須重新初始化用戶複本。因此,您應該在部署之前先決定部份複製的需要,並在第一次初始化複本之前定義您的屬性組。

複製小型屬性組時應小心,因為已知某些屬性的 ACI、角色與 CoS 等複雜的功能之間存在有依存性。不僅如此,若不複製 ACI、角色或 CoS 機制的規範或搜尋條件中提及的其他屬性,可能破壞資料安全性,或造成搜尋中傳回不同的屬性組。管理要排除的屬性清單會比管理要包含的屬性清單安全,也比較 不容易發生人為錯誤。

如果複製的屬性組不允許所有複製的項目要符合該模式,您應該關閉用戶伺服器中的模式檢查。複製不符合模式的項目並不會產生錯誤,因為複製機制會略過用戶上的模式檢查。但這樣一來,用戶將會包含不符合模式的項目,所以應該關閉模式檢查,以將連貫的狀態公開給其用戶端。

部份複製是在有集線器與專屬用戶之主機複本的複製協議中配置。多重主機複製環境中,不支援兩個主機複本之間的部份複製配置。而且,如果數個主機與同一個複本間有複製協議,則這些協議都必須複製同一個屬性組。

Directory Server 5.2 所提供的部份複製功能與舊版本的 Directory Server 向後相容。配置部份複製協議時,主機與用戶複本都必須在 Directory Server 實例版本 5.2 上。

定義屬性組

屬性組是一張屬性清單,清單上的屬性是當複本上啟用部份複製時所複製的屬性 (其他所有屬性均排除)。您可以在主機伺服器上定義任何數目的屬性組,然後使其中一個屬性組與複製協議產生關聯。

  1. 在 Directory Server Console 最上層的 [配置] 標籤上,選擇 [資料] 節點,然後選擇右面板上的 [複製] 標籤。
  2. 按一下 [複製] 標籤下方的 [管理複製屬性組] 按鈕。您可能必須向下捲動才會看到此按鈕。
  3. 按一下 [加入] 以定義新的屬性組,或從清單中選擇現有屬性組再按一下 [編輯] 進行修改。在顯示的 [屬性組] 對話方塊中選擇或取消選擇 [複製] 欄中的核取方塊,使對應的屬性可包含在屬性組中,或排除在組外。屬性名稱旁有核取方塊表示將會複製該屬性。
  4. 預設狀態下會選擇所有屬性,建議您只將特別不希望複製的屬性取消選擇。如果要重新開始選擇,[全選] 按鈕會再次選擇所有屬性。當您取消選擇一些屬性後,目錄伺服器將複製所有屬性,只排除 已取消選擇的屬性。如果稍後在模式中定義新的屬性,並用於複製項目中,這些新的屬性都將被複製,除非您編輯屬性組取消選擇該屬性。

    按一下 [全部不選] 按鈕將取消選擇所有屬性,然後您可以選擇要包含在屬性組中的屬性。當您按下 [全部不選],然後定義正確的屬性組後,只有選取的屬性 會被複製。如果稍後在模式中定義新的屬性,並用於複製項目中,這些新的屬性都不會被複製,除非您編輯屬性組選擇該屬性。


    備註

    objectClassnsUniqueIdnsDS50ruv 屬性,以及 RDN 命名屬性一定 會複製,不論您是否在屬性組中排除這些屬性。這是因為 LDAP 修改需要 objectClass 與命名屬性,而複製則需要 nsUniqueIdnsDS50ruv 屬性才能正常運作。

    排除 ACI 屬性將對用戶複本中的存取控制產生影響。排除 userPassword 屬性將導致沒有任何使用者能夠通過用戶複本的驗證。


  5. 選擇性地輸入或修改此屬性組的描述字串。此文字將出現在定義的屬性組清單中,並在編輯即將使用此屬性組的複製協議時出現。如果未提供描述,伺服器將根據排除或包含的屬性產生描述。
  6. 完成時,按一下 [儲存]。

啟用部份複製

只有現有的複製協議上可以啟用部份複製:

  1. 建立複製協議所述建立複製協議,或選擇先前定義的協議進行修改。
  2. 停用複製協議所述停用複製協議。必須停用協議後才能修改部份複製配置。
  3. 選擇已停用的協議,再按一下 [編輯]。在出現的 [複製協議] 對話方塊中選擇 [複製屬性] 標籤。
  4. 選擇 [只複製一組屬性] 核取方塊。
  5. 從下拉式清單中選擇現有屬性組,或按一下 [新增] 定義新的屬性組,如定義屬性組所述。您也可以按一下 [管理複製屬性組] 以檢視及修改現有的屬性組定義。
  6. 部份複製只允許一個屬性組與複製協議產生關聯。該屬性組應包含要複製的正確屬性清單。

  7. 選擇屬性組後,按一下 [確定]。出現資訊訊息提醒您已配置部份複製,且您必須重新初始化用戶複本。按一下 [確定] 退出訊息。
  8. 按一下 [啟用] 以重新啟用複製協議。
  9. 您可以視複製屬性的不同,考慮停用用戶伺服器上的模式檢查。
  10. 如果其他主機也與此複本之間有複製協議,您必須重複此程序,在所有其他主機上用相同的屬性組啟用部份複製。
  11. 您必須立即初始化用戶複本,或重新初始化已複製的複本。請參閱下列初始化複本


初始化複本

建立複製協議後,您必須先重新初始化用戶複本,然後複製才會真正開始。初始化期間,您會實際將資料從提供者複本複製到用戶複本。

某些錯誤狀況或配置變更會要求您必須重新初始化複本。重 新初始化時,會刪除用戶上複製尾碼的內容,並以主機上尾碼的內容取代。這樣可確保複本之間保持同步,並且可以繼續複製更新。而且,此處所述的所有初始化方 法都會自動重新建立用戶複本的索引,所以用戶已準備好以最佳狀態回應用戶端的讀取要求。

初始化時機

複本初始化必須在兩個複本都已完成配置之後,以及發生任何複製之前進行。一旦將尾碼中的資料完全複製到用戶之後,提供者便可以開始在用戶上重新執行更新作業。

在正常作業下,絕不應該重新初始化用戶。但如果因為任何原因而從備份中還原單一主機複本,就應該重新初始化它更新的所有複本。若是多重主機複製,則已經由其他主機更新的用戶不必重新初始化。

您可以使用主控台在線上初始化複本,或使用指令行手動初 始化複本。對於初始化小量用戶的作業而言,使用主控台在線上進行初始化相當方便。您可以直接從複製協議在線上初始化複本,但是因為每個複本要依序初始化, 所以此方法不適合大量複本的初始化。若要從單一 LDIF 檔案同時初始化大量用戶,用指令行手動初始化是比較有效的方法。

最後,經驗豐富的管理員可以使用二進位複製功能複製主機或用戶複本。這項功能有一些限制,因此只有對極大型資料庫檔案的複本 (例如包含幾百萬個項目的複本) 才有實用、省時的功效。

在多重主機複製中初始化複本

在多重主機複製的情況下,您應該依照下列順序初始化複本:

  1. 確定已經有一台主機擁有要複製的完整資料。使用此主機,在每台其他主機上將複本初始化。
  2. 從主機初始化其用戶複本 (請參閱執行線上複本初始化),或從任一台主機的 LDIF 檔案初始化用戶複本 (請參閱匯出複本到 LDIF。)

在串級複製中初始化複本

在串級複製的情況下,請記住一定要依照下列順序初始化複本:

  1. 如果您也有多重主機複製,請確定其中一台主機已經有要複製的完整資料集。使用此主機,在每台其他主機上將複本初始化。
  2. 從主機複本初始化第一層集線器複本上的複本。
  3. 如果有多層集線器,請從上一層初始化的集線器依序初始化每一層。
  4. 從最後一層集線器複本,初始化專屬用戶上的複本。

多重主機初始化後的交集

在多重主機複製的情況下,當某一主機正在進行初始化時,其他主機仍可以處理變更作業。因此,當初始化完成時,新的主機也必須接收不包含在初始化資料中的新更新。由於初始化可能需時甚久,因此擱置的更新數也可能相當多。

為了讓這些擱置更新能夠交集,新初始化的主機會自動將初始化後的用戶端作業設成唯讀模式。(這只有透過來自指令行的 LDIF 檔案,或使用備份執行二進位複製時才為真。)此行為是 Directory Server 5.2 中的新增功能。

因此在初始化後,多重主機配置中的主機將會處理複製更新,並允許讀取作業,但對於來自用戶端的寫入作業則會傳回參照。您可以如進階多重主機配置所述定義參照。在符合下列條件後,主機將會回復讀寫模式:

透過主控台開始接受更新

在多重主機複本初始化後,執行這些步驟以明確允許更新作業:

  1. 在 Directory Server Console 最上層的 [配置] 標籤上,展開 [資料] 節點與複製尾碼的節點,然後選擇尾碼下方的 [複製] 節點。
  2. 在右面板中,主控台會顯示訊息表示複本已初始化,而且目前會為更新作業傳回參照。如果此訊息表示已啟用自動參照延遲,您還是可以依照此程序覆寫該延遲。

  3. 使用 insync 工具以確保複本已經與所有其他的主機交集。如果所有伺服器上修改之間的延遲是零,或如果複本從來沒有任何變更需要複製 (延遲為 -1),則複本之間為同步。如需詳細資訊,請參閱 Directory Server Administration Reference
  4. 按一下訊息右邊的按鈕,立即開始接受更新作業。

透過指令行開始接受更新

下列指令可用於自動處理多重主機複本初始化的程序檔內,以檢查交集並明確允許更新作業:

  1. 使用 insync 工具以確保複本已經與所有其他的主機交集。如果所有伺服器上修改之間的延遲是零,或如果複本從來沒有任何變更需要複製 (延遲為 -1),則複本之間為同步。如需詳細資訊,請參閱 Directory Server Administration Reference
  2. 用下列指令修改 ds5BeginReplicaAcceptUpdates 配置屬性:
  3. ldapmodify -h host -p port -D "cn=Directory Manager" -w password
    dn:cn=replica, cn=suffixName, cn=mapping tree, cn=config
    changetype:modify
    add:ds5BeginReplicaAcceptUpdates
    ds5BeginReplicaAcceptUpdates:start
    ^D

初始化複本時,會自動刪除 ds5BeginReplicaAcceptUpdates,使得初始化後會再次拒絕更新作業。

設定自動參照延遲

ds5ReferralDelayAfterInit 配置屬性會決定任何初始化後複本傳回參照的秒數。在此延遲後,複本將自動開始處理來自用戶端的更新作業。此屬性是每個複本特有的,而且應該根據多重主機初始化後的交集中所述的條件來設定屬性的值。

如果對應的複本最近已初始化,而且仍未接受更新,則變更此屬性值將動態影響對應的複本。您可以修改此數值以延長或縮短進行中的延遲;如果已超過延遲,而且複本正在接受更新,則設定此屬性將不會有任何影響。

此屬性的預設值是 -1,表示複本將無限期拒絕更新作業。在此情況下,您可以定義延遲,在超過延遲 (自初始化起算) 時自動允許更新。設定已超過的延遲將使複本立即開始接受更新。

  1. 使用下列指令設定 ds5ReferralDelayAfterInit 屬性:
  2. ldapmodify -h host -p port -D "cn=Directory Manager" -w password
    dn:cn=replica, cn=suffixName, cn=mapping tree, cn=config
    changetype:modify
    replace:ds5ReferralDelayAfterInit
    ds5ReferralDelayAfterInit:seconds
    ^D

使用主控台初始化複本

使用主控台在線上初始化複本是初始化或重新初始化用戶最簡單的方法。但是,如果您要初始化大量項目 (超過 1-2 百萬),此處理可能非常耗時,您或許覺得使用指令行進行手動用戶初始化更具效率 (如需詳細資訊,請參閱從指令行初始化複本)。

使用主控台初始化用戶複本時,尾碼上的所有作業 (包括搜尋) 會參照到主機伺服器,直到初始化處理完成為止。

在使用 Directory Server Console 時,使用已配置部份複製初始化複本的作業是透明的。初始化過程中,只會將選取的屬性傳送給用戶。

執行線上複本初始化

若要使用主控台初始化或重新初始化複本:

  1. 在 Directory Server Console 最上層的 [配置] 標籤上,展開 [資料] 節點與主機複本的尾碼節點,然後選擇尾碼下方的 [複製] 節點。
  2. 在右面板中顯示複製狀態資訊。

  3. 在已定義的協議清單中,選擇與您要初始化的用戶對應的複製協議,再按一下 [動作]>[初始化遠端複本]。
  4. 出現確認訊息,警告您原先已儲存在用戶上複本中的任何資訊都將遺失。

  5. 在確認方塊中按一下 [是]。
  6. 線上用戶初始化立即開始。複製協議的圖示顯示紅色齒輪,表示初始化處理的狀態。

  7. 按一下 [重新整理]>[立即重新整理],或選擇 [重新整理]>[繼續重新整理],以追蹤用戶初始化的狀態。
  8. 在清單下方的文字方塊中,會出現被反白顯示之協議的任何訊息。

如需關於監視複製與初始化狀態的詳細資訊,請參閱監視複製狀態

從指令行初始化複本

對於複製大量項目的佈署而言,使用指令行手動初始化複本是用戶初始化的最快方法。凡是因為效能限制而不適合採用線上程序時,均可使用手動處理。但是,手動用戶初始化處理比線上用戶初始化處理複雜許多。請注意,您必須在初始化複本之前設定複製協議。

若要手動初始化或重新初始化複本,先將尾碼資料的原始複本匯出到 LDIF 檔案。如果要初始化片斷複本,您應該篩選檔案,只保留複製的屬性。然後將該檔案傳輸到所有用戶伺服器,再進行匯入。在多重主機複製部署中,您可以用從原始 主機匯出的 LDIF 檔案來初始化其他主機與任何用戶。在串級複製環境中,您可以用同一個檔案初始化集線器複本與其用戶。

不論任何狀況,您都必須從配置的主機複本匯出的 LDIF 檔案開始。您無法使用任意的 LDIF 來初始化所有複本,因為任意檔案中不包含複製資料。您必須先將您的 LDIF 檔案匯入主機複本,再用下列程序將它匯出。

匯出複本到 LDIF

您可以用 db2ldif -rdb2ldif-task -r 指令將複本內容儲存在 LDIF 檔案中。如需詳細資訊,請參閱從指令行匯出至 LDIF。您必須 使用這些指令的 -r 選項來匯出複本。

下列範例會將整個 dc=example,dc=com 複本匯出到名為 example_master.ldif 的檔案:

 

# /usr/sbin/directoryserver -s example stop
# /usr/sbin/directoryserver db2ldif -r -s "dc=example,dc=com" \
  -a /var/ds5/slapd-serverID/ldif/example_master.ldif
# /usr/sbin/directoryserver -s example start

然後您可以視需要篩選 LDIF 檔案,並將它傳輸到用戶主機,以初始化用戶複本。

篩選部份複製的 LDIF 檔案

如果您已配置部份複製,您應該先將任何不用的屬性篩選掉,再將匯出的 LDIF 檔案複製到用戶伺服器。針對這個用途,Directory Server 提供了 fildif 工具。此工具會篩選指定的 LDIF 檔案,只保留複製協議中定義的屬性組所允許的屬性。

此工具會讀取伺服器的配置,以決定屬性組定義。為了讀取配置檔,fildif 工具必須作為根執行,或作為擁有程序和檔案的使用者執行 (由 nsslapd-localuser 屬性指定)。例如,下列指令會篩選從上述範例的 dc=example,dc=com 尾碼中匯出的檔案:

# CAMUS=/var/opt/mps/serverroot/slapd-camus
# /var/opt/mps/serverroot/shared/bin/fildif \
-i $CAMUS/ldif/example_master.ldif \
-o $CAMUS/ldif/filtered.ldif -c $CAMUS/config/dse.ldif \
-b "cn=rousseau.example.com:389, cn=replica, \
cn=\"dc=example,dc=com\", cn=mapping tree, cn=config"

-i-o 選項分別代表輸入檔與輸出檔。-c 選項是包含複製協議及屬性組定義的配置檔。dse.ldif 檔案是儲存 cn=config 項目內容 (包括複製協議與屬性組) 的伺服器所在位置。

-b 選項是定義部份複製之複製協議的 DN。在 Directory Server Console 中以目錄管理員的身份瀏覽 cn=config 尾碼,即可找到此項目。請選擇尾碼下方的 cn=replica 項目,並使用 [編輯]>[複製 DN] 功能表項目將此 DN 複製到剪貼簿,以便在輸入指令時使用。

如需 fildif 工具的完整指令行語法,請參閱 Directory Server Man Page Reference

接著您可以使用 fildif 所產生的 filtered.ldif 檔案,將此複製協議中的用戶初始化。將檔案傳輸到用戶伺服器,再依下一節的說明匯入檔案。

匯入 LDIF 檔案到用戶複本

您可以使用 Directory Server Console 中的匯入功能,或使用 directoryserver ldif2dbdirectoryserver ldif2db-task 指令,將含有主機複製內容的 LDIF 檔案匯入用戶複本中。就如所有匯入作業一樣,這些指令需要目錄管理員的連結 DN 與密碼才能執行匯入。在從指令行匯入 LDIF 中會說明匯入的方法。

下列範例顯示如何匯入 LDIF 檔案,以初始化 dc=example,dc=com 用戶複本:

 

# /usr/sbin/directoryserver -s example stop
# /usr/sbin/directoryserver ldif2db -s "dc=example,dc=com" \
  -i example_master.ldif
# /usr/sbin/directoryserver -s example start

使用 ldif2db-task不必先停止伺服器。如需詳細資訊,請參閱 Directory Server Man Page Reference

使用二進位複製初始化複本

二進位複製功能會複製整個伺服器,方法是使用來自某個伺服器的二進位備份檔案來還原另一個伺服器上相同的目錄內容。此進階功能會與目錄伺服器的資料庫檔案互動,而且僅適合經驗豐富的管理員使用。

二進位複製的限制

因為二進位複製功能會將資料庫檔案從一台電腦搬移到另一台電腦,所以這項機制有下列嚴格的限制:

在上述條件下,您可以從一部主機伺服器的二進位複本初始化或重新初始化另一部主機伺服器,或從一部用戶伺服器的二進位複本初始化或重新初始化另一部用戶伺服器。下列兩個程序說明執行二進位複製的替代方法,一個方法不需要停止伺服器,另一個方法使用最小的磁碟空間。

不停止伺服器的二進位複製

執行二進位複製時,建議您使用以下程序,因為它使用正常的備份功能來建立伺服器資料庫檔案的複本。執行正常備份可確保所有資料庫檔案都保持連貫的狀態,不需要停止伺服器。

但是此程序有某些限制,您應該列入考量。備份與還原作業 會在同一台電腦上建立資料庫檔案的複本,因此每台電腦上由這些檔案佔用的磁碟空間會變成兩倍。此外,如果您的目錄包含數個 GB 的資料,這些檔案實際的複製作業可能耗費可觀的時間。如果您的磁碟空間有限,或您的資料庫檔案極大,請參閱使用最小磁碟空間的二進位複製

  1. 在新複本的目標機器上安裝 Directory Server,視需要建立伺服器的新實例,然後再根據二進位複製的限制來配置。
  2. 在您涉及此複本的複製拓樸中建立所有的複製協議。這會包括從提供者到此複本的協議,如果不是專屬用戶,則為從此複本到其用戶的協議。
  3. 選擇完整配置和初始化的複本 (與要初始化主機、集線器或用戶所用的複本相同),並根據使用主控台備份您的伺服器中的程序在此尾碼上執行正常備份。
  4. 將檔案從備份目錄複製或傳輸到目標電腦上的目錄,例如使用 ftp 指令。
  5. 根據從備份還原資料中的程序將檔案載入目標伺服器。
  6. 如果您已初始化多重主機複製案例中的新主機,請依照多重主機初始化後的交集中的程序進行,以確保新的複本將開始接受來自用戶端的更新作業。

使用最小磁碟空間的二進位複製

下列程序使用較少的磁碟空間及較短的時間,因為它不必為資料庫檔案製作備份。但是它會要求您停止被複製的伺服器,以確保資料庫檔案處於連貫的狀態。


注意

此程序不可用於重新初始化已參與多重主機複製案例的主機。它只可用於重新初始化用戶伺服器,或初始化新的主機伺服器。若要重新初始化現有的主機複本,請使用線上初始化、匯入 LDIF 檔案或依照不停止伺服器的二進位複製程序執行。


  1. 在新複本的目標機器上安裝 Directory Server,視需要建立伺服器的新實例,然後再根據二進位複製的限制來配置。
  2. 在您涉及此複本的複製拓樸中建立所有的複製協議。這會包括從提供者到此複本的協議,如果不是專屬用戶,則為從此複本到其用戶的協議。
  3. 停止即將初始化或重新初始化的目標伺服器,如啟動和停止 Directory Server 所述。
  4. 選擇一個與要初始化的複本相同類型 (可能為主機、集線器或用戶)、而且已完全配置並初始化的複本,並停止此伺服器。如果要複製多重主機配置中的主機複本,在停止主機之前您應該確定該主機已經完全更新為來自其他主機的最新變更。
  5. 移除所有來自目標伺服器的資料庫檔案,包括交易記錄檔、變更記錄檔和區域檔 (__db.xxx 檔)。除非檔案的位置被更改,否則資料庫檔案與交易記錄應位於 ServerRoot/slapd-serverID/db 目錄。
  6. 將所有資料庫檔案 (包括交易記錄) 從來源複本電腦複製或傳輸到目標電腦,例如使用 ftp 指令。除非檔案的位置被更改,否則資料庫檔案與交易記錄應位於 ServerRoot/slapd-serverID/db 目錄。
  7. 如果要初始化主機或集線器複本,您必須複製變更記錄內所有的檔案,這些檔案預設位於 ServerRoot/slapd-serverID/changelog 目錄。

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


啟用參考完整性外掛程式

如果您要使用參考完整性外掛程式,您必須在所有主機伺服器上啟用此外掛程式,但不必在集線器或用戶伺服器上啟用此外掛程式。請參閱將參考完整性用於複製


透過 SSL 複製

您可以配置涉及複製的 Directory Server,讓所有複製作業都透過 SSL 連線上進行。若要做此配置,請完成下列步驟:

  1. 將提供者與用戶伺服器都配置為使用 SSL。
  2. 如需詳細資訊,請參閱第 11 章「管理驗證和加密」


    備註

    • 如果提供者伺服器憑證是在 SSL 信號交換期間無法作為用戶端的 SSL 僅限於伺服器憑證,則透過 SSL 複製將會失敗。
    • 自我簽署的憑證目前不支援透過 SSL 複製。

  3. 如果用戶伺服器上的尾碼未配置複製,請依照啟用用戶複本所述啟用複製。
  4. 依照進階用戶配置中的程序將用戶上憑證項目的 DN 定義為另一個複製管理員。
  5. 如果提供者伺服器上的尾碼未配置複製,請依照啟用集線器複本啟用主機複本所述啟用複製。
  6. 在提供者伺服器上,建立新的複製協議,使更新透過安全 SSL 連接埠傳送給用戶。如需詳細說明,請依照建立複製協議中的程序進行。指定用戶伺服器上的安全連接埠,並選擇使用密碼或憑證的 SSL 選項。輸入您所選之 SSL 選項 (複製管理員或憑證) 的 DN。

完成配置複製協議後,提供者會透過 SSL 將所有複製更新訊息傳送給用戶,並且使用憑證 (如果您選擇該選項)。如果用戶初始化是透過主控台使用配置 SSL 的協議來執行,則用戶初始化也會使用安全連線。


透過 WAN 複製

Directory Server 5.2 引進了執行所有複製形式的功能,包括透過廣域網路 (WAN) 連接的電腦之間的多重主機複製 (MMR)。複製機制經過內部改良後,能讓提供者伺服器透過更高延遲及更低頻寬的網路,在合理的延遲內初始化及更新用戶。


備註

複製資料傳輸速率一定低於可用實體媒體允許的頻寬速率。如果複製之間的更新容量在實際上無法符合可用頻寬,使用調整將不會在更新負載過重的情況下導致複製 不一致。複製延遲與更新效能須視許多因素而定,包括 (但不限於):修改率、項目大小、伺服器硬體、平均延遲及平均頻寬。如果您對工作環境中的複製有疑問,請聯絡您的 Sun 專業服務代表。


複製機制的內部參數依預設值便能在 WAN 環境中有最佳效能,但如果您因為上述因素而有複製緩慢的問題,您或許想要試著調整視窗大小和群組大小參數。您也可以排定複製的時程,以避開網路尖峰時間, 因而改進整體的網路使用情形。最後,Directory Server 支援複製資料的壓縮以最佳化頻寬使用。

配置網路參數

下列兩個參數會決定複製機制如何將項目集合成群組,以更有效率地透過網路傳送,這兩個參數會影響提供者與用戶交換複製更新訊息及認可的方式。

對您所作的任何修改的結果進行監視,並進行相應的調整。如需指令,請參閱監視複製狀態

這兩個網路參數在每個複製協議中均可設定,讓您可以根據每個用戶特有的網路條件自訂複製效能。

您不必中斷複製即可修改視窗及群組大小參數:

  1. 選擇 Directory Server Console 上的 [配置] 標籤,展開 [資料] 節點與複製尾碼的節點。
  2. 請選擇尾碼下方的 [複製] 節點,並在右窗格中選擇您想要配置的複製協議,再按一下 [編輯]。
  3. 選擇 [複製協議] 對話方塊的 [網路] 標籤,輸入新的視窗大小值 (範圍介於 1 到 1000 之間),與群組大小值 (範圍介於 1 到 100 之間)。群組大小必須小於或等於視窗大小。
  4. 按一下 [確定],儲存新值並關閉 [複製協議] 對話方塊。
  5. 新的參數值在下一次將複製更新傳送到對應的用戶時,會立即生效。

排程複製活動

如果複本之間的立即同步化不是那麼急迫,則透過 WAN 複製資料的其中一種方式便是將更新排程在網路使用較不頻繁時進行。當網路可用率較高時,更新的執行速度也會顯著加快,而且複製訊息不會更進一步地阻塞已經高度使用的網路。

您可以透過複製協議個別為每個用戶排程於每天或每週執行更新:

  1. 在 Directory Server Console 最上層的 [配置] 標籤上,展開 [資料] 節點與複製尾碼的節點。
  2. 請選擇尾碼下方的 [複製] 節點,並在右窗格中選擇您想要配置的複製協議,再按一下 [編輯]。
  3. 選擇 [複製協議] 對話方塊的 [排程] 標籤,選擇每週排程旁的選項按鈕。
  4. 定義排程:
    1. 對於每週的更新,請選擇一週中要進行複製的一或多日的核取方塊。如果要進一步限制於這幾日內的複製條件,您可以選擇性地輸入時間範圍 (使用 24 小時制表示法)。
    2. 對於每日的更新,請按一下 [全部] 以每天進行複製,並輸入時間範圍 (使用 24 小時制表示法) 指定執行複製的時間。
    3. 請注意,時間範圍不能跨越午夜。

  5. 按一下 [確定],儲存新值並關閉 [複製協議] 對話方塊。
  6. 新的排程將立即生效,導致對應用戶的下一次複製更新會延遲到排程允許的第一個時間才執行。

資料壓縮

如要降低複製所使用的頻寬,您可以配置複製在更新用戶時,壓縮傳送的資料。複製機制使用 Zlib 壓縮程式庫。提供者和用戶都必須使用 Solaris 或 Linux 平台才能啟用壓縮。

只有在主機伺服器的複製協議上,設定 ds5ReplicaTransportCompressionLevel 屬性,才能配置複製壓縮。此屬性可使用下列值中的一個:

您應該依據經驗測試並選擇壓縮層級,為您預期的複製使用率,在 WAN 環境下帶來最佳的結果。您不能在網路延遲不明顯的 LAN (區域網路) 中設定此參數,因為壓縮和解壓縮的運算將使複製變慢。

例如,若要在 east.example.com 上使用最快速壓縮傳送複製更新至用戶,請使用下列 ldapmodify 指令:

ldapmodify -h host -p port -D "cn=Directory Manager" -w password
dn:cn=east.example.com:389,cn=replica,cn="suffixDN",
 cn=mapping tree,cn=config
changetype:modify
add:ds5ReplicaTransportCompressionLevel
ds5ReplicaTransportCompressionLevel: 3
^D

關於設定壓縮層級的詳細資訊,請參閱 Directory Server Administration Reference


修改複製拓樸

本節包含幾個用於管理現有複製拓樸的程序,例如編輯或移除複製協議、升級、降級或停用複本、強迫更新用戶以及管理變更記錄。

管理複製協議

您可以從主機尾碼的複製面板中管理複製協議,以變更協議中的驗證資訊、中斷傳給特定用戶的複製或將用戶從拓樸中移除。

變更複製管理員

您可以編輯複製協議,以變更用來連結用戶伺服器的複製管 理員身份。為避免中斷複製,您應該先在用戶上定義新的複製管理員項目或憑證項目,然後再修改複製協議。但如果複製因連結失敗而中斷,當您改正錯誤後,複製 機制將會在複製復原設定值的限制內,自動傳送所有必要的更新 (請參閱進階用戶配置)。

若要變更用戶用以通過驗證的複製管理員:

  1. 在 Directory Server Console 最上層的 [配置] 標籤上,展開 [資料] 節點和複製尾碼節點,並選擇尾碼下方的 [複製] 節點。
  2. 在右面板中,選擇要修改的複製協議,再按一下 [編輯]。
  3. 在 [複製協議] 對話方塊中,請選擇 [連線] 標籤。
  4. 狀態行會指示用戶伺服器的主機名稱與連接埠號碼。

  5. 修改 DN 與密碼欄位,以包含另一個複製管理員項目的 DN 或密碼,或用戶伺服器上憑證項目的 DN。
  6. 如果此複製協議使用透過安全連接埠的 SSL,您也可以按一下 [選項] 按鈕選擇安全驗證的類型。如果您用密碼進行連線,提供者將透過加密的 SSL 連線所指定的 DN 來使用簡單驗證。如果您用憑證進行連線,DN 欄位就是憑證項目的 DN,不需要密碼。
  7. 您無法將現有的複製協議從非安全驗證切換成安全驗證,反之亦然。若要用不同的安全性設定啟用複製,您必須建立另一個複製協議。

  8. 按一下 [確定]儲存您的變更。

複製複製協議

複製複製協議是一種很簡單的方法,能夠為大型複製拓樸中的提供者複本配置許多用戶:

  1. 在 Directory Server Console 最上層的 [配置] 標籤上,展開 [資料] 節點和複製尾碼節點,並選擇尾碼下方的 [複製] 節點。
  2. 從複製協議清單中,選擇要複製的協議。如果要用新的協議與用戶建立安全連線,您必須選擇也使用安全連接埠的現有協議。如果要建立新的非安全協議,您必須選擇非安全協議。
  3. 按一下 [編輯] 並瀏覽 [複製協議] 對話方塊的各個標籤,以確認此協議的配置。這些標籤上的配置將於下列各節說明:

  4. 在仍選擇同一個複製協議的情況下,按一下 [複製] 按鈕。
  5. 從清單中選擇新用戶的主機名稱與連接埠號碼,或按一下 [加入主機] 按鈕以使用不同的主機與連接埠。清單和 [加入主機] 對話方塊將只允許您選擇與複製的用戶協議相同安全性類型的用戶。
  6. 確定已選擇清單中的主機名稱,再按一下 [確定],為該用戶伺服器建立新的複製協議。
  7. 新的協議會複製現有伺服器的所有配置資訊。這表示這兩部伺服器必須擁有完全相同的複製管理員項目,使用相同的密碼。如果要修改新協議的配置 (例如,變更複製管理員 DN),請從清單中選擇該協議,再按一下 [編輯]。

停用複製協議

停用複製協議後,主機會停止傳送更新到指定的用戶。雖然到該伺服器的複製會停止,但仍會保留協議中所有的設定值。日後只要重新啟用該協議,即可繼續複製。如需有關中斷後繼續複製機制的資訊,請參閱下面的啟用複製協議

若要停用複製協議:

  1. 在 Directory Server Console 最上層的 [配置] 標籤上,展開 [資料] 節點和複製尾碼節點,並選擇尾碼下方的 [複製] 節點。
  2. 在右面板中,選擇要停用的複製協議。
  3. 在協議清單下方的方塊中選擇 [動作]>[停用協議]。
  4. 按一下 [是] 以確認要停用該複製協議。

清單中協議的圖示便會改變,以顯示其已停用。

啟用複製協議

啟用複製協議將恢復與指定用戶的複製。但如果複製的中斷時間已超過複製復原設定值所允許的時間,而且其他提供者未更新該用戶,則您必須重新初始化該用戶。複製復原設定值是此提供者變更記錄與用戶的清除延遲這兩項設定的大小及天數之最大值 (請參閱進階用戶配置)。

當中斷時間相當短,而且可以復原複製時,只要重新啟用協議,主機便會自動更新用戶。

若要啟用複製協議:

  1. 在 Directory Server Console 最上層的 [配置] 標籤上,展開 [資料] 節點和複製尾碼節點,並選擇尾碼下方的 [複製] 節點。
  2. 在右面板中,選擇要啟用的複製協議。
  3. 在協議清單下方的方塊中按一下 [啟用] 按鈕。
  4. 視需要重新初始化用戶複本。

刪除複製協議

刪除複製協議將停止對應用戶的複製,而且會移除有關該協議的所有配置資訊。日後若想恢復複製,請改為停用協議,如停用複製協議所述。

若要刪除複製協議:

  1. 在 Directory Server Console 最上層的 [配置] 標籤上,展開 [資料] 節點和複製尾碼節點,並選擇尾碼下方的 [複製] 節點。
  2. 在右面板中,選擇要刪除的複製協議。
  3. 按一下協議清單右邊的 [刪除] 按鈕。
  4. 按一下 [是] 以確認要刪除該複製協議。

升級或降級複本

升級或降級複本會改變複本在複製拓樸中的角色。專屬用戶可以升級成集線器,集線器可以升級成主機;主機可以降級成集線器,而集線器也可以降級成專屬用戶。但是主機不可以直接降級成用戶,同樣地,用戶也不可以直接升級成主機。

多重主機複製機制中的升級與降級功能讓拓樸非常具有彈性。原先由用戶複本服務的網站可能會因為成長,而需要具有幾個複本的集線器才能夠處理其負載。如果負載包含許多複本內容的修改,集線器便可以變成主機,以加快本機變更的速度,之後再將變更複製到其他網站上的其他主機。

若要升級或降級複本:

  1. 在 Directory Server Console 最上層的 [配置] 標籤上,展開 [資料] 節點和複製尾碼節點,並選擇尾碼下方的 [複製] 節點。
  2. 在右面板中,選擇 [變更]>[升級-降級複本] 功能表項目。
  3. 複製精靈將只讓您選擇允許的新角色,然後逐步指導您進行新複本角色的配置設定程序。您應該要知道下列的結果:
    • 將主機降級成集線器時,複本將變成唯讀,並配置為會傳送參照給其餘主機。新的集線器將保留其所有用戶,不論是集線器或專屬用戶。
    • 將單一主機降級成集線器將會建立沒有主機複本的拓樸。精靈是假設您即將定義新的主機,才允許您執行此降級動作。但是您最好是先加入新的主機成為多重主機,並讓它初始化後,再降級其他主機。
    • 將集線器降級成用戶時,將會刪除所有複製協議。如果集線器的用戶未由其他集線器或主機更新,該用戶將不再獲得更新。您應該在其他集線器或主機上建立新的協議,以更新這些用戶。
    • 將用戶升級成集線器時,便會啟用其變更記錄,而且您可以定義它與用戶的新協議。
    • 將集線器升級成主機時,複本將會接受修改要求,而且您可以定義它與其他主機、集線器或專用主機的新協議。

停用複本

停用複本會將它從複製拓樸中移除。它將不再獲得更新或傳送更新 (依其角色是主機、集線器或用戶而定)。停用提供者將刪除所有複製協議,而且如果重新啟用複本的話,所有複製協議都必須重新建立。

若要停用複本:

  1. 在 Directory Server Console 最上層的 [配置] 標籤上,展開 [資料] 節點和複製尾碼節點,並選擇尾碼下方的 [複製] 節點。
  2. 在右面板中,選擇 [變更]>[停用複製] 功能表項目。
  3. 在確認對話方塊中按一下 [是]。
  4. 或者,重設此尾碼的寫入權限及參照。停用複本後,這些設定值仍然會依原狀保留,例如停用的用戶仍然會傳送修改要求給它原先的主機複本。
  5. 若要修改寫入權限與參照,請在 [配置] 標籤上選擇此尾碼的節點,並在右面板的 [設定值] 標籤中進行修改。如需詳細資訊,請參閱設定存取權限及參照

移動變更記錄

變更記錄是指定提供者複本上所有修改的內部記錄,伺服器利用它在其他複本上重新執行修改。變更記錄的內容是由伺服器自動管理,而且將透過多重主機更新進行更新 (即使是在伺服器重新啟動之後)。

在舊版 Directory Server 中,變更記錄可透過 LDAP 存取,但現在則僅供伺服器內部使用。如果您有必須讀取變更記錄的應用程式,請使用回溯變更記錄外掛程式,以達到回溯相容性。如需詳細資訊,請參閱使用回溯變更記錄外掛程式

只有當系統管理員必須將檔案移到其他位置時 (例如當檔案所在的磁碟已滿時),才應該修改變更記錄。

當您停用變更記錄,或將變更記錄移到新位置時,變更記錄會重新初始化。如果變更記錄目錄變更時,有變更尚未複製到拓樸中的其他伺服器上,則您必須重新初始化拓樸中的所有用戶。如果變更記錄移動之前,所有變更都已複製 (也就是說,所有伺服器同步),就不需要重新初始化。

您必須用 Directory Server Console 移動變更記錄,絕不能使用作業系統的 renamemv 指令:

  1. 在 Directory Server Console 最上層的 [配置] 標籤上,選擇 [資料] 節點,再選擇右面板中的 [複製] 標籤。
  2. 在文字欄位中輸入新的位置。這是從現在起要儲存變更記錄的新路徑與目錄名稱。例如,將變更記錄從預設位置 ServerRoot/slapd-serverID/changelogdb 移到 ServerRoot/slapd-serverID/newchangelog
  3. 現有的變更記錄會從舊的位置刪除,新的變更記錄則保持在新的位置。

  4. 在 [複製] 標籤中按一下 [儲存]。
  5. 重新啟動 Directory Server。
  6. 初始化複本所述,重新初始化您的用戶。

保持複本同步

為了進行定期維護,在停止 Directory Server 進行複製作業後,如果它重新上線時,必須確定它會立即透過複製獲得更新。對於多重主機環境中的主機,目錄資訊必須由多重主機集合中的另一部主機進行更新。 若是其他狀況,在將集線器複本或專屬用戶設為離線狀態以進行維護後,當它們重新上線時,必須由主機複本進行更新。

本節說明複製重試演算法,以及如何不等候下一次重試便強迫發生複製更新。


備註

只有已設定複製,並且已初始化用戶時,才可使用本節所描述的程序。


複製重試演算法

當提供者嘗試複製到用戶失敗時,它會以遞增的時間間隔定期重試。重試模式如下:10、20、40、80、160 秒,然後五次 300 秒。提供者繼續重複相同的重試模式。

請注意,即使您已將複製協議配置成提供者複本與用戶複本永遠保持同步,也不足以將已離線超過 5 分鐘的複本立即回復到最新狀態。

為確保當伺服器恢復上線時目錄資訊會立即同步,您可以利用 Directory Server Console 或自訂的程序檔。

從主控台強迫複製更新

為確保當用戶 (或多重主機複製配置中的主機) 在經過一段時間之後回復上線時,會立即傳送複製更新,您可以在儲存最新版目錄資料的提供者上執行這些步驟:

  1. 在 Directory Server Console 最上層的 [配置] 標籤上,展開 [資料] 節點與主機複本的尾碼節點,並選擇尾碼下方的 [複製] 節點。
  2. 在右面板中顯示複製狀態資訊。

  3. 從要更新的用戶對應清單中選擇複製協議,再按一下 [動作]>[立即傳送更新]。
  4. 這樣會對儲存須更新之資訊的複本啟動複製。

用指令行強迫複製更新

從需要更新的用戶上,下列程序檔提示其提供者立即傳送複製更新。您可以複製此範例,並為它指定有意義的名稱,例如 replicate_now.sh。您必須為此範例中所列的變數提供實際的值。


備註

系統管理員必須執行此程序檔,因為只要離線的伺服器重新上線,便無法將它配置為自動執行。


#!/bin/sh
SUP_HOST=supplier_hostname
SUP_PORT=supplier_portnumber
SUP_MGRDN=supplier_directoryManagerDN
SUP_MGRPW=supplier_directoryManagerPassword
MY_HOST=consumer_hostname
MY_PORT=consumer_portnumber

ldapsearch -1 -h ${SUP_HOST} -p ${SUP_PORT} -D "${SUP_MGRDN}" \
           -w ${SUP_MGRPW} -b "cn=mapping tree, cn=config" \
           "(&(objectclass=nsds5replicationagreement) \
              (nsDS5ReplicaHost=${MY_HOST}) \
              (nsDS5ReplicaPort=${MY_PORT}))" \
           dn nsds5ReplicaUpdateSchedule > /tmp/$$

cat /tmp/$$ |
awk
BEGIN { s = 0 }
/^dn:/ { print $0;
  print "changetype:modify";
  print "replace:nsds5ReplicaUpdateSchedule";
  print "nsds5ReplicaUpdateSchedule: 0000-2359 0123456";
  print "-";
  print "";
  print $0;
  print "changetype:modify";
  print "replace:nsds5ReplicaUpdateSchedule";
  }
/^nsds5ReplicaUpdateSchedule:/ { s = 1; print $0; }
/^$/ {
  if ( $s == 1 )
    { print "-" ; print ""; }
  else
    { print "nsds5ReplicaUpdateSchedule: 0000-2359 0123456";
      print "-" ; print ""; };
  s = 0; }
' > /tmp/ldif.$$

echo "Ldif is in /tmp/ldif.$$"
echo

ldapmodify -c -h ${SUP_HOST} -p ${SUP_PORT} -D "${SUP_MGRDN}" \
           -w ${SUP_MGRPW} -f /tmp/ldif.$$

如果希望更新作業透過 SSL 連線進行,您必須用適當的參數與值修改程序檔中的 ldapmodify 指令。如需詳細資訊,請參閱將 LDAP 用戶端配置為使用安全性


與舊版進行複製

本節提供關於如何配置與舊版 Directory Server 進行複製的資訊。

Directory Server 5.2 及 Directory Server 5.1 之間的複製

就任何複製配置而言,Directory Server 5.1 與 5.2 完全相容,但下列情況例外:

Directory Server 5.2 及 Directory Server 4.x 之間的複製

Directory Server 在下列條件下,5.2 可涉及含 4.x 版 Directory Server 的複製案例:

能夠使用 Directory Server 5.2 作為舊 Directory Server 用戶的主要優點是,能方便遷移複製環境。如需關於遷移複製環境所遵循之步驟的詳細資訊,請參閱 Directory Server Installation and Migration Guide


將 Directory Server 5.2 配置為 Directory Server 4.x 的用戶

如果您計劃使用 Directory Server 5.2 作為 4.x 版 Directory Server 的用戶,您必須依下列方式配置:

  1. 啟用主機複本所述,將複本啟用為主機 複本。即使複本是 4.x 提供者的用戶,都必須配置為主機複本。
  2. 在 Directory Server Console 最上層的 [配置] 標籤上,展開 [資料] 節點和複製尾碼節點,並選擇尾碼下方的 [複製] 節點。
  3. 在右面板中,為此複本選擇 [變更]>[啟用 4.x 相容性];或者,選擇 [物件] 功能表中的 [啟用 4.x 相容性]。
  4. 在 [啟用 4.x 相容性] 視窗中,指定舊提供者伺服器用於連結的連結 DN 與密碼。您在這堳定的連結 DN 和密碼只能用於繼承複製。因此不能使用現有的 DN,或 5.x 複製中使用的預設複製管理員。
  5. 如果使用「複製精靈」配置繼承複製,您指定的連結 DN 和密碼會正確地儲存在繼承複製配置項目中。如果從指令行手動配置繼承複製,必須使用 nsslapd-legacy-updatednnsslapd-legacy-updatepw 屬性,指定繼承複製配置項目中的連結 DN 和密碼。

    繼承複製只能與簡單驗證,而不能與使用憑證的安全驗證一起使用。

  6. 按一下 [確定]。現在此用戶複本即已準備好接收來自舊提供者的更新。
  7. 請確定 5.2 複本伺服器上的模式定義了將從 4.x 版主機複製的內容中的所有屬性和物件類別。
  8. 匯入 4.x 版主機上建立的 LDIF 複本檔案,以初始化 5.2 複本。在此檔案中的第一個項目包含有 4.x 複製機制所需的 copiedfrom 屬性。

在伺服器上啟用 4.x 相容性會配置預設安裝的舊複製外掛程式。此外掛程式會處理來自舊提供者的更新,並對複製尾碼的內容執行更新。


備註

只要 4.x 相容性為啟用狀態,此複本會為來自用戶端的任何修改要求傳回參照。即使 Directory Server 5.2 配置為主機複本,它都不會在此尾碼上執行修改要求,而是會傳回 4.x 提供者伺服器的參照。


為完成舊複製設定,您必須立即將舊提供者配置為複製到 5.2 Directory Server。如需關於在 4.x Directory Server 上配置複製協議的說明,請參閱舊的 Directory Server 所提供的文件。

更新 Directory Server 5.1 模式

在 Directory Server 5.2 中,模式檔案 11rfc2307.ldif 已改變,且遵循 RFC 2307 規則 (http://www.ietf.org/rfc/rfc2307.txt)。在配置或啟用 5.2 版和 5.1 版伺服器間的複製前,您必須更新 5.1 伺服器上的模式。在這兩個版本的伺服器上,模式檔案位於 ServerRoot/slapd-serverID/config/schema/


更新 Directory Server 5.1 模式
  1. 從 5.2 伺服器上複製檔案 11rfc2307.ldif 至 5.1 版伺服器。
    • 如果您有 5.1 版伺服器的 Solaris 套件軟體安裝程式,您必須刪除過時的 10rfc2307.ldif 檔案。
    • 如果您有 5.1 版伺服器其他平台的壓縮檔安裝程式,您將覆寫現有的 11rfc2307.ldif 檔案。
  2. 下列模式檔案在此次變更中受到影響,必須從 5.2 版伺服器上複製,覆寫至 5.1 版伺服器上現有的檔案:
    • 20subscriber.ldif
    • 30ns-common.ldif
    • 50ns-admin.ldif
    • 50ns-certificate.ldif
    • 50ns-directory.ldif
    • 50ns-legacy.ldif
    • 50ns-mail.ldif
    • 50ns-mlm.ldif
    • 50ns-msg.ldif
    • 50ns-netshare.ldif
  3. 重新啟動 5.1 版伺服器,然後繼續進行複製配置和複本初始化。由於同步化其他模式元素,有些模式屬性可能在伺服器間複製,這是複製機制的正常行為。
  4. 您可能必須更新依賴舊版本模式的任何應用程式。新的 11rfc2307.ldif 檔案做了下列修改:
    • automountautomountInformation 屬性已被移除。
    • ipHost 物件類別允許屬性的清單不再包含有 o $ ou $ owner $ seeAlso $ serialNumber
    • ieee802Device 物件類別強制屬性的清單不再包含有 cn
    • ieee802Device 物件類別允許屬性的清單不再包含有 description $ l $ o $ ou $ owner $ seeAlso $ serialNumber
    • bootableDevice 物件類別強制屬性的清單不再包含有 cn
    • bootableDevice 物件類別允許屬性的清單不再包含有 description $ l $ o $ ou $ owner $ seeAlso $ serialNumber
    • nisMap 物件類別的 OID 現在是 1.3.6.1.1.1.2.9


使用回溯變更記錄外掛程式

回溯變更記錄外掛程式描述

回溯變更記錄是一個 LDAP 用戶端用來維護與 Directory Server 4.x 版本應用程式相容的外掛程式。回溯變更記錄儲存在 cn=changelog 尾碼下與 Directory Server 變更記錄分開的資料庫中。

回溯變更記錄可以在獨立伺服器或複製拓樸中的每一台伺服器上啟用。當在伺服器上啟用回溯變更記錄時,依據預設將記錄該伺服器上所有尾碼的更新。回溯變更記錄可以配置為僅記錄特定尾碼的更新。

關於回溯變更記錄的詳細資訊

如需關於在複製拓樸中使用回溯變更記錄的資訊,以及使用回溯變更記錄外掛程式之限制的資訊,請參閱 Directory Server Deployment Planning Guide 中的「Replication and the Retro Change Log」。

如需關於回溯變更記錄中項目屬性的資訊,請參閱 Directory Server Administration Reference 中「Object Class Reference」的 changeLogEntry

如需關於回溯變更記錄屬性的資訊,請參閱 Directory Server Administration Reference 中的「Attribute Reference」。

啟用回溯變更記錄外掛程式

回溯變更記錄外掛程式的配置資訊儲存在 dse.ldifcn=Retro Changelog Plugin,cn=plugins,cn=config 項目中。


使用 Directory Server Console 啟用回溯變更記錄外掛程式
  1. 在 Directory Server Console 最上層的 [配置] 標籤上,展開 [外掛程式] 節點,並向下捲動以選擇 [Retro Changelog Plugin]。
  2. 在右面板中核取 [啟用外掛程式] 核取方塊,再按一下 [儲存]。
    若要停用外掛程式,請清除此核取方塊並按一下 [儲存]。

下圖顯示回溯變更記錄外掛程式配置螢幕。

追溯變更記錄配置螢幕畫面

  1. 啟用或停用外掛程式後,請重新啟動 Directory Server。

使用指令行啟用回溯變更記錄外掛程式
  1. 使用下列指令修改回溯變更記錄外掛程式配置項目:
  2. ldapmodify -h host -p port -D "cn=Directory Manager" -w password
    dn:cn=Retro Changelog Plugin,cn=plugins,cn=config
    changetype:modify
    replace:nsslapd-pluginenabled
    nsslapd-pluginenabled:on
    ^D

  3. 重新啟動伺服器。如需相關資訊,請參閱啟動和停止 Directory Server

配置回溯變更記錄以記錄特定尾碼的更新

當在伺服器上啟用回溯變更記錄時,依據預設將記錄該伺服器上所有尾碼的更新。本節描述如何配置回溯變更記錄以僅記錄特定尾碼的更新。


使用 Directory Server Console 配置回溯變更記錄以記錄特定尾碼的更新
  1. 使用 Directory Server Console 啟用回溯變更記錄外掛程式所述,啟用回溯變更記錄外掛程式。
  2. 在螢幕的右邊,按一下 [加入]。
  3. 一個名為 Argument 的欄位會出現。

  4. 使用下列語法輸入您要記錄之尾碼的名稱:
  5. suffixes="suffix1","suffix2"

  6. 按一下 [儲存]。
  7. 啟動和停止 Directory Server 所述,重新啟動伺服器。

使用指令行配置回溯變更記錄以記錄特定尾碼的更新
  1. 使用下列指令修改回溯變更記錄外掛程式配置項目:
  2. ldapmodify -h host -p port -D "cn=Directory Manager" -w password
    dn:cn=Retro Changelog Plugin,cn=plugins,cn=config
    changetype:modify
    add:nsslapd-pluginarg2
    nsslapd-pluginarg2:suffixes="suffix1","suffix2"
    ^D

  3. 重新啟動伺服器。如需相關資訊,請參閱啟動和停止 Directory Server

配置回溯變更記錄以記錄已刪除項目的屬性

本節描述當項目被刪除時,如何配置回溯變更記錄以記錄該項目的特定屬性。


使用 Directory Server Console 配置回溯變更記錄以記錄已刪除項目的屬性
  1. 使用 Directory Server Console 啟用回溯變更記錄外掛程式所述,啟用回溯變更記錄外掛程式。
  2. 在螢幕的右邊,按一下 [加入]
  3. 一個名為引數的欄位會出現。

  4. 使用下列語法輸入您要記錄之屬性的名稱:
  5. deletedentryattributes=description,givenname

  6. 按一下 [儲存]
  7. 啟動和停止 Directory Server 所述,重新啟動伺服器。

使用指令行配置回溯變更記錄以記錄已刪除項目的屬性
  1. 使用下列指令修改回溯變更記錄外掛程式配置項目:
  2. ldapmodify -h host -p port -D "cn=Directory Manager" -w password
    dn:cn=Retro Changelog Plugin,cn=plugins,cn=config
    changetype:modify
    add:nsslapd-pluginarg3
    nsslapd-pluginarg3:deletedEntryAttributes=attribute1,attribute2
    ^D

  3. 重新啟動伺服器。如需相關資訊,請參閱啟動和停止 Directory Server

調整回溯變更記錄

變更記錄中的項目可在指定的時間後自動移除。若要配置在一段時間後自動將項目從變更記錄中刪除,您必須在 cn=Retro Changelog Plugin、 cn=plugins、 cn=config 項目中設定 nsslapd-changelogmaxage 配置屬性。此屬性只能從指令行設定,例如:

ldapmodify -h host -p port -D "cn=Directory Manager" -w password
dn:cn=Retro Changelog Plugin,cn=plugins,cn=config
changetype:modify
replace:nsslapd-changelogmaxage
nsslapd-changelogmaxage:IntegerTimeunit
^D

其中 Integer 代表一個數字,而 Timeunit 可為下列其中一個值:s 代表秒、m 代表分鐘、h 代表小時、d 代表日或 w 代表星期。IntegerTimeunit 變數之間沒有空格,例如:

nsslapd-changelogmaxage:2d

在變更記錄的下一步作業中,會調整回溯變更記錄。

存取回溯變更記錄

變更記錄支援搜尋作業。它已針對包含下列格式之篩選條件的搜尋最佳化:

(&(changeNumber>=X)(changeNumber<=Y))

一般而言,您不應該對回溯變更記錄執行加入或修改作業,但您可以刪除項目以調整變更記錄的大小;唯一需要對回溯變更記錄執行修改作業的機會是修改預設存取控制策略。

建立回溯變更記錄時,會預設套用下列存取控制策略:

您不應該將讀取存取授與匿名使用者,因為變更記錄項目內可能包含對敏感資料 (例如密碼) 的修改。如果連驗證使用者都不被允許檢視記錄內容,您可能希望進一步限制存取回溯變更記錄的內容。

若要修改套用在回溯變更記錄的預設存取控制策略,您應該修改 cn=changelog 項目的 aci 屬性。如需關於設定 aci 屬性的詳細資訊,請參閱第 6 章「管理存取控制」


監視複製狀態

您可以使用新的指令行工具及 Directory Server Console 監視複製狀態。

指令行工具

有三個新的指令行工具可用於監視您的複製部署:

這些工具位在下列目錄內:

ServerRoot/shared/bin

Directory Server Man Page Reference 提供這些工具的完整指令行語法及使用範例。

複製狀態標籤

若要在 Directory Server Console 中檢視複製狀態摘要:

  1. 在 Directory Server Console 上層的 [狀態] 標籤上,選擇 [複製] 節點。
  2. 右面板會顯示表格,表格中包含為此伺服器配置之每個複製協議的相關資訊。

  3. 如果要監視複製狀態,請選擇 [繼續重新整理] 核取方塊。例如,您會看到複本何時完成初始化。
  4. 如果您要判斷主機上尚未複製到用戶的最後一次修改,請按一下 [擱置變更數] 按鈕。系統會警告您此作業可能會耗費相當長的時間,並請您確認。判斷擱置變更數需要下載更新的用戶記錄,並將它與主機的變更記錄比較。如果記錄非常多,此作業可能會耗費很多時間與伺服器資源。
  5. 您可以按一下欄標頭並調整其大小,來修改表格佈局。您也可以按一下 [檢視選項] 按鈕,並且只選擇要查看的項目,來修改表格內容。下列的 表 8-1 說明您可選擇表格中要為此伺服器上的每個協議顯示的複製參數。

    表 8-1 Directory Server Console [狀態] 標籤上的複製參數 

    表格標頭

    描述

    尾碼

    舉出正在複製的尾碼與子尾碼。

    遠端複本

    包含用戶伺服器的主機名稱與連接埠。

    描述

    包含在此複製協議中提供的描述字串。

    狀態

    表示協議是否已停用、正初始化用戶,或透過增量更新進行正常複製。

    摘要

    包含最近事件 (初始化或更新的開始或結束) 以及所接收的最新訊息。

    傳送更新

    自啟用複製或重新啟動伺服器起,傳送到用戶的個別更新累積總數。

    最後更新開始

    表示最近一次複製更新的開始時間。

    最後更新結束

    指示最近一次複製更新的結束時間。

    最後更新訊息

    提供最近一次複製更新的狀態。

    最後初始化訊息

    提供用戶最後一次的初始化狀態。

    最後初始化開始

    指示用戶複本最近一次初始化的開始時間。

    最後初始化結束

    指出用戶複本最近一次初始化的結束時間。


解決一般複製衝突

多重主機複製使用不嚴格的一致性複製模式。這表示可以同時在不同伺服器上修改相同的項目。因此在兩部伺服器之間傳送更新時,便需要解決衝突的變更。解決衝突多半會自動執行,並以每部伺服器上變更相關的時間戳記為準。以最近的變更優先。

然而,有些情況必須透過手動操作,才能解決衝突的變更。若項目由無法由複製處理自動解決的變更衝突,則該項目會包含 nsds5ReplConflict 作業屬性作為衝突標示。

請定期搜尋包含此屬性的項目,以找出發生衝突的項目。例如,您可以使用下列 ldapsearch 指令:

% ldapsearch -h host -p port -D "cn=Directory Manager" -w   password \
-b "dc=example,dc=com" "(nsds5ReplConflict=*)"

請注意,預設狀況下 nsds5ReplConflict 屬性會編製索引。

解決命名衝突

如果在伺服器互相複製變更之前建立有相同 DN 的項目,則可能在不同的主機上建立該項目。複製時,衝突解決機制將自動重新命名所建立的第二個項目。

在項目的 DN 中,加入操作屬性 nsuniqueid 指定的唯一識別符,重新命名有 DN 命名衝突的項目。例如,如果同時在兩個主機上建立項目 uid=bjensen,ou=People, dc=example,dc=com,複製後兩個主機上會有下列兩個項目:

第二個項目必須重新命名,使它擁有有用的 DN。您可以刪除衝突的項目,然後再以不相衝突的名稱加入。然而,保持項目最安全的作法是在建立時就重新命名它。重新命名程序須視命名屬性是單值或多重值屬性而定。每個程序分別說明如下。

重新命名多重值命名屬性的項目

若要重新命名具有多重值命名屬性的衝突項目:

  1. 保留舊的 RDN 值時,重新命名項目。例如:
  2. ldapmodify -h host -p port -D "cn=Directory Manager" -w password
    dn:nsuniqueid=66446001-1dd211b2+uid=bjensen,dc=example,dc=com
    changetype:modrdn
    newrdn:uid=NewValue
    deleteoldrdn: 0
    ^D

    您無法在此步驟中刪除舊的 RDN 值,因為它同時含有無法刪除的 nsuniqueid 操作屬性。

  3. 移除命名屬性的舊 RDN 值和衝突標示屬性。例如:
  4. ldapmodify -h host -p port -D "cn=Directory Manager" -w password
    dn:uid=NewValue,dc=example,dc=com
    changetype:modify
    delete:uid
    uid:bjensen
    -
    delete:nsds5ReplConflict
    ^D

重新命名單值命名屬性的項目

命名屬性為單值時,例如 dc (網域元件),您不能只是重新命名項目為相同屬性的其他值。而是必須為它指定一個暫時名稱。

  1. 用不同的命名屬性為項目重新命名,並保留舊的 RDN。例如:
  2. ldapmodify -h host -p port -D "cn=Directory Manager" -w password
    dn:nsuniqueid=66446001-1dd211b2+dc=HR,dc=example,dc=com
    changetype:modrdn
    newrdn:o=TempName
    deleteoldrdn: 0
    ^D

    您無法在此步驟中刪除舊的 RDN 值,因為它同時含有無法刪除的 nsuniqueid 操作屬性。

  3. 將所需的命名屬性變更為唯一值,然後移除衝突標示屬性。例如:
  4. ldapmodify -h host -p port -D "cn=Directory Manager" -w password
    dn:o=TempName,dc=example,dc=com
    changetype:modify
    replace:dc
    dc:uniqueValue
    -
    delete:nsds5ReplConflict
    ^D

  5. 將項目重新命名為預期的命名屬性。例如:
  6. ldapmodify -h host -p port -D "cn=Directory Manager" -w password
    dn:o=TempName,dc=example,dc=com
    changetype:modrdn
    newrdn:dc=uniqueValue
    deleteoldrdn: 1
    ^D

藉由將 deleteoldrdn 屬性的值設為 1,可刪除暫時的屬性值配對 o=TempName。如果要保留此屬性,您可以將 deleteoldrdn 屬性值設為 0

解決遺留項目衝突

當複製刪除的作業時,若用戶伺服器發現被刪除的項目還有子項目,則衝突解決程序會建立接合項目,以避免目錄中有遺留的項目。

同樣地,當複製加入作業時,若用戶伺服器找不到父項目,則衝突解決程序會建立代表父項目的接合項目,使新項目不會成為遺留項目。

接合項目是包含物件類別 glueextensibleObject 的暫時項目。接合項目可以使用不同的方式建立:

解決潛在的交互操作性問題

為了讓需要屬性唯一性的這類應用程式 (如郵件伺服器) 能夠具有交互操作性,您可能必須限制存取包含 nsds5ReplConflict 屬性的項目。如果不限制存取這些項目,只需要一個屬性的應用程式將同時挑選原始項目與包含 nsds5ReplConflict 的衝突解決項目,導致作業失敗。

若要限制存取,您必須使用下列指令修改授與匿名讀取存取的預設 ACI:

ldapmodify -h host -p port -D "cn=Directory Manager" -w password
dn:dc=example,dc=com
changetype:modify
delete:aci
aci:(target ="ldap:///dc=example,dc=com")
 (targetattr !="userPassword"
 (version 3.0;acl "Anonymous read-search  access";
 allow (read, search, compare)(userdn = "ldap:///anyone");)
-
add:aci
aci:(target="ldap:///dc=example,dc=com")
 (targetattr!="userPassword")
 (targetfilter="(!(nsds5ReplConflict=*))")(version 3.0;acl
 "Anonymous read-search access";allow (read, search, compare)
 (userdn="ldap:///anyone");)
^D

新的 ACI 將會防止包含 nsds5ReplConflict 屬性的項目傳回到搜尋結果中。



上一頁      目錄      索引      下一頁     


文件號碼 819-2014。   Copyright 2005 Sun Microsystems, Inc. 版權所有。