Sun Java(TM) System Directory Server 5 2004Q2 管理指南 |
第 8 章
管理複製複製是自動將目錄內容從一個 Directory Server 複製到另一個或多個 Directory Server 的機制。任一種寫入作業 - 加入、修改或甚至刪除項目 - 都會自動對映到其他 Directory Server。如需關於複製概念、複製案例以及目錄佈署中複製規劃方式等完整說明,請參閱《Directory Server Deployment Planning Guide》Chapter 6 "Understanding Replication" 。
Directory Server 5.2 包括以下新的複製功能:
本章描述為了設定各種複製案例所要執行的工作,而且包含以下主題:
簡介複製組態的配置工作相當複雜。開始之前,您應該充分瞭解組織即將佈署複製的方式,例如,要使用單一主機、多重主機還是有集線器的階層式複製。複製的單位是尾碼或子尾碼:屬於該尾碼的所有項目將會一起複製。在您計劃的部署中,您必須根據尾碼所包含的資料來識別主機、集線器或專屬用戶。
伺服器上複製的尾碼稱為複本。主機是指接受來自用戶端的讀寫作業的複本。集線器與專屬用戶是只透過複製機制接收更新的唯讀複本;集線器會從主機或另一個集線器接收更新,然後轉送給另一個集線器或專屬用戶。專屬用戶則只接收來自用戶或集線器的更新。
下列三個圖表顯示一般複製案例中,複本之間的關係。
圖 8-1 單一主機複製
圖 8-2 有集線器的階層式複製
圖 8-3 多重主機複製
本文件也使用供應商與用戶等用語表示複製協議中兩個參與伺服器的角色。供應商是傳送複製更新的伺服器,用戶則是接收複製更新的伺服器。上圖所顯示的關係如下:
許多複製設定值適用於協議中供應商或用戶角色的複本,不論其類型為何。
配置複製的步驟摘要下列步驟假設您要複製單一尾碼。如果您要複製多個尾碼,請在每部伺服器上同時進行相同的配置。換句話說,您可以重複每個步驟在多重尾碼上配置複製。
若要配置任何複製拓樸,依照下列順序進行:
選擇複製管理員設定複製時其中一項重要的工作便是:選擇供應商在傳送複製更新時用來與用戶伺服器連結的項目,此項目稱為複製管理員。所有含有接收更新的尾碼之伺服器,必須至少擁有一個複製管理員項目。
Directory Server 有預設複製管理員項目,此項目可用於每一台伺服器;它的 DN 是 cn=Replication Manager,cn=replication,cn=config。
對於簡單的複製案例,建議您使用預設的複製管理員。複製精靈會自動用此項目配置用戶複本,因而簡化複本的部署工作。
如果未定義密碼,複製精靈會提示您為預設複製管理員設定密碼。日後若要變更密碼:
如果不使用預設複製管理員,您可以建立任何新項目作為複製管理員。例如,您可能想讓每個複製管理員項目,對每個複製的尾碼各有不同的密碼。另一個自行建立複製管理員的原因,是為了支援不同的複製驗證模式,例如透過 SSL 使用憑證。
複製管理員項目必須包含您在定義複製協議時,所選擇的驗證方法需要的屬性。例如,預設複製管理員是一個 person 物件類別,可讓 userPassword 屬性進行簡單驗證。如需關於使用憑證連結複製管理員的詳細資料,請參閱「透過 SSL 複製」。
此複製管理員項目不應該位於用戶伺服器的複製尾碼中。適合定義複製管理員的位置在 cn=replication,cn=config 中。
如果您從指令行手動建立新的複製管理員,您必須透過修改複製組態項目的 nsDS5ReplicaBindDN 屬性指定客戶的連結 DN。
如果您正在使用原來的複製,複製管理員項目上會有其他限制。如需詳細資訊,請參閱「將 Directory Server 5.2 設定為 Directory Server 4.x 的用戶」。
為每個用戶選好複製管理員後,執行下列步驟:
- 寫下或記住您所選擇或建立的複製管理員 DN。稍後在此用戶的供應商上建立供應商與此用戶的複製協議時,會需要此 DN 及其密碼。
- 如果您定義密碼到期策略,您必須記住排除複製管理員,否則當密碼到期時,將無法複製。若要讓複製管理員項目的密碼不會到期,請建立密碼不會到期的密碼策略,再將它指定給複製管理員項目。如需詳細資訊,請參閱「管理個別密碼策略」。
配置專屬用戶專屬用戶是複製尾碼的唯讀複本。它會接收來自連結為複製管理員之伺服器的更新,以進行變更。配置用戶伺服器的工作包括準備空白尾碼以儲存複本,並使用複製精靈啟用該尾碼上的複製。可選用的進階組態包括選擇不同的複製管理員、設定參照或設定清除延遲。
下列各節提供在伺服器上配置一個專屬用戶複本的步驟。請在包含指定尾碼之專屬用戶複本的每部伺服器上重複所有程序。
為用戶複本建立尾碼
如果用戶上還沒有空白尾碼,請使用與預訂主機複本相同的 DN 建立一個空白尾碼。如需說明,請參閱「建立尾碼」。
如果尾碼存在而且不是空白,則其內容會在從主機初始化複本時遺失。
啟用用戶複本
複製精靈簡化了啟用專屬用戶複本的工作:
複製狀態現在顯示複製已經準備好接收更新,而且在左窗格中的圖示會變更以反映這項變化。
進階用戶組態
依預設值,複製精靈會將複本設為使用預設的複製管理員。如果您想要使用不同的複製管理員項目,則必須設定進階組態。您也可以使用此對話方塊,設定修改和清除延遲的參照。
- 在 Directory Server Console 最上層的 [組態] 標籤上,展開 [資料] 節點和您想要配置尾碼的節點,然後選擇尾碼下方的 [複製] 節點。
- 在右面板中,按一下 [進階] 按鈕,顯示 [進階複本設定值] 對話方塊。
- 在 [連結 DN] 標籤上,使用 [加入] 和 [刪除] 按鈕,建立有效複製管理員的 DN 清單。接著供應商可以於與此複本之間的協議內來使用任何一個 DN。您可利用輸入新 DN 的名稱或瀏覽目錄來加入新的 DN。
若要透過 SSL 使用憑證來配置複製,請輸入憑證項目的 DN 作為其中一個複製管理員。
- 當您完成或選取更進階組態的 [選用] 標籤時,請按一下 [確定]。
- 在 [進階複本設定值] 對話方塊的 [選用] 標籤上,LDAP URL 清單會指定傳送給此用戶之修改要求的額外參照。使用 [加入] 或 [刪除] 按鈕,建立 LDAP URL 清單。
複製機制會自動配置用戶傳回複製拓樸中所有已知主機的參照。這些預設參照假設用戶端會在一般連線上使用簡單驗証。如果想要利用安全連線的 SSL 將與主機連結的選項提供給用戶端,請加入使用安全 port 號碼之格式 ldaps://servername:port 的參照。(如果主機只是為了安全連線而配置,URL 將依預設值指向安全的連接埠。)
如果您已經加入一或多個 LDAP URL 作為參照,則選擇清單下方的核取方塊時,會強迫用戶為這些 LDAP URL 獨佔地傳送參照,而非為主機複本。例如,如果您要用戶端永遠被參照到主機伺服器上的安全連接埠而不是預設連接埠,請建立這些安全連接埠的 LDAP URL 清單,並選取此核取方塊。如果您想要指定特定的主機,或指定應該處理所有更新的 Directory Server 代理,則您也可以使用獨占參照。
- 此外,在 [選用] 標籤上,您也可以變更清除延遲。
用戶伺服器儲存有關複本內容更新的內部資訊,而清除延遲參數則指定其保留此資訊的時間,這與其供應商伺服器上變更記錄的 MaxAge 參數有關。在兩個參數中,較短的參數可決定兩部伺服器間的複製在停用或當機後仍能回復正常的最長時間。預設值是 7 天,這已足夠大部份情況使用。
- 按一下 [確定] 儲存此複本的進階複製組態。
配置集線器集線器複本同時作為用戶與主機,將複製資料進一步分散給更多用戶。集線器複本接收來自供應商的複製更新,並將複製更新傳給其用戶。集線器複本不接受修改,而是將參照傳回給主機。
配置集線器伺服器的工作包括準備空白的尾碼以儲存複本,並使用複製精靈啟用該尾碼上的複製。可選用的進階組態包括選擇不同的複製管理員、設定參照、設定清除延遲及設定變更記錄參數。
下列各節提供設定一個集線器伺服器的步驟。請在包含指定尾碼之集線器複本的每部伺服器上重複所有程序。
為集線器複本建立尾碼
如果集線器伺服器上還沒有空白尾碼,請用與預訂主機複本相同的 DN 建立一個空白尾碼。如需說明,請參閱「建立尾碼」。
如果尾碼存在而且不是空白,則其內容會在從主機初始化複本時遺失。
啟用集線器複本
複製精靈簡化了啟用集線器複本的工作:
- 在 Directory Server Console 最上層的 [組態] 標籤上,展開 [資料] 節點與要設為集線器複本的尾碼節點,然後選擇尾碼下方的 [複製] 節點。
在右面板中顯示複製狀態資訊。
- 按一下 [啟用複製] 按鈕開始複製精靈。
- 選擇 [集線器複本] 單選按鈕,再按一下 [下一步] 繼續。
- 如果尚未如此做,則會提示您選擇變更日誌檔。預設變更日誌檔在文字欄位中顯示。如果不想要使用預設,請輸入變更記錄的檔名,或按一下 [瀏覽] 顯示檔案選擇器。
如果已經啟用變更記錄,精靈會略過此步驟。
- 按一下 [下一步]。如果尚未如此做,則會提示您輸入並確認預設複製管理員的密碼。在每一個欄位中輸入相同的密碼,再按一下 [下一步] 繼續。
如果預設複製管理員已經定義密碼,精靈會略過此步驟。
- 複製精靈於更新複製組態同時,也會顯示狀態訊息。完成時,請按一下 [關閉]。
複製狀態現在顯示複製已經準備好接收更新,而且在左窗格中的圖示會變更以反映這項變化。
進階集線器組態
集線器伺服器作為供應商時需要變更記錄,而精靈會將集線器複本設為使用預設的變更記錄設定值。若要修改這些設定值,請執行下列步驟:
複製精靈也使用預設的複製管理員。如果已經建立想要使用的不同複製管理員項目,則需要設定進階組態。您也可以使用此對話方塊,設定修改和清除延遲的參照。
- 在 Directory Server Console 最上層的 [組態] 標籤上,展開 [資料] 節點和您想要配置尾碼的節點,然後選擇尾碼下方的 [複製] 節點。
- 在右面板中,按一下 [進階] 按鈕,顯示 [進階複本設定值] 對話方塊。
- 在 [連結 DN] 標籤上,使用 [加入] 和 [刪除] 按鈕,建立有效複製管理員的 DN 清單。接著供應商可以於與此複本之間的協議內來使用任何一個 DN。您可利用輸入新 DN 的名稱或瀏覽目錄來加入新的 DN。
若要透過 SSL 使用憑證來配置複製,請輸入憑證項目的 DN 作為其中一個複製管理員。
- 當您完成或選取更進階組態的 [選用] 標籤時,請按一下 [確定]。
- 在 [進階複本設定值] 對話方塊的 [選用] 標籤上,LDAP URL 清單會指定傳送給此集線器之修改要求的額外參照。使用 [加入] 或 [刪除] 按鈕,建立 LDAP URL 清單。
複製機制可自動配置集線器,以傳回複製拓樸中所有已知主機的參照。這些預設參照假設用戶端會在一般連線上使用簡單驗証。如果想要利用安全連線的 SSL 將與主機連結的選項提供給用戶端,請加入使用安全 port 號碼之格式 ldaps://servername:port 的參照。
如果您已經加入一或多個 LDAP URL 作為參照,則選擇清單下方的核取方塊時,會限制伺服器只為這些 LDAP URL 傳送參照,而非為主機複本。例如,如果您要用戶端永遠被參照到主機伺服器上的安全連接埠而不是預設連接埠,請建立這些安全連接埠的 LDAP URL 清單,並選取此核取方塊。如果您想要指定特定的主機,或指定應該處理所有更新的 Directory Server 代理,則您也可以使用獨占參照。
- 此外,在 [選用] 標籤上,您也可以變更清除延遲。
集線器伺服器儲存有關複本內容更新的內部資訊,而清除延遲參數則指定其保留這些資訊的時間,這與供應更新之伺服器上的變更記錄 (不是它自己的變更記錄) 的 MaxAge 參數有關。在兩個參數中,較短的參數可決定兩部伺服器間的複製在停用或當機後仍能回復正常的最長時間。預設值是 7 天,這已足夠大部份情況使用。
- 按一下 [確定] 儲存此複本的進階複製組態。
配置主機複本主機複本包含資料的主要複本,並先將所有修改集中之後,再將更新傳給其他所有複本。主機會記錄所有變更,檢查用戶狀態,並在需要時將更新傳給用戶。在多重主機複製中,主機複本也會收到來自其他主機的更新。
配置主機伺服器的工作包括定義包含主機複本的尾碼、用複製精靈啟用主機複本以及視需要配置進階複製。
下列各節提供配置一個主機伺服器的步驟。請在包含指定尾碼之主機複本的每部伺服器上重複所有程序。
為主機複本定義尾碼
在包含要複製之項目的主機伺服器上選擇或建立尾碼。如需說明,請參閱「建立尾碼」。
建立複製協議之前,尾碼應包含所有的初始資料。如此一來,您才能夠立即根據這些資料初始化用戶複本。為確保正確的多重主機組態與初始化,應該只有其中一個主機包含所有初始資料,而其他主機上的尾碼應該空白。
啟用主機複本
複製精靈簡化了啟用主機複本的工作:
- 在 Directory Server Console 最上層的 [組態] 標籤上,展開 [資料] 節點與要設為主複本的尾碼節點,然後選擇尾碼下方的 [複製] 節點。
在右面板中顯示複製狀態資訊。
- 按一下 [啟用複製] 按鈕開始複製精靈。
- 選擇 [主機複本] 單選按鈕,再按一下 [下一步] 繼續。
- 輸入複本 ID:選擇 1 到 65534 (含 1 與 65534) 之間的唯一整數。
複本 ID 在指定尾碼的所有主機複本之中應該是唯一的。同一伺服器上不同尾碼的主機複本可以使用相同的複本 ID,前提是它在每個複本的其他主機之中是唯一的。
- 按一下 [下一步]。如果尚未如此做,則會提示您選擇變更日誌檔。預設變更日誌檔在文字欄位中顯示。如果不想要使用預設,請輸入變更記錄的檔名,或按一下 [瀏覽] 顯示檔案選擇器。
如果已經啟用變更記錄,精靈會略過此步驟。
- 按一下 [下一步]。如果尚未如此做,則會提示您輸入並確認預設複製管理員的密碼。在單一主機複本的情況下不使用複製管理員,但您還是必須輸入密碼,才能繼續。在每一個欄位中輸入相同的密碼,再按一下 [下一步] 繼續。
如果預設複製管理員已經定義密碼,精靈會略過此步驟。
- 複製精靈於更新複製組態同時,也會顯示狀態訊息。完成時,請按一下 [關閉]。
現在複製狀態會顯示此主機的複本 ID,而且左窗格中的圖示會變更以顯示此尾碼已啟用複製。
進階多重主機組態
依預設值,精靈會將主機複本設為使用預設的變更記錄設定值。若要修改變更記錄設定值,請執行以下步驟:
複製精靈也使用預設的複製管理員。如果已經建立想要使用的不同複製管理員項目,則需要設定進階組態。您也可以使用此對話方塊,設定修改和清除延遲的參照。如果要配置單一主機,您可以略過此程序。
- 在 Directory Server Console 最上層的 [組態] 標籤上,展開 [資料] 節點和您想要配置尾碼的節點,然後選擇尾碼下方的 [複製] 節點。
- 在右面板中,按一下 [進階] 按鈕,顯示 [進階複本設定值] 對話方塊。
- 在 [連結 DN] 標籤上,使用 [加入] 和 [刪除] 按鈕,建立有效複製管理員的 DN 清單。接著供應商可以於與此複本之間的協議內來使用任何一個 DN。您可利用輸入新 DN 的名稱或瀏覽目錄來加入新的 DN。
若要透過 SSL 使用憑證來配置複製,請輸入憑證項目的 DN 作為其中一個複製管理員。
- 當您完成或選取更進階組態的 [選用] 標籤時,請按一下 [確定]。
- 在 [進階複本設定值] 對話方塊的 [選用] 標籤上,LDAP URL 清單會指定傳送給此主機之修改要求的額外參照。初始化後,主機會立即自動傳送參照,如「多重主機初始化後的交集」所述。使用 [加入] 或 [刪除] 按鈕,建立 LDAP URL 清單。
複製機制可自動配置集線器,以傳回複製拓樸中所有已知主機的參照。這些預設參照假設用戶端會在一般連線上使用簡單驗証。如果想要利用安全連線的 SSL 將與主機連結的選項提供給用戶端,請加入使用安全 port 號碼之格式 ldaps://servername:port 的參照。
如果您已經加入一或多個 LDAP URL 作為參照,則選擇清單下方的核取方塊時,會限制伺服器只為這些 LDAP URL 傳送參照,而非為主機複本。例如,如果您要用戶端永遠被參照到主機伺服器上的安全連接埠而不是預設連接埠,請建立這些安全連接埠的 LDAP URL 清單,並選取此核取方塊。
- 此外,在 [選用] 標籤上,您也可以變更清除延遲。
主機伺服器必須儲存有關複本內容更新的內部資訊,而清除延遲參數則指定其保留這些資訊的時間,這與供應更新之主機伺服器上的變更記錄 (不是它自己的變更記錄) 的 MaxAge 參數有關。在兩個參數中,較短的參數可決定兩部伺服器間的複製在停用或當機後仍能回復正常的最長時間。預設值是 7 天,這已足夠大部份情況使用。
- 按一下 [確定] 儲存此複本的進階複製組態。
建立複製協議複製協議是在供應商上的一組參數,用以配置及控制更新傳送到指定用戶的方式。複製協議必須建立在傳送更新給其用戶的供應商複本上。您必須為每一個要更新的用戶建立複製協議。
依照下列順序建立複製協議:
例如,在有 2 台主機及 3 台專屬用戶的多重主機複製拓樸中 (如圖 8-3所示),您應該依照下列順序建立 8 個複製協議:
若要建立複製協議:
- 在 Directory Server Console 最上層的 [組態] 標籤上,展開 [資料] 節點與供應商尾碼節點,然後選擇尾碼下方的 [複製] 節點。
在右面板中顯示複製狀態資訊。
- 按一下已定義複製協議清單旁的 [新增] 按鈕。
- 在 [複製協議] 對話方塊中,選擇功能表中包含用戶複本的現有伺服器,或按一下 [其他] 按鈕以定義伺服器。
當您按 [其他] 按鈕時,請輸入用戶伺服器的完全合格名稱,以及其 LDAP 連接埠號碼。如果在此連接埠上使用 SSL,請核取安全連接埠的方塊,為複製更新啟用安全連線。
- 在用戶伺服器上輸入複製管理員項目的 DN 與密碼。依預設值,這是預設複製管理員的 DN。
如果您選擇具有安全連接埠的用戶,您可以按一下 [選項] 按鈕決定 DN 欄位的意義。如果您用密碼連線,供應商將使用簡單驗證,並透過加密的 SSL 連線進行通訊。如果您利用憑證進行連線,DN 欄位就是包含憑證的項目 DN,而且不需要密碼。
- 選擇性地輸入此協議的描述字串。用戶伺服器名稱與連接埠號碼及描述字串將出現在此主機複本的複製協議清單中。
- 完成時,按一下 [確定]。便會顯示確認對話方塊,詢問您是否要測試剛輸入的連線參數。
- 如果要用指定的複製管理員與密碼來測試能否連線到指定的伺服器及連接埠號碼,請按一下 [是]。如果連線失敗,您還是能夠選擇使用此協議,例如,可能是參數正確,但伺服器是處於離線狀態。
當您完成時,協議會出現在此主機複本的複製協議清單中。
稍後您可以編輯複製協議,以變更用戶伺服器上複製管理員的 DN 與密碼:
- 從清單中選擇複製協議,再按一下 [編輯] 按鈕。
- 在 [複製協議] 對話方塊中,請選擇 [連線] 標籤。
- 編輯用戶伺服器的複製管理員 DN 或密碼。
- 選擇性地編輯協議的描述字串。
- 按一下 [確定] 儲存新設定值,並在將更新傳給此用戶時立即開始使用新設定值。
在「啟用部份複製」與「透過 WAN 複製」中會說明其他標籤中的組態參數。
- 在建立每個複製協議後,您可以選擇為此尾碼配置部份複製,然後立即初始化複本,如「初始化複本」所述。
配置部份複製依預設值,複製會將複製尾碼中的所有項目全部複製到用戶複本。若使用部份複製功能,您可以指定複製過程中所複製或排除的屬性子集。部份複製是在複製協議中配置,讓您可以為主機的每個用戶複本定義屬性組。如此一來,您可以控制分散的資料內容,並且更有效率地使用複製頻寬及用戶資源。
例如,如果您要減少複製頻寬,可以選擇不複製通常為大值的屬性,例如 photo、jpegPhoto 與 audio。因此,在用戶上無法使用這些屬性。又例如,您可以選擇只複製 uid 與 userpassword 屬性到專門用來執行驗證的用戶伺服器。
部份複製的考慮事項
凡是啟用或修改片斷的屬性組,都必須重新初始化用戶複本。因此,您應該在部署之前先決定部份複製的需要,並在第一次初始化複本之前定義您的屬性組。
複製小型屬性組時應小心,因為已知某些屬性的 ACI、角色與 CoS 等複雜的功能之間存在有依存性。不僅如此,若不複製 ACI、角色或 CoS 機制的規範或搜尋條件中提及的其他屬性,可能破壞資料安全性,或造成搜尋中傳回不同的屬性組。管理要排除的屬性清單會比管理要包含的屬性清單安全,也比較不容易發生人為錯誤。
如果複製的屬性組不允許所有複製的項目要符合該結構,您應該關閉用戶伺服器中的結構檢查。複製不符合結構的項目並不會產生錯誤,因為複製機制會略過用戶上的結構檢查。但這樣一來,用戶將會包含不符合結構的項目,所以應該關閉結構檢查,以將連貫的狀態公開給其用戶端。
部份複製是在有集線器與專屬用戶之主機複本的複製協議中配置。多重主機複製環境中,不支援兩個主機複本之間的部份複製組態。而且,如果數個主機與同一個複本間有複製協議,則這些協議都必須複製同一個屬性組。
Directory Server 5.2 所提供的部份複製功能與舊版本的 Directory Server 不向後相容。配置部份複製協議時,主機與用戶複本都必須在 Directory Server 實例版本 5.2 上。
定義屬性組
屬性組是一張屬性清單,清單上的屬性是當複本上啟用部份複製時所複製的屬性 (其他所有屬性均排除)。您可以在主機伺服器上定義任何數目的屬性組,然後使其中一個屬性組與複製協議產生關聯。
- 在 Directory Server Console 最上層的 [組態] 標籤上,選擇 [資料] 節點,然後選擇右面板上的 [複製] 標籤。
- 按一下 [複製] 標籤下方的 [管理複製屬性組] 按鈕。您可能必須向下捲動才會看到此按鈕。
- 按一下 [加入] 以定義新的屬性組,或從清單中選擇現有屬性組再按一下 [編輯] 進行修改。在顯示的 [屬性組] 對話方塊中選擇或取消選擇 [複製] 欄中的核取方塊,使對應的屬性可包含在屬性組中,或排除在組外。屬性名稱旁有核取方塊表示將會複製該屬性。
預設狀態下會選擇所有屬性,建議您只將特別不希望複製的屬性取消選擇。如果要重新開始選擇,[全選] 按鈕會再次選擇所有屬性。當您取消選擇一些屬性後,目錄伺服器將複製所有屬性,只排除已取消選擇的屬性。如果稍後在結構中定義新的屬性,並用於複製項目中,這些新的屬性都將被複製,除非您編輯屬性組取消選擇該屬性。
按一下 [全部不選] 按鈕將取消選擇所有屬性,然後您可以選擇要包含在屬性組中的屬性。當您按下 [全部不選],然後定義正確的屬性組後,只有選取的屬性會被複製。如果稍後在結構中定義新的屬性,並用於複製項目中,這些新的屬性都不會被複製,除非您編輯屬性組選擇該屬性。
- 選擇性地輸入或修改此屬性組的描述字串。此文字將出現在定義的屬性組清單中,並在編輯即將使用此屬性組的複製協議時出現。如果未提供描述,伺服器將根據排除或包含的屬性產生描述。
- 完成時,按一下 [儲存]。
啟用部份複製
只有現有的複製協議上可以啟用部份複製:
- 依「建立複製協議」所述建立複製協議,或選擇先前定義的協議進行修改。
- 依「停用複製協議」所述停用複製協議。必須停用協議後才能修改部份複製組態。
- 選擇已停用的協議,再按一下 [編輯]。在出現的 [複製協議] 對話方塊中選擇 [複製屬性] 標籤。
- 選擇 [只複製一組屬性] 核取方塊。
- 從下拉式清單中選擇現有屬性組,或按一下 [新增] 定義新的屬性組,如「定義屬性組」所述。您也可以按一下 [管理複製屬性組] 以檢視及修改現有的屬性組定義。
部份複製只允許一個屬性組與複製協議產生關聯。該屬性組應包含要複製的正確屬性清單。
- 選擇屬性組後,按一下 [確定]。出現資訊訊息提醒您已配置部份複製,且您必須重新初始化用戶複本。按一下 [確定] 退出訊息。
- 按一下 [啟用] 以重新啟用複製協議。
- 您可以視複製屬性的不同,考慮停用用戶伺服器上的結構檢查。
- 如果其他主機也與此複本之間有複製協議,您必須重複此程序,在所有其他主機上用相同的屬性組啟用部份複製。
- 您必須立即初始化用戶複本,或重新初始化已複製的複本。請參閱下列「初始化複本」。
初始化複本建立複製協議後,您必須先重新初始化用戶複本,然後複製才會真正開始。初始化期間,您會實際將資料從供應商複本複製到用戶複本。
某些錯誤狀況或組態變更會要求您必須重新初始化複本。重新初始化時,會刪除用戶上複製尾碼的內容,並以主機上尾碼的內容取代。這樣可確保複本之間保持同步,並且可以繼續複製更新。而且,此處所述的所有初始化方法都會自動重新建立用戶複本的索引,所以用戶已準備好以最佳狀態回應用戶端的讀取要求。
初始化時機
複本初始化必須在兩個複本都已完成配置之後,以及發生任何複製之前進行。一旦將尾碼中的資料完全複製到用戶之後,供應商便可以開始在用戶上重新執行更新作業。
在正常作業下,絕不應該重新初始化用戶。但如果因為任何原因而從備份中復原單一主機複本,就應該重新初始化它更新的所有複本。若是多重主機複製,則已經由其他主機更新的用戶不必重新初始化。
您可以使用主控台在線上初始化複本,或使用指令行手動初始化複本。對於初始化小量用戶的作業而言,使用主控台在線上進行初始化相當方便。您可以直接從複製協議在線上初始化複本,但是因為每個複本要依序初始化,所以此方法不適合大量複本的初始化。若要從單一 LDIF 檔案同時初始化大量用戶,用指令行手動初始化是比較有效的方法。
最後,經驗豐富的管理員可以使用二進位複製功能複製主機或客戶複本。這項功能有一些限制,因此只有對極大型資料庫檔案的複本 (例如包含幾百萬個項目的複本) 才有實用、省時的功效。
在多重主機複製中初始化複本
在多重主機複製的情況下,您應該依照下列順序初始化複本:
- 確定已經有一台主機擁有要複製的完整資料。使用此主機,在每個其他主機上將複本初始化。
- 從主機初始化其用戶複本 (請參閱「執行線上複本初始化」),或從任一台主機的 LDIF 檔案初始化用戶複本 (請參閱「匯出複本到 LDIF」。)
在階層式複製中初始化複本
在階層式複製的情況下,請記住一定要依照下列順序初始化複本:
多重主機初始化後的交集
在多重主機複製的情況下,當某一主機正在進行初始化時,其他主機仍可以處理變更作業。因此,當初始化完成時,新的主機也必須接收不包含在初始化資料中的新更新。由於初始化可能需時甚久,因此擱置的更新數也可能相當多。
為了讓這些擱置更新能夠交集,新初始化的主機會自動將初始化後的用戶端作業設成唯讀模式。(這只有透過來自指令行的 LDIF 檔案,或使用備份執行二進位複製時才為真。)此行為是 Directory Server 5.2 中的新增功能。
因此在初始化後,多重主機組態中的主機將會處理複製更新,並允許讀取作業,但對於來自用戶端的寫入作業則會傳回參照。您可以如「進階多重主機組態」所述定義參照。在符合下列條件後,主機將會回復讀寫模式:
如果您選擇設定此屬性,您所選用的延遲應該永遠足以讓主機複本在初始化後與其他主機交集。此延遲會視預期初始化的大小與長度,以及其他主機上同時發生變更速率的不同而所有差異。主機若在初始化後仍在複製變更的同時接受更新作業,可能會產生無法解釋的錯誤。如果您碰到複製錯誤,請參閱《Directory Server Administration Reference》的 Chapter 4 "Error Log Message Reference"。
透過主控台開始接受更新
在多重主機複本初始化後,執行這些步驟以明確允許更新作業:
- 在 Directory Server Console 最上層的 [組態] 標籤上,展開 [資料] 節點與複製尾碼的節點,然後選擇尾碼下方的 [複製] 節點。
在右面板中,主控台會顯示訊息表示複本已初始化,而且目前會為更新作業傳回參照。如果此訊息表示已啟用自動參照延遲,您還是可以依照此程序覆寫該延遲。
- 使用 insync 工具以確保複本已經與所有其他的主機交集。如果所有伺服器上修改之間的延遲是零,或如果複本從來沒有任何變更需要複製 (延遲為 -1),則複本之間為同步。如需詳細資訊,請參閱《Directory Server Administration Reference》Chapter 1 的 "insync"。
- 按一下訊息右邊的按鈕,立即開始接受更新作業。
透過指令行開始接受更新
下列指令可用於自動處理多重主機複本初始化的指令檔內,以檢查交集並明確允許更新作業:
- 使用 insync 工具以確保複本已經與所有其他的主機交集。如果所有伺服器上修改之間的延遲是零,或如果複本從來沒有任何變更需要複製 (延遲為 -1),則複本之間為同步。如需詳細資訊,請參閱《Directory Server Administration Reference》Chapter 1 的 "insync"。
- 用下列指令修改 ds5BeginReplicaAcceptUpdates 組態屬性:
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-2 百萬),此處理可能非常耗時,您或許覺得使用指令行進行手動用戶初始化更具效率 (如需詳細資訊,請參閱「從指令行初始化複本」)。
使用主控台初始化用戶複本時,尾碼上的所有作業 (包括搜尋) 會參照到主機伺服器,直到初始化處理完成為止。
在使用 Directory Server Console 時,使用已配置部份複製初始化複本的作業是透明的。初始化過程中,只會將選取的屬性傳送給用戶。
執行線上複本初始化
若要使用主控台初始化或重新初始化複本:
- 在 Directory Server Console 最上層的 [組態] 標籤上,展開 [資料] 節點與主機複本的尾碼節點,然後選擇尾碼下方的 [複製] 節點。
在右面板中顯示複製狀態資訊。
- 在已定義的協議清單中,選擇與您要初始化的用戶對應的複製協議,再按一下 [動作]>[初始化遠端複本]。
出現確認訊息,警告您原先已儲存在用戶上複本中的任何資訊都將遺失。
- 在確認方塊中按一下 [是]。
線上用戶初始化立即開始。複製協議的圖示顯示紅色齒輪,表示初始化處理的狀態。
- 按一下 [重新整理]>[立即重新整理],或選擇 [重新整理]>[繼續重新整理],以追蹤用戶初始化的狀態。
在清單下方的文字方塊中,會出現被反白顯示之協議的任何訊息。
如需關於監控複製與初始化狀態的詳細資訊,請參閱「監控複製狀態」。
從指令行初始化複本
對於複製大量項目的佈署而言,使用指令行手動初始化複本是用戶初始化的最快方法。凡是因為效能限制而不適合採用線上程序時,均可使用手動處理。但是,手動用戶初始化處理比線上用戶初始化處理複雜許多。
若要手動初始化或重新初始化複本,先將尾碼資料的原始複本匯出到 LDIF 檔案。如果要初始化片斷複本,您應該篩選檔案,只保留複製的屬性。然後將該檔案傳輸到所有用戶伺服器,再進行匯入。在多重主機複製部署中,您可以用從原始主機匯出的 LDIF 檔案來初始化其他主機與任何用戶。在階層式複製環境中,您可以用同一個檔案初始化集線器複本與其用戶。
不論任何狀況,您都必須從配置的主機複本匯出的 LDIF 檔案開始。您無法使用任意的 LDIF 來初始化所有複本,因為任意檔案中不包含複製資料。您必須先將您的 LDIF 檔案匯入主機複本,再用下列程序將它匯出。
匯出複本到 LDIF
您可以用 db2ldif -r 或 db2ldif-task -r 指令將複本內容儲存在 LDIF 檔案中。如需詳細資訊,請參閱「從指令行匯出至 LDIF」。您必須使用這些指令的 -r 選項來匯出複本。
下列範例會將整個 dc=example,dc=com 複本匯出到名為 example_master.ldif 的檔案:
然後您可以視需要篩選 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 Administration Reference》的 Chapter 1 "fildif"。
接著您可以使用 fildif 所產生的 filtered.ldif 檔案,將此複製協議中的用戶初始化。將檔案傳輸到用戶伺服器,再依下一節的說明匯入檔案。
匯入 LDIF 檔案到用戶複本
您可以使用 Directory Server Console 中的匯入功能,或使用 directoryserver ldif2db 或 directoryserver 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 Administration Reference》Chapter 1 的 "ldif2db-task"。
使用二進位複製初始化複本
二進位複製功能會複製整個伺服器,方法是使用來自某個伺服器的二進位備份檔案來復原另一個伺服器上相同的目錄內容。此進階功能會與目錄伺服器的資料庫檔案互動,而且僅適合經驗豐富的管理員使用。
二進位複製的限制
因為二進位複製功能會將資料庫檔案從一台電腦搬移到另一台電腦,所以這項機制有下列嚴格的限制:
- 兩台電腦必須使用相同的硬體及相同的作業系統,包括任何 Service Pack 或修補程式。
- 兩台電腦必須已安裝相同版本的 Directory Server,包括二進位檔案碼格式 (32 位元或 64 位元)、Service Pack 或修補程式階層。
- 兩台電腦必須擁有分割成相同尾碼的相同樹狀目錄。所有尾碼的資料庫檔案必須一起複製,無法複製個別尾碼。
- 每個尾碼在兩部伺服器上必須配置相同的索引,包括 VLV (virtual list view,虛擬清單檢視) 索引。尾碼的資料庫必須擁有相同名稱。
- 即將複製的 Directory Server 不能包含 o=NetscapeRoot 尾碼,因為這表示它無法作為 Administration Server 的組態目錄。
- 每部伺服器必須將相同的尾碼設成複本,而且複本在兩部伺服器上必須具備相同的角色 (主機、集線器或用戶)。如果已配置部份複製,所有伺服器上的配置必須完全一致。
- 任一部伺服器上都不能使用屬性加密。
- 若已啟用屬性值唯一性 Plug-in,此 Plug-in 在兩部伺服器上必須擁有相同的組態,而且必須在新的複本上重新配置 (如下列程序所述)。
在上述條件下,您可以從一部主機伺服器的二進位複本初始化或重新初始化另一部主機伺服器,或從一部用戶伺服器的二進位複本初始化或重新初始化另一部用戶伺服器。下列兩個程序說明執行二進位複製的替代方法,一個方法不需要停止伺服器,另一個方法使用最小的磁碟空間。
不停止伺服器的二進位複製
執行二進位複製時,建議您使用以下程序,因為它使用正常的備份功能來建立伺服器資料庫檔案的複本。執行正常備份可確保所有資料庫檔案都保持連貫的狀態,不需要停止伺服器。
但是此程序有某些限制,您應該列入考量。備份與復原作業會在同一台電腦上建立資料庫檔案的複本,因此每台電腦上由這些檔案佔用的磁碟空間會變成兩倍。此外,如果您的目錄包含數個 GB 的資料,這些檔案實際的複製作業可能耗費可觀的時間。如果您的磁碟空間有限,或您的資料庫檔案極大,請參閱「使用最小磁碟空間的二進位複製」。
- 在新複本的目標機器上安裝 Directory Server,視需要建立伺服器的新實例,然後再根據「二進位複製的限制」來配置。
- 在您涉及此複本的複製拓樸中建立所有的複製協議。這會包括從供應商到此複本的協議,如果不是專屬用戶,則為從此複本到其用戶的協議。
- 選擇完整配置和初始化的複本 (與要初始化主機、集線器或用戶所用的複本相同),並根據「使用主控台備份您的伺服器」中的程序在此尾碼上執行正常備份。
- 將檔案從備份目錄複製或傳輸到目標電腦上的目錄,例如使用 ftp 指令。
- 根據「從備份復原資料」中的程序將檔案載入目標伺服器。
- 如果您已初始化多重主機複製案例中的新主機,請依照「多重主機初始化後的交集」中的程序進行,以確保新的複本將開始接受來自用戶端的更新作業。
使用最小磁碟空間的二進位複製
下列程序使用較少的磁碟空間及較短的時間,因為它不必為資料庫檔案製作備份。但是它會要求您停止被複製的伺服器,以確保資料庫檔案處於連貫的狀態。
小心
此程序不可用於重新初始化已參與多重主機複製案例的主機。它只可用於重新初始化用戶伺服器,或初始化新的主機伺服器。若要重新初始化現有的主機複本,請使用線上初始化、匯入 LDIF 檔案或依照「不停止伺服器的二進位複製」程序執行。
- 在新複本的目標機器上安裝 Directory Server,視需要建立伺服器的新實例,然後再根據「二進位複製的限制」來配置。
- 在您涉及此複本的複製拓樸中建立所有的複製協議。這會包括從供應商到此複本的協議,如果不是專屬用戶,則為從此複本到其用戶的協議。
- 停止即將初始化或重新初始化的目標伺服器,如「啟動和停止目錄伺服器」所述。
- 選擇一個與要初始化的複本相同類型 (可能為主機、集線器或用戶)、而且已完全配置並初始化的複本,並停止此伺服器。如果要複製多重主機組態中的主機複本,在停止主機之前您應該確定該主機已經完全更新為來自其他主機的最新變更。
- 移除所有來自目標伺服器的資料庫檔案,包括交易日誌檔、變更日誌檔和區域檔 (__db.xxx 檔)。除非檔案的位置被更改,否則資料庫檔案與交易記錄應位於 ServerRoot/slapd-serverID/db 目錄。
- 將所有資料庫檔案 (包括交易記錄) 從來源複本電腦複製或傳輸到目標電腦,例如使用 ftp 指令。除非檔案的位置被更改,否則資料庫檔案與交易記錄應位於 ServerRoot/slapd-serverID/db 目錄。
如果要初始化主機或集線器複本,您必須複製變更記錄內所有的檔案,這些檔案預設位於 ServerRoot/slapd-serverID/changelog 目錄。
- 重新啟動來源與目標伺服器。
啟用參考完整性 Plug-in如果您要使用參考完整性 Plug-in ,您必須在所有主機伺服器上啟用此 Plug-in,但不必在集線器或用戶伺服器上啟用此 Plug-in。請參閱「將參考的完整性用於複製」。
透過 SSL 複製您可以配置涉及複製的 Directory Server,讓所有複製作業都透過 SSL 連線上進行。若要做此設定,請完成下列步驟:
- 將供應商與用戶伺服器都配置為使用 SSL。
如需詳細資訊,請參閱第 11 章「管理驗證和加密」。
- 如果用戶伺服器上的尾碼未配置複製,請依照「啟用用戶複本」所述啟用複製。
- 依照「進階用戶組態」中的程序將用戶上憑證項目的 DN 定義為另一個複製管理員。
- 在供應商伺服器上,建立新的複製協議,使更新透過安全 SSL 連接埠傳送給用戶。如需詳細說明,請依照「建立複製協議」中的程序進行。指定用戶伺服器上的安全連接埠,並選擇使用密碼或憑證的 SSL 選項。輸入您所選之 SSL 選項 (複製管理員或憑證) 的 DN。
完成配置複製協議後,供應商會透過 SSL 將所有複製更新訊息傳送給用戶,並且使用憑證 (如果您選擇該選項)。如果客戶初始化是透過主控台使用配置 SSL 的協議來執行,則客戶初始化也會使用安全連線。
透過 WAN 複製Directory Server 5.2 引進了執行所有複製形式的功能,包括透過廣域網路 (WAN) 連接的電腦之間的多重主機複製 (MMR)。複製機制經過內部改良後,能讓供應商伺服器透過更高延遲及更低頻寬的網路,在合理的延遲內初始化及更新用戶。
備註
複製資料傳輸速率一定低於可用實體媒體允許的頻寬速率。如果複製之間的更新容量在實際上無法符合可用頻寬,使用調整將不會在更新負載過重的情況下導致複製不一致。複製延遲與更新效能須視許多因素而定,包括 (但不限於):修改率、項目大小、伺服器硬體、平均延遲及平均頻寬。如果您對工作環境中的複製有疑問,請聯絡您的 Sun 專業服務代表。
複製機制的內部參數依預設值便能在 WAN 環境中有最佳效能,但如果您因為上述因素而有複製緩慢的問題,您或許想要試著調整視窗大小和群組大小參數。您也可以排定複製的時程,以避開網路尖峰時間,因而改進整體的網路使用情形。最後,Directory Server 支援複製資料的壓縮以最佳化頻寬使用。
配置網路參數
下列兩個參數會決定複製機制如何將項目集合成群組,以更有效率地透過網路傳送,這兩個參數會影響供應商與用戶交換複製更新訊息及認可的方式。
對您所作的任何修改的結果進行監視,並進行相應的調整。如需指令,請參閱「監控複製狀態」。
這兩個網路參數在每個複製協議中均可設定,讓您可以根據每個用戶特有的網路條件自訂複製效能。
您不必中斷複製即可修改視窗及群組大小參數:
排程複製活動
如果複本之間的立即同步化不是那麼急迫,則透過 WAN 複製資料的其中一種方式便是將更新排程在網路使用較不頻繁時進行。當網路可用率較高時,更新的執行速度也會顯著加快,而且複製訊息不會更進一步地阻塞已經高度使用的網路。
您可以透過複製協議個別為每個用戶排程於每天或每週執行更新:
資料壓縮
如要降低複製所使用的頻寬,您可以設定複製在更新用戶時,壓縮傳送的資料。複製機制使用 Zlib 壓縮程式庫。供應商和用戶都必須使用 Solaris 平台才能啟用壓縮。
只有在主機伺服器的複製協議上,設定 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》的 Chapter 2 "ds5ReplicaTransportCompressionLevel"。
修改複製拓樸本節包含幾個用於管理現有複製拓樸的程序,例如編輯或移除複製協議、升級、降級或停用複本、強迫更新用戶以及管理變更記錄。
管理複製協議
您可以從主機尾碼的複製面板中管理複製協議,以變更協議中的驗證資訊、中斷傳給特定用戶的複製或將用戶從拓樸中移除。
變更複製管理員
您可以編輯複製協議,以變更用來連結用戶伺服器的複製管理員身份。為避免中斷複製,您應該先在用戶上定義新的複製管理員項目或憑證項目,然後再修改複製協議。但如果複製因連結失敗而中斷,當您改正錯誤後,複製機制將會在複製復原設定值的限制內,自動傳送所有必要的更新 (請參閱「進階用戶組態」)。
若要變更用戶用以通過驗證的複製管理員:
- 在 Directory Server Console 最上層的 [組態] 標籤上,展開 [資料] 節點和複製尾碼節點,並選擇尾碼下方的 [複製] 節點。
- 在右面板中,選擇要修改的複製協議,再按一下 [編輯]。
- 在 [複製協議] 對話方塊中,請選擇 [連線] 標籤。
狀態行會指示用戶伺服器的主機名稱與連接埠號碼。
- 修改 DN 與密碼欄位,以包含另一個複製管理員項目的 DN 或密碼,或用戶伺服器上憑證項目的 DN。
- 如果此複製協議使用透過安全連接埠的 SSL,您也可以按一下 [選項] 按鈕選擇安全驗證的類型。如果您用密碼進行連線,供應商將透過加密的 SSL 連線所指定的 DN 來使用簡單驗證。如果您用憑證進行連線,DN 欄位就是憑證項目的 DN,不需要密碼。
您無法將現有的複製協議從非安全驗證切換成安全驗證,反之亦然。若要用不同的安全性設定啟用複製,您必須建立另一個複製協議。
- 按一下 [確定]儲存您的變更。
複製複製協議
複製複製協議是一種很簡單的方法,能夠為大型複製拓樸中的供應商複本設定許多用戶:
- 在 Directory Server Console 最上層的 [組態] 標籤上,展開 [資料] 節點和複製尾碼節點,並選擇尾碼下方的 [複製] 節點。
- 從複製協議清單中,選擇要複製的協議。如果要用新的協議與用戶建立安全連線,您必須選擇也使用安全連接埠的現有協議。如果要建立新的非安全協議,您必須選擇非安全協議。
按一下 [編輯] 並瀏覽 [複製協議] 對話方塊的各個標籤,以確認此協議的組態。這些標籤上的組態將於下列各節說明:
- 在「變更複製管理員」中說明 [連線] 標籤。
- 在「透過 WAN 複製」 中說明 [排程] 與 [網路] 標籤。
- 在「配置部份複製」 中說明 [複製屬性] 標籤。
- 在仍選擇同一個複製協議的情況下,按一下 [複製] 按鈕。
- 從清單中選擇新用戶的主機名稱與連接埠號碼,或按一下 [加入主機] 按鈕以使用不同的主機與連接埠。清單和 [加入主機] 對話方塊將只允許您選擇與複製的用戶協議相同安全性類型的用戶。
- 確定已選擇清單中的主機名稱,再按一下 [確定],為該用戶伺服器建立新的複製協議。
- 新的協議會複製現有伺服器的所有組態資訊。這表示這兩部伺服器必須擁有完全相同的複製管理員項目,使用相同的密碼。如果要修改新協議的組態 (例如,變更複製管理員 DN),請從清單中選擇該協議,再按一下 [編輯]。
停用複製協議
停用複製協議後,主機會停止傳送更新到指定的用戶。雖然到該伺服器的複製會停止,但仍會保留協議中所有的設定值。日後只要重新啟用該協議,即可繼續複製。如需有關中斷後繼續複製機制的資訊,請參閱下面的「啟用複製協議」。
若要停用複製協議:
清單中協議的圖示便會改變,以顯示其已停用。
啟用複製協議
啟用複製協議將恢復與指定用戶的複製。但如果複製的中斷時間已超過複製復原設定值所允許的時間,而且其他供應商未更新該用戶,則您必須重新初始化該用戶。複製復原設定值是此供應商變更記錄與用戶的清除延遲這兩項設定的大小及天數之最大值 (請參閱「進階用戶組態」)。
當中斷時間相當短,而且可以復原複製時,只要重新啟用協議,主機便會自動更新用戶。
若要啟用複製協議:
刪除複製協議
刪除複製協議將停止對應用戶的複製,而且會移除有關該協議的所有組態資訊。日後若想恢復複製,請改為停用協議,如「停用複製協議」所述。
若要刪除複製協議:
升級或降級複本
升級或降級複本會改變複本在複製拓樸中的角色。專屬用戶可以升級成集線器,集線器可以升級成主機;主機可以降級成集線器,而集線器也可以降級成專屬用戶。但是主機不可以直接降級成用戶,同樣地,用戶也不可以直接升級成主機。
多重主機複製機制中的升級與降級功能讓拓樸非常具有彈性。原先由用戶複本服務的網站可能會因為成長,而需要具有幾個複本的集線器才能夠處理其負載。如果負載包含許多複本內容的修改,集線器便可以變成主機,以加快本機變更的速度,之後再將變更複製到其他網站上的其他主機。
若要升級或降級複本:
- 在 Directory Server Console 最上層的 [組態] 標籤上,展開 [資料] 節點和複製尾碼節點,並選擇尾碼下方的 [複製] 節點。
- 在右面板中,選擇 [變更]>[升級-降級複本] 功能表項目。
- 複製精靈將只讓您選擇允許的新角色,然後逐步指導您進行新複本角色的組態設定程序。您應該要知道下列的結果:
- 將主機降級成集線器時,複本將變成唯讀,並設為會傳送參照給其餘主機。新的集線器將保留其所有用戶,不論是集線器或專屬用戶。
- 將單一主機降級成集線器將會建立沒有主機複本的拓樸。精靈是假設您即將定義新的主機,才允許您執行此降級動作。但是您最好是先加入新的主機成為多重主機,並讓它初始化後,再降級其他主機。
- 將集線器降級成用戶時,將會刪除所有複製協議。如果集線器的用戶未由其他集線器或主機更新,該用戶將不再獲得更新。您應該在其他集線器或主機上建立新的協議,以更新這些用戶。
- 將用戶升級成集線器時,便會啟用其變更記錄,而且您可以定義它與用戶的新協議。
- 將集線器升級成主機時,複本將會接受修改要求,而且您可以定義它與其他主機、集線器或專用主機的新協議。
停用複本
停用複本會將它從複製拓樸中移除。它將不再獲得更新或傳送更新 (依其角色是主機、集線器或用戶而定)。停用供應商將刪除所有複製協議,而且如果重新啟用複本的話,所有複製協議都必須重新建立。
若要停用複本:
- 在 Directory Server Console 最上層的 [組態] 標籤上,展開 [資料] 節點和複製尾碼節點,並選擇尾碼下方的 [複製] 節點。
- 在右面板中,選擇 [變更]>[停用複製] 功能表項目。
- 在確認對話方塊中按一下 [是]。
- 或者,重設此尾碼的寫入權限及參照。停用複本後,這些設定值仍然會依原狀保留,例如停用的用戶仍然會傳送修改要求給它原先的主機複本。
若要修改寫入權限與參照,請在 [組態] 標籤上選擇此尾碼的節點,並在右面板的 [設定值] 標籤中進行修改。如需詳細資訊,請參閱「設定存取權限及參照」。
移動變更記錄
變更記錄是指定供應商複本上所有修改的內部記錄,伺服器利用它在其他複本上重新執行修改。變更記錄的內容是由伺服器自動管理,而且將透過多重主機更新進行更新 (即使是在伺服器重新啟動之後)。
在舊版 Directory Server 中,變更記錄可透過 LDAP 存取,但現在則僅供伺服器內部使用。如果您有必須讀取變更記錄的應用程式,請使用 [Retro Changelog Plugin],以達到回溯相容性。如需詳細資訊,請參閱「使用追溯變更記錄 Plug-in」。
只有當系統管理員必須將檔案移到其他位置時 (例如當檔案所在的磁碟已滿時),才應該修改變更記錄。
您必須用 Directory Server Console 移動變更記錄,絕不能使用作業系統的 rename 或 mv 指令:
- 在 Directory Server Console 最上層的 [組態] 標籤上,選擇 [資料] 節點,再選擇右面板中的 [複製] 標籤。
- 在文字欄位中輸入新的位置。這是從現在起要儲存變更記錄的新路徑與目錄名稱。例如,將變更記錄從預設位置 ServerRoot/slapd-serverID/changelogdb 移到 ServerRoot/slapd-serverID/newchangelog。
現有的變更記錄會從舊的位置刪除,新的變更記錄則保持在新的位置。
- 在 [複製] 標籤中按一下 [儲存]。
- 重新啟動 Directory Server。
- 依「初始化複本」所述,重新初始化您的用戶。
保持複本同步
為了進行定期維護,在停止 Directory Server 進行複製作業後,如果它重新上線時,必須確定它會立即透過複製獲得更新。對於多重主機環境中的主機,目錄資訊必須由多重主機集合中的另一部主機進行更新。若是其他狀況,在將集線器複本或專屬用戶設為離線狀態以進行維護後,當它們重新上線時,必須由主機複本進行更新。
本節說明複製重試演算法,以及如何不等候下一次重試便強迫發生複製更新。
複製重試演算法
當供應商嘗試複製到用戶失敗時,它會以遞增的時間間隔定期重試。重試模式如下:20、40、80、160,然後 300 秒。之後,供應商會每隔 300 秒 (5 分鐘) 重試一次。
請注意,即使您已將複製協議設成供應商複本與用戶複本永遠保持同步,也不足以將已離線超過 5 分鐘的複本立即回復到最新狀態。
為確保當伺服器恢復上線時目錄資訊會立即同步,您可以利用 Directory Server Console 或自訂的指令檔。
從主控台強迫複製更新
為確保當用戶 (或多重主機複製組態中的主機) 在經過一段時間之後回復上線時,會立即傳送複製更新,您可以在儲存最新版目錄資料的供應商上執行這些步驟:
用指令行強迫複製更新
從需要更新的用戶上,下列指令檔提示其供應商立即傳送複製更新。您可以複製此範例,並為它指定有意義的名稱,例如 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.1 與 5.2 完全相容,但下列情況例外:
- 無法使用部份複製,因此在 Directory Server 5.2 主機與 5.1 用戶複本之間不能設定部份複製。
- 在 5.2 供應商和 5.1 用戶間設定協議前,您必須在 cn=config 中設定 nsslapd-schema-repl-useronly 為 on。否則,5.2 中的結構在複製至 5.1 版時,會建立衝突。加上這個設定,只有使用者定義的結構元素 (儲存在 99user.ldif 檔案中) 會被複製。請參閱「複製結構定義」。
- 在 Directory Server 5.2 中,結構檔案 11rfc2307.ldif 已改變,且遵循 RFC 2307 規則。您必須在 5.1 版的伺服器上更新相應的檔案,如「更新 Directory Server 5.1 Schema」所述。
- 在 5.1 用戶的參照清單中仍會顯示已降級成集線器的 5.2 主機。但由於降級的內部機制所致,已降級複本的連接埠號碼將是零。此參照 URL 將無法使用,而且當用戶端無法依照此參照時,大部分用戶端將會自動嘗試其他主機的參照。但是,您可能必須在存取這些 5.1 複本的用戶端上提高參照的躍點限制。5.2 用戶複本既不顯示也不將無法使用的參照 URL 傳回到效能降低的主機。
Directory Server 在下列條件下,5.2 可涉及含 4.x 版 Directory Server 的複製案例:
能夠使用 Directory Server 5.2 作為舊 Directory Server 用戶的主要優點是,能方便遷移複製環境。如需關於遷移複製環境之步驟的詳細資訊,請參閱《Directory Server Installation and Migration Guide》中的 Chapter 4 "Replicated Server Upgrade"。
將 Directory Server 5.2 設定為 Directory Server 4.x 的用戶
如果您計劃使用 Directory Server 5.2 作為 4.x 版 Directory Server 的用戶,您必須依下列方式設定:
- 依「啟用主機複本」所述,將複本啟用為主機複本。即使複本是 4.x 供應商的用戶,都必須設定為主機複本。
- 在 Directory Server Console 最上層的 [組態] 標籤上,展開 [資料] 節點和複製尾碼節點,並選擇尾碼下方的 [複製] 節點。
- 在右面板中,為此複本選擇 [變更]>[啟用 4.x 相容性];或者,選擇 [物件] 功能表中的 [啟用 4.x 相容性]。
- 在 [啟用 4.x 相容性] 視窗中,指定舊供應商伺服器用於連結的連結 DN 與密碼。您在這堳定的連結 DN 和密碼只能用於原來的複製。因此不能使用現有的 DN,或 5.x 複製中使用的預設複製管理員。
如果使用「複製精靈」設定原來的複製,您指定的連結 DN 和密碼會正確地儲存在原來的複製組態項目中。如果從指令行手動設定原來的複製,必須使用 nsslapd-legacy-updatedn 和 nsslapd-legacy-updatepw 屬性,指定原來的複製組態項目中的連結 DN 和密碼。
原來的複製只能與簡單驗證,而不能與使用憑證的安全驗證一起使用。
- 按一下「確定」。現在此用戶複本即已準備好接收來自舊供應商的更新。
- 請確定 5.2 複本伺服器上的結構定義了將從 4.x 版主機複製的內容中的所有屬性和物件類別。
- 匯入 4.x 版主機上建立的 LDIF 複本檔案,以初始化 5.2 複本。在此檔案中的第一個項目包含有 4.x 複製機制所需的 copiedfrom 屬性。
在伺服器上啟用 4.x 相容性會設定預設安裝的舊複製 Plug-in。此 Plug-in 會處理來自舊供應商的更新,並對複製尾碼的內容執行更新。
備註
只要 4.x 相容性為啟用狀態,此複本會為來自用戶端的任何修改要求傳回參照。即使 Directory Server 5.2 設定為主機複本,它都不會在此尾碼上執行修改要求,而是會傳回 4.x 供應商伺服器的參照。
為完成舊複製設定,您必須立即將舊供應商設為複製到 5.2 Directory Server。如需關於在 4.x Directory Server 上設定複製協議的說明,請參閱舊的 Directory Server 所提供的說明文件。
更新 Directory Server 5.1 Schema
在 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/。
- 從 5.2 伺服器上複製檔案 11rfc2307.ldif 至 5.1 版伺服器。
- 下列結構檔案在此次變更中受到影響,必須從 5.2 版伺服器上複製,覆寫至 5.1 版伺服器上現有的檔案:
- 重新啟動 5.1 版伺服器,然後繼續進行複製組態和複本初始化。由於同步化其他結構元素,有些結構屬性可能在伺服器間複製,這是複製機制的正常行為。
- 您可能必須更新依賴舊版本結構的任何應用程式。新的 11rfc2307.ldif 檔案做了下列修改:
- automount 和 automountInformation 屬性已被移除。
- 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。
使用 追溯變更記錄 Plug-in當您要用 Directory Server 5.2 主機複本維護 4.x 樣式的變更記錄時,便可以使用 追溯變更記錄 Plug-in。對於依附於 Directory Server 4.x 變更記錄格式的 Meta Directory 等應用程式而言,有時候這是必要的,因為它們會從變更記錄讀取資訊。
追溯變更記錄 Plug-in 不允許 Directory Server 5.2 成為舊 4.x 用戶複本的供應商;只支援 Directory Server 5.2 作為 4.x 供應商的用戶,如「與舊版進行複製「」所述。追溯變更記錄 Plug-in 的運作與複製通訊協定無關,而且對複製拓樸也沒有影響。在單一主機部署案例的任何伺服器上,都可以啟用追溯變更記錄 Plug-in。一般而言,如果佈署中任何應用程式的需求包括追溯變更記錄,則不應該在此佈署中使用多重主機複製拓蹼。
除了伺服器的 5.2 變更記錄外,還保存追溯變更記錄。追溯變更記錄儲存在 cn=changelog 這個特殊尾碼下另一個資料庫中。追溯變更記錄由單一階層的項目組成。變更記錄中的每個項目都有物件類別 changeLogEntry,而且可以包含下表所列的各項屬性。
啟用追溯變更記錄 Plug-in
追溯變更記錄 Plug-in 的組態資訊儲存在 dse.ldif 的 cn=Retro Changelog Plugin,cn=plugins,cn=config 項目中。
若要從 Directory Server Console 啟用追溯變更記錄 Plug-in :
若要從指令行啟用追溯變更記錄 Plug-in:
- 使用下列指令修改追溯變更記錄 Plug-in 組態項目:
ldapmodify -h host -p port -D "cn=Directory Manager" -w passward
dn:cn=Retro Changelog Plugin,cn=plugins,cn=config
changetype:modify
replace:nsslapd-pluginenabled
nsslapd-pluginenabled:on
^D- 重新啟動伺服器。如需關於重新啟動伺服器的資訊,請參閱「啟動和停止目錄伺服器」。
調整追溯變更記錄
變更記錄中的項目可在指定的時間後自動移除。若要設定在一段時間後自動將項目從變更記錄中刪除,您必須在 cn=Retro Changelog Plugin°B cn=plugins°B cn=config 項目中設定 nsslapd-changelogmaxage 組態屬性。此屬性只能從指令行設定,例如:
ldapmodify -h host -p port -D "cn=Directory Manager" -p 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 代表星期。Integer 與 Timeunit 變數之間沒有空格,例如:
nsslapd-changelogmaxage:2d
在變更記錄的下一步作業中,會調整追溯變更記錄。
存取追溯變更記錄
變更記錄支援搜尋作業。它已針對包含下列格式之篩選器的搜尋最佳化:
(&(changeNumber>=X)(changeNumber<=Y))
一般而言,您不應該對追溯變更記錄執行加入或修改作業,但您可以刪除項目以調整變更記錄的大小;唯一需要對追溯變更記錄執行修改作業的機會是修改預設存取控制策略。
建立追溯變更記錄時,會預設套用下列存取控制策略:
您不應該將讀取存取授與匿名使用者,因為變更記錄項目內可能包含對敏感資料 (例如密碼) 的修改。如果連驗證使用者都不被允許檢視記錄內容,您可能希望進一步限制存取追溯變更記錄的內容。
若要修改套用在追溯變更記錄的預設存取控制策略,您應該修改 cn=changelog 項目的 aci 屬性。如需關於設定 aci 屬性的詳細資訊,請參閱第 6 章「管理存取控制」。
監控複製狀態您可以使用新的指令行工具及 Directory Server 主控台監視複製狀態。
指令行工具
有三個新的指令行工具可用於監控您的複製部署:
這些工具位在下列目錄內:
ServerRoot/shared/bin
如需這些工具的完整指令行語法和用法範例,請參閱《Directory Server Administration Reference》Chapter 1 的 "Tools Reference" 。
複製狀態標籤
若要在 Directory Server Console 中檢視複製狀態摘要:
- 在 Directory Server Console 上層的 [狀態] 標籤上,選擇 [複製] 節點。
右面板會顯示表格,表格中包含為此伺服器設定之每個複製協議的相關資訊。
- 如果要監控複製狀態,請選擇 [繼續重新整理] 核取方塊。例如,您會看到複本何時完成初始化。
- 如果您要判斷主機上尚未複製到用戶的最後一次修改,請按一下 [擱置變更數] 按鈕。系統會警告您此作業可能會耗費相當長的時間,並請您確認。判斷擱置變更數需要下載更新的用戶記錄,並將它與主機的變更記錄比較。如果記錄非常多,此作業可能會耗費很多時間與伺服器資源。
- 您可以按一下欄標頭並調整其大小,來修改表格佈局。您也可以按一下 [檢視選項] 按鈕,並且只選擇要查看的項目,來修改表格內容。下列的 表 8-2 說明您可選擇表格中要為此伺服器上的每個協議顯示的複製參數。
解決一般複製衝突多重主機複製使用不嚴格的一致性複製模式。這表示可以同時在不同伺服器上修改相同的項目。因此在兩部伺服器之間傳送更新時,便需要解決衝突的變更。解決衝突多半會自動執行,並以每部伺服器上變更相關的時間戳記為準。以最近的變更優先。
然而,有些情況必須透過手動操作,才能解決衝突的變更。若項目由無法由複製處理自動解決的變更衝突,則該項目會包含 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。您可以刪除衝突的項目,然後再以不相衝突的名稱加入。然而,保持項目最安全的作法是在建立時就重新命名它。重新命名程序須視命名屬性是單值或多重值屬性而定。每個程序分別說明如下。
重新命名多重值命名屬性的項目
若要重新命名具有多重值命名屬性的衝突項目:
- 保留舊的 RDN 值時,重新命名項目。例如:
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 操作屬性。
- 移除命名屬性的舊 RDN 值和衝突標示屬性。例如:
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 (網域元件),您不能只是重新命名項目為相同屬性的其他值。而是必須為它指定一個暫時名稱。
- 用不同的命名屬性為項目重新命名,並保留舊的 RDN。例如:
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 操作屬性。
- 將所需的命名屬性變更為唯一值,然後移除衝突標示屬性。例如:
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- 將項目重新命名為預期的命名屬性。例如:
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。
解決遺留項目衝突
當複製刪除的作業時,若用戶伺服器發現被刪除的項目還有子項目,則衝突解決程序會建立接合項目,以避免目錄中有遺留的項目。
同樣地,當複製加入作業時,若用戶伺服器找不到父項目,則衝突解決程序會建立代表父項目的接合項目,使新項目不會成為遺留項目。
接合項目是包含物件類別 glue 與 extensibleObject 的暫時項目。接合項目可以使用不同的方式建立:
解決潛在的交互操作性問題
為了讓需要屬性唯一性的這類應用程式 (如郵件伺服器) 能夠具有交互操作性,您可能必須限制存取包含 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 屬性的項目傳回到搜尋結果中。