Sun ONE logo     上一章     目錄     索引     說明文件首頁     下一章    
Sun ONE Directory Server 管理指南



第 4 章   擴展目錄內容

目錄伺服器所管理的資料通常都是大量匯入的,Directory Server提供可匯入和匯出整個尾碼的工具。此外,還提供可一次備份所有尾碼的工具,以及從備份還原所有資料的工具。

本章描述下列用於擴展目錄的程序:

設定尾碼唯讀模式

在 Directory Server 伺服器上執行特定匯出或備份作業前,您可以在任何指定的尾碼上啟用唯讀模式,以確定您擁有在指定時間上尾碼內容狀態的真正影像。同時,在執行匯入或還原作業之前,您必須確定受該作業影響的尾碼不是唯讀模式。

在匯出或備份作業之前,Directory Server 主控台和指令行公用程式並不會自動將目錄設定成唯讀模式,因為這會讓您的目錄因無法使用而不能進行更新。但是,如果您有多重主機組態,您可以將一台伺服器的唯讀模式啟用,而您的資料在其他主機上仍維持可寫入的狀態。

若要使尾碼唯讀,請遵循在<設定存取權限及轉介>中所描述的程序。或者,您可以將整個目錄伺服器設定為無法寫入,如<設定全域唯讀模式>中所述。

匯入資料

Sun ONE Directory Server 提供兩種匯入資料的方法:

  • 匯入 LDIF 檔可讓您為目錄內的任何尾碼大量加入、修改和刪除項目。
  • 從 LDIF 檔初始化尾碼會刪除尾碼中現有的資料,並以 LDIF 檔的內容取代這些資料。

您可以透過 Directory Server 主控台和使用指令行公用程式來使用這兩種方法。



注意

所有匯入的 LDIF 檔都必須使用 UTF-8 字元集編碼。

匯入 LDIF 時,父項目必須存在目錄之中,或是從檔案中第一個加入。初始化尾碼時,LDIF 檔案必須包含有對應尾碼的根項目和所有樹狀目錄的節點。



下表顯示匯入和初始化之間的差異:

表 4-1    匯入資料與初始化尾碼的比較

比較的網域

匯入資料

初始化尾碼

覆寫內容

LDAP 作業

加入,修改,刪除

只加入

效能

較慢

回應伺服器故障

最佳效果 (保留故障點之前所做的所有變更)

不可部分完成 (故障後遺失所有的變更)

LDIF 檔案位置

在主控台電腦上

本機對主控台或本機對伺服器

匯入組態資訊 (cn=config)

匯入 LDIF 檔案

執行匯入作業時,Directory Server 主控台會執行 ldapmodify 作業將新的項目加入目錄中。項目是在 LDIF 檔中指定,此檔案也包含修改或刪除現有項目的更新陳述式,這是匯入作業的一部分。

匯入項目的目標是 Directory Server 所管理的任何尾碼,以及任何在組態中定義的鏈結尾碼或鏈結子尾碼。伺服器與其他任何加入項目的作業結合使用時,會在所有新項目匯入時編製新項目的索引。

使用主控台匯入 LDIF


您必須以目錄管理員或系統管理員的身份登入,以執行匯入:

  1. 在 Directory Server 主控台最上層的 [工作] 標籤,捲動至標籤的底部,按一下 [從 LDIF 匯入] 旁的按鈕。
  2. 顯示 [匯入 LDIF] 對話方塊。

  3. 在 [匯入 LDIF] 對話方塊的 [LDIF 檔案] 欄位中,輸入要匯入之 LDIF 檔的完整路徑,或按一下 [瀏覽] 選取本機檔案系統中的檔案。
  4. 如果所存取的是遠端電腦上的目錄,則欄位名稱會顯示成 [LDIF 檔案 (在主控台電腦上)]。這個標籤是提醒您正在瀏覽的是本機檔案系統,而不是遠端的目錄伺服器電腦。

  5. 視需要設定下列選項:
    1. [只加入] - LDIF 檔案中除了預設的加入指令外,可能還包含修改和刪除指令。如果您希望主控台只執行加入指令,並忽略 LDIF 檔案中所有其他指令,請選取這個核取方塊。
    2. [發生錯誤仍繼續] - 如果您希望主控台在發生錯誤時仍繼續匯入,請選取這個核取方塊。例如,如果您要匯入一個 LDIF 檔案,此檔案包含一些已存在於尾碼中的項目,則可以使用這個選項。主控台會記錄在執行匯入作業所發生的錯誤,例如在拒絕檔案中的現有項目。
    3. 未選取此核取方塊時,匯入作業會在遇到第一個錯誤時停止。LDIF 檔案內所有停止作業之前的項目都會成功匯入,並且保留在目錄中。

  6. 在 [拒絕的檔案] 欄位中,輸入記錄主控台所有無法匯入項目之檔案的完整路徑,或者是按一下 [瀏覽] 選取本機檔案系統中的檔案。
  7. 例如,伺服器無法匯入目錄內現有的項目,或是沒有父項物件的項目。主控台會將伺服器傳送的錯誤訊息寫入拒絕檔案中。

    如果您將這個欄位空白,伺服器將不會記錄被拒絕的檔案。

  8. 按一下 [確定] 開始匯入作業。
  9. Directory Server 主控台會顯示一個對話方塊,其中含有作業的狀態,以及所發生任何錯誤的文字。如果 [拒絕的檔案] 不是空白的,則系統也會將所有錯誤訊息寫入指定的檔案中。

從指令行匯入 LDIF

ldif2ldap 指令 (Solaris Packages 中為 directoryserver ldif2ldap) 可透過 LDAP 匯入 LDIF 檔案,並執行其中的所有操作。使用這個指令檔可以同時將資料匯入到所有目錄尾碼中。伺服器必須在執行中才能使用 ldif2ldap 匯入。

指令的完整路徑:

Solaris Packages

# /usr/sbin/directoryserver ldif2ldap

其他安裝

# ServerRoot/slapd-serverID/ldif2ldap

下列範例使用 ldif2ldap 指令執行匯入。您不需擁有 root 權限也能執行指令,但是您必須在指令行輸入目錄管理員的認證。最後一個參數是一或多個要匯入之 LDIF 檔案的名稱。

UNIX Shell 指令檔:

# use directoryserver ldif2ldap on Solaris Packages installations
/var/Sun/mps/slapd-example/ldif2ldap \
  "cn=Directory Manager" password \
  /var/Sun/mps/slapd-example//ldif/demo.ldif

Windows 批次檔:

C:\Program Files\Sun\MPS\slapd-example\ldif2ldap.bat
  "cn=Directory Manager" password
  C:\Program Files\Sun\MPS\slapd-example\ldif\demo.ldif

如需更多關於使用此指令檔的詳細資訊,請參閱《Sun ONE Directory Server 參考手冊》的第 2 章<ldif2ldap>。

初始化尾碼

初始化尾碼會以 LDIF 檔案中只含額外項目的內容,覆寫尾碼中現有的資料。



小心

從 LDIF 檔案初始化尾碼時,請小心不要覆寫 o=NetscapeRoot 尾碼,除非您正在還原資料。否則,您會刪除需要所有重新安裝之 Sun ONE 伺服器的資訊。



您必須驗證以目錄管理員或系統管理員的身份登入才能初始化尾碼。為安全起見,只有目錄管理員和系統管理員擁有尾碼根項目的存取權,例如 dc=example,dc=com。因此,只有這些身份可以匯入包含有根項目的 LDIF 檔案。

從主控台初始化尾碼

  1. 在 Directory Server 主控台最上層的 [組態] 標籤上,展開 [資料] 節點,顯示您要初始化的尾碼。
  2. 在尾碼節點上按一下滑鼠右鍵,然後選取快顯功能表中的 [初始化]。或者,您可以選取尾碼節點,再選取 [物件] 功能表中的 [初始化]。
  3. 顯示 [初始化尾碼] 對話方塊。

  4. 在 [LDIF 檔案] 欄位中,輸入您想要用來初始化的 LDIF 檔案完整路徑,或是按一下 [瀏覽] 找到電腦上的這個檔案。
  5. 如果您是從匯入檔案所在的本端電腦操作主控台,請跳到步驟 6。如果您是從含有 LDIF 檔案之伺服器的遠端電腦操作主控台,請選取下列其中一個選項:
  6. 從主機。表示 LDIF 檔案位在本機上。

    從伺服器電腦。表示 LDIF 檔案位在遠端伺服器上。依預設值,主控台會在下列目錄中尋找檔案:

    ServerRoot/slapd-serverID/ldif

  7. 按一下 [確定]。


  8. 小心

    此指令檔可覆寫尾碼中的資料。



  9. 請確認您要覆寫尾碼中的資料。
  10. 尾碼初始化將繼續進行,任何錯誤將報告於對話方塊中。

使用 ldif2db 指令初始化尾碼

ldif2db 指令 (Solaris Packages 中為 directoryserver ldif2db) 會初始化尾碼,覆寫現有的資料。指令檔在繼續匯入之前會要求您關閉伺服器。

依預設值,指令檔會先進行儲存,然後再將現有的任何 o=NetscapeRoot 組態資訊與匯入檔案中的 o=NetscapeRoot 組態資訊合併。



小心

此指令檔可覆寫尾碼中的資料。



若要在伺服器停止時匯入 LDIF:

  1. 由於為指令行的 root,請使用下列指令停止伺服器:

    Solaris Packages

    # /usr/sbin/directoryserver stop

    其他安裝

    # ServerRoot/slapd-serverID/stop-slapd

  2. 在下列位置執行指令:

    Solaris Packages

    # /usr/sbin/directoryserver ldif2db

    其他安裝

    # ServerRoot/slapd-serverID/ldif2db

  3. 以適當的指令啟動伺服器:

    Solaris Packages

    # /usr/sbin/directoryserver start

    其他安裝

    # ServerRoot/slapd-serverID/start-slapd

下列範例使用 ldif2db 指令將兩個 LDIF 檔案匯入至單一尾碼中。

UNIX Shell 指令檔:

# use directoryserver ldif2db on Solaris Packages installations
/var/Sun/mps/slapd-example/ldif2db -n Database1 \
 -i /var/Sun/mps/slapd-example/ldif/demo.ldif \
 -i /var/Sun/mps/slapd-example/ldif/demo2.ldif

Windows 批次檔:

C:\Program Files\Sun\MPS\slapd-example\ldif2db.bat -n Database1
  -i C:\Program Files\Sun\MPS\slapd-example\ldif\demo.ldif
  -i C:\Program Files\Sun\MPS\slapd-example\ldif\demo2.ldif

表 4-2    範例中所用 ldif2db 選項的描述

選項

描述

-n

指定要匯入資料之資料庫的名稱。

警告:如果您在 -n 選項中指定資料庫,而此選項並未對應包含在 LDIF 檔案中的尾碼,那麼資料庫中所包含的全部資訊都會被刪除,並且匯入失敗。請確定您沒有將資料庫的名稱拼錯。

-i

指定要匯入之 LDIF 檔的完整路徑名稱。此為必要選項。您可使用多個 -i 引數,一次匯入一個以上的 LDIF 檔。匯入多個檔案時,伺服器會依照您從指令行指定的順序將 LDIF 檔匯入。

如需關於使用此指令的詳細資訊,請參閱《Sun ONE Directory Server 參考手冊》第 2 章的

使用 ldif2db Perl 指令檔初始化尾碼

使用 ldif2db 指令時, ldif2db.pl 指令檔 (Solaris Packages 中為 directoryserver ldif2db-task) 會覆寫指定尾碼中的資料。此指令檔要求伺服器需執行才能執行匯入。



小心

此指令檔可覆寫尾碼中的資料。



此指令檔的指令與平台相關:

Solaris Packages

# /usr/sbin/directoryserver ldif2db-task

Windows 平台

cd ServerRoot
bin\slapd\admin\bin\perl slapd-serverID\ldif2db.pl

其他安裝

# ServerRoot/slapd-serverID/ldif2db.pl

下列範例使用 ldif2db.pl 指令檔匯入 LDIF 檔。您不需擁有 root 權限也能執行指令檔,但是您必須通過目錄管理員的身份驗證。

UNIX Shell 指令檔:

# use directoryserver ldif2db-task on Solaris Packages installations
/var/Sun/mps/slapd-example/ldif2db.pl \
  -D "cn=Directory Manager" -w password -n Database1 \
  -i /var/Sun/mps/slapd-example/ldif/demo.ldif

Windows 批次檔:

C:\Program Files\Sun\MPS\bin\slapd\admin\bin\perl.exe
  
C:\Program Files\Sun\MPS\slapd-example\ldif2db.pl
    -
D "cn=Directory Manager" -w password -n Database1
    -i C:\Program Files\Sun\MPS\slapd-example\ldif\demo.ldif

下表描述此範例中所使用的 ldif2db.pl 選項:

表 4-3    範例中所用 ldif2db.pl 選項的描述

選項

描述

-D

請指定目錄管理員的 DN。

-w

請指定目錄管理員的密碼。

-n

指定要匯入資料之資料庫的名稱。

-i

指定要匯入之 LDIF 檔的完整路徑名稱。此為必要選項。您可使用多個 -i 引數,一次匯入一個以上的 LDIF 檔。匯入多個檔案時,伺服器會依照您從指令行指定的順序將 LDIF 檔匯入。

如需關於使用此 Perl 指令檔的詳細資訊,請參閱《Sun ONE Directory Server 參考手冊》第 2 章的

匯出日期

您可以使用純文字的 LDAP 資料交換格式 (LDIF),匯出目錄的內容。LDIF 是項目、屬性及其值的文字表示方式。LDIF 是標準的格式,於 RFC 2849 (http://www.ietf.org/rfc/rfc2849.txt) 中加以說明。

下列情況適合匯出資料:

  • 備份伺服器中的資料。
  • 將資料複製到另一台目錄伺服器。
  • 將資料匯出到另一個應用程式。
  • 在變更目錄拓撲後重新擴展尾碼

匯出作業並不會匯出組態資訊 (cn=config)。



小心

在進行匯出作業時請勿停止伺服器。



使用主控台將整個目錄匯出到 LDIF

您可以根據最後一個匯出檔案的位置,來決定將部分或所有的目錄資料匯出到 LDIF 中。當 LDIF 檔案在伺服器上時,您可以只匯出伺服器上本機尾碼中鍵結的資料。如果 LDIF 檔案在伺服器遠端,您便可以匯出所有尾碼和鍵結的尾碼。

若要在伺服器執行時從 Directory Server 主控台將目錄資料匯出到 LDIF:

  1. 在 Directory Server 主控台最上層的 [工作] 標籤,捲動至標籤的底部,按一下 [匯出到 LDIF] 旁的按鈕。
  2. 顯示 [匯出] 對話方塊。

  3. 在 [LDIF 檔案] 欄位中輸入 LDIF 檔案的完整路徑和檔案名稱,或者按一下 [瀏覽] 找到此檔案。
  4. 如果您是在遠端伺服器上執行主控台,系統便不會啟用瀏覽。[瀏覽] 按鈕未啟用時,檔案會依預設值儲存在下列目錄中:

    ServerRoot/slapd-serverID/ldif

  5. 如果您是在伺服器遠端的電腦上執行主控台,則 LDIF 檔案欄位下會顯示兩個選項按鈕。選取 [至本機] 表示您要匯出至執行主控台電腦上的 LDIF 檔案。選取 [至伺服器電腦] 表示您要匯出至位在伺服器電腦上的 LDIF 檔案。
  6. 如果您要匯出整個目錄,請選取 [所有的尾碼] 選項按鈕。
  7. 如果您只要匯出目錄的樹狀子目錄,請選取 [樹狀子目錄] 選項按鈕,然後在文字方塊中輸入樹狀子目錄基礎的 DN。

    您也可以按一下 [瀏覽] 選取樹狀子目錄。

  8. 按一下 [確定] 匯出目錄內容至檔案。

使用主控台將單一尾碼匯出到 LDIF

若要在伺服器執行時從 Directory Server 主控台將一個尾碼匯出到 LDIF:

  1. 在 Directory Server 主控台最上層的 [組態] 標籤上,展開 [資料] 節點,顯示您要匯出的尾碼。
  2. 在尾碼節點上按一下滑鼠右鍵,然後選取快顯功能表中的 [匯出]。或者,您可以選取尾碼節點,再選取 [物件] 功能表中的 [匯出]。
  3. 顯示 [匯出尾碼] 對話方塊。

  4. 在 [LDIF 檔案] 欄位中,輸入至 LDIF 檔案的完整路徑,或是按一下 [瀏覽] 找到電腦上的這個檔案。
  5. [瀏覽] 按鈕未啟用時,依預設值檔案會儲存在下列目錄中:

    ServerRoot/slapd-serverID/ldif

  6. 如果尾碼已複寫,您可以選取核取方塊以 [匯出複寫資訊]。此功能僅在您匯出 LDIF 以初始化此尾碼的其他複本時需要。
  7. 如果此尾碼的屬性加密已啟用,您可以選取核取方塊以 [解密] 屬性。為此,您必須提供保護伺服器憑證資料庫的密碼。選取選項以輸入密碼或輸入包含密碼的檔案名稱。如果您無法提供解密屬性值的密碼,加密的值將顯示於 LDIF 輸出中。
  8. 按一下 [確定] 匯出尾碼的內容至檔案。

從指令行匯出至 LDIF

您可以使用 db2ldif 指令 (Solaris Packages 中為 directoryserver db2ldif) 匯出任何尾碼或目錄的樹狀子目錄至 LDIF。這個指令檔會將您所有的尾碼內容或部分內容匯出至 LDIF 檔案,不論伺服器正在執行或已經停止。

若要將資料庫的內容匯出至 LDIF 檔案,請使用下列指令:

Solaris Packages

# /usr/sbin/directoryserver db2ldif

其他安裝

# ServerRoot/slapd-serverID/db2ldif

下列範例將兩個尾碼匯出至單一 LDIF 檔案:

db2ldif -a output.ldif \
        -s "dc=example,dc=com" -s "o=NetscapeRoot"

下表描述此範例中所使用的 db2ldif 選項:

表 4-4    範例中所用 db2ldif 選項的描述

選項

描述

-a

定義伺服器儲存匯出 LDIF 之輸出檔案的名稱。這個檔案會依預設值儲存在 ServerRoot/slapd-serverID 目錄中。

-s

指定匯出時要包含的尾碼或樹狀子目錄。您可以使用多個 -s 引數來指定多個尾碼或樹狀子目錄。

db2ldif 指令也可以與 -r 選項結合使用,將複寫的尾碼匯出到 LDIF 檔案中。所產生的 LDIF 將會含有複寫機制所使用的屬性子類型。接下來,便可以將這個 LDIF 檔案匯入到用戶的伺服器上以初始化用戶的複本,如<初始化複本>中所述。

db2ldif 指令與 -r 選項結合使用時,伺服器必須不在執行狀態中。您必須先停止伺服器然後再啟動,或使用 db2ldif.pl 指令檔與 -r 選項,後者不需停止伺服器。

如需關於使用此指令檔的詳細資訊,請參閱《Sun ONE Directory Server 參考手冊》第 2 章的

備份資料

備份資料時系統會儲存內容或目錄的快照,以防日後資料庫損毀或被刪除。您可以使用 Directory Server 主控台或指令行指令檔來備份尾碼。



小心

在執行備份作業期間請勿停止伺服器。



依預設值,此處所描述的所有備份程序都會將伺服器檔案的複本儲存在同一台主機上。為了安全起見,您應該複製備份,然後將它儲存在不同的電腦或檔案系統中。



注意

您不可以使用這些備份方法來備份遠端伺服器上的鏈結尾碼。不同的伺服器必須個別進行備份。



使用主控台備份您的伺服器

從 Directory Server 主控台備份伺服器時,伺服器會將所有資料庫的內容與相關的索引檔案,複製到備份的位置上。您可以在伺服器執行時執行備份。

若要從 伺服器主控台 備份伺服器:

  1. 在 Directory Server 主控台最上層的 [工作] 標籤中,按一下 [備份目錄伺服器] 旁的按鈕。
  2. 顯示 [備份目錄]對話方塊。

  3. 在 [目錄] 文字方塊中,輸入您要儲存備份之目錄的完整路徑。如果您在與目錄相同的電腦上執行主控台,請按一下 [瀏覽] 尋找本機目錄。
  4. 或者按一下 [使用預設] 將備份儲存到下列目錄中:

    ServerRoot/slapd-serverID/bak/YYYY_MM_DD_hh_mm_ss

    其中 serverID 是您目錄伺服器的名稱,而產生的目錄名稱中會包含備份建立的時間與日期。

  5. 按一下 [確定]建立備份。

從指令行備份您的伺服器

您可以使用 db2bak 指令 (Solaris Packages 中為 directoryserver db2bak) 從指令行備份您的伺服器。不論伺服器是否在執行都可以使用這個指令檔。

您無法使用這個備份方法來備份組態資訊。如需關於備份組態資訊的資訊,請參閱<備份 dse.ldif 組態檔>

若要備份目錄,請使用下列指令:

Solaris Packages

# /usr/sbin/directoryserver db2bak backupDir

其他安裝

# ServerRoot/slapd-serverID/db2bak backupDir

backupDir 參數指定應該儲存備份的目錄。系統使用目前的日期產生預設的備份目錄名稱:YYYY_MM_DD_hh_mm_ss.如需關於使用此指令檔的詳細資訊,請參閱《Sun ONE Directory Server 參考手冊》第 2 章的

備份 dse.ldif 組態檔

目錄伺服器會自動備份 dse.ldif 組態檔。當您啟動目錄伺服器時,它會自動建立 dse.ldif 檔案的備份,並儲存在下列目錄中名為 dse.ldif.startOK 的檔案內:

ServerRoot/slapd-serverID/config

當您修改 cn=config 分支時,檔案會先備份至 config 目錄中名為 dse.ldif.bak 的檔案中,然後伺服器才會將修改寫入 dse.ldif 檔案。如果您需要儲存組態,請製作這些檔案的複本。

從備份還原資料

下列程序描述如何使用 Directory Server 主控台或指令行來還原目錄中的尾碼。您的伺服器必須已經使用<備份資料> 中所描述的程序備份。在還原與複寫協議有關的尾碼前,請先詳細閱讀<還原複寫的尾碼>



小心

在執行備份或還原作業期間請勿停止伺服器。

還原伺服器時會複寫所有現有的資料庫檔案,因此在備份之後所有修改的資料都會遺失。



還原複寫的尾碼

在將供應商伺服器與用戶伺服器之間複寫的尾碼還原之前,您必須做特殊的考量。如果可能的話,您應該透過複寫機制來更新尾碼,而不是從備份還原尾碼。此節將解釋還原複本的時間和方式,以及如何確定該複本在作業後與其他複本同步化。如需使用備份和還原以初始化複本的詳細資訊,請參閱<初始化複本>

還原單一主機案例中的供應商

做為單一主機供應者的尾碼含有整個複寫拓撲的系統授權資料。因此,還原這個尾碼等於重新初始化整個拓撲中的所有資料。除非您想要從還原的備份內容將所有資料重新初始化,否則請勿還原單一主機。

如果單一主機資料因為錯誤而無法還原,您可以考慮使用其中一台用戶主機的資料,因為該主機可能包含比備份新的更新資料。在這種情況下,您必須將資料從用戶複本匯出到 LDIF 檔案,然後從 LDIF 檔案重新初始化主機。

不論您是還原備份或匯入主機複本上的 LDIF 檔案,之後您都必須將所有向此複本接收更新資料的集線器和用戶複本重新初始化。系統將會在供應商伺服器的記錄檔中記錄一個訊息,提醒您需要重新初始化用戶。

還原多重主機案例中的供應商

在多重主機複寫中,其他主機每個都包含複寫資料的系統授權複本。您無法用目前的複本內容來還原可能已經過時的舊備份。如果可能的話,您應該允許複寫機制使用其他主機的內容更新此主機。

如果不可能,您只能用下列其中一種方法來還原多重主機複本:

  • 最簡單的方法就是不還原備份,而是從其中一台其他主機重新初始化預定的主機。這樣可確保最新的資料會傳送至預定的主機,並且那些資料也已經準備好用來複寫。請參閱<使用主控台初始化複本><從指令行初始化複本>
  • 當複本有上百萬個項目時,較快的方法是使用新的二進位複製功能來還原取自其中一個其他主機的最新備份。請參閱<使用二進位複製初始化複本>
  • 如果您已將主機備份,而該備份不比其他任何主機中的變更記錄內容還舊,則應該使用此備份來還原這台主機。如需變更記錄天數的描述,請參閱<進階多重主機組態>。還原舊備份時,其他主機會使用變更記錄,以自儲存備份之後的所有修改來更新此主機。

不論您如何還原或重新初始化,初始化之後的主機複本都將維持唯讀模式。此行為讓複本可以與其他主機同步化,同步化後便可允許寫入作業,如<多重主機初始化後的交集> 中所述。

在允許於還原或初始化的主機上執行寫入作業之前,先允許所有複本聚集的優點是:沒有任何集線器或用戶伺服器需要重新初始化。

還原集線器

此節只適用於當複寫機制無法自動更新集線器複本時,例如,資料庫檔案損毀或複寫中斷太久。當發生這些情況時,您必須使用下列其中一種方法來還原或重新初始化集線器複本:

  • 最簡單的方法就是不還原備份,而是從其中一台主機複本重新初始化集線器。這樣可確保最新的資料會傳送至集線器,並且那些資料也已經準備好用來複寫。請參閱<使用主控台初始化複本><從指令行初始化複本>
  • 當複本有上百萬個項目時,較快的方法是使用新的二進位複製功能來還原取自另一個集線器複本的最新備份。請參閱<使用二進位複製初始化複本>。如果沒有其他集線器複本可以複製,您必須依照上一段的描述重新初始化集線器,或是下一段的描述將集線器還原 (如果可能的話)。
  • 如果您已將集線器備份,而該備份不比任何 供應商的變更記錄內容還舊 (不管是集線器或主機複本),則應該使用該備份來還原此集線器。如需變更記錄天數的描述,請參閱<進階多重主機組態>。還原舊備份時,其供應商會使用變更記錄,以自儲存備份之後的修改將此集線器更新。


  • 注意

    不論您如何還原或重新初始化集線器複本,您都必須 重新初始化此集線器的所有用戶,包括集線器的其他所有層級。



還原專用用戶

此節只適用於當複寫機制無法自動更新專用用戶複本時,例如,資料庫檔案被損毀或複寫中斷太久。當發生這些情況時,您將必須使用下列其中一種方法來還原或重新初始化用戶:

  • 最簡單的方法就是不還原備份,而是從其中一位供應商重新初始化用戶,主機或集線器複本皆可。這樣可確保最新的資料會傳送至用戶,並且那些資料也已經準備好用來複寫。請參閱<使用主控台初始化複本><從指令行初始化複本>
  • 當複本有上百萬個項目時,較快的方法是使用新的二進位複製功能來還原取自其他用戶複本的最新備份。請參閱<使用二進位複製初始化複本>。如果沒有其他用戶可以複製,您必須依照上一段的描述重新初始化複本,或是下一段的描述將用戶還原 (如果可能的話)。
  • 如果您用戶的備份不比任何 供應商的變更記錄內容還舊 (不管是集線器或主機複本),則應該使用該備份來還原此用戶。如需變更記錄天數的描述,請參閱<進階多重主機組態>。還原舊備份時,其供應商會使用變更記錄,以自儲存備份之後的修改將此集線器更新。

使用主控台還原您的伺服器

如果您的目錄資料損毀,則可以使用 Directory Server 主控台從之前建立的備份中還原資料。為了使用主控台來還原伺服器,目錄伺服器必須在執行中。但是在還原期間,無法使用對應的尾碼來處理作業。

若要從之前建立的備份還原伺服器:

  1. 在 Directory Server 主控台最上層的 [工作] 標籤中,按一下 [還原目錄伺服器] 旁的按鈕。
  2. 顯示 [還原目錄]對話方塊。

  3. 從 [可用備份] 清單中選取備份,或在 [目錄] 文字方塊中輸入有效備份的完整路徑。
  4. [可用備份] 清單中會顯示位於預設目錄中的所有備份:

    ServerRoot/slapd-serverID/bak

  5. 按一下 [確定]還原您的伺服器。

從指令行還原您的伺服器

您可以使用下列指令檔從指令行還原伺服器:

  • 使用 bak2db 指令 (Solaris Packages 中為 directoryserver bak2db)。此指令檔需要關閉伺服器才能使用。
  • 使用 bak2db.pl perl 指令檔 (Solaris Packages 中為 directoryserver bak2db-task)。此指令檔需要執行伺服器才能使用。

使用 bak2db 指令行指令檔

若要在伺服器關閉期間從指令行還原目錄:

  1. 由於為指令行的 root,請使用下列指令停止伺服器:

    Solaris Packages

    # /usr/sbin/directoryserver stop

    其他安裝

    # ServerRoot/slapd-serverID/stop-slapd

  2. 使用 bak2db 指令與備份目錄的完整路徑:

    Solaris Packages

    # /usr/sbin/directoryserver bak2db backupDir

    其他安裝

    # ServerRoot/slapd-serverID/bak2db backupDir

  3. 以適當的指令啟動伺服器:

    Solaris Packages

    # /usr/sbin/directoryserver start

    其他安裝

    # ServerRoot/slapd-serverID/start-slapd

下列範例從預設的備份目錄還原備份:

# bak2db /var/Sun/mps/slapd-example/bak/2001_07_01_11_34_00

如需詳細資訊,請參閱《Sun ONE Directory Server 隻狺榚》第 2 章的

使用 bak2db.pl Perl 指令檔

若要在伺服器執行期間從指令行還原目錄,請使用下列 Perl 指令檔:

Solaris Packages

# /usr/sbin/directoryserver bak2db-task

Windows 平台

cd ServerRoot
bin\slapd\admin\bin\perl slapd-serverID\bak2db.pl

其他安裝

# ServerRoot/slapd-serverID/bak2db.pl

下列範例使用 ldif2db.pl 指令檔匯入 LDIF 檔。-a 選項會提供備份目錄的完整路徑。

UNIX Shell 指令檔:

# use directoryserver bak2db-task on Solaris Packages installations
/var/Sun/mps/slapd-example/bak2db.pl \
  -D "cn=Directory Manager" -w password \
  -a /var/Sun/mps/slapd-example/bak/checkpoint

Windows 批次檔:

C:\Program Files\Sun\MPS\bin\slapd\admin\bin\perl.exe
 
C:\Program Files\Sun\MPS\slapd-example\bak2db.pl
  -
D "cn=Directory Manager" -w password
  -a C:\Program Files\Sun\MPS\slapd-example\bak\2001_07_01_11_34_00

如需詳細資訊,請參閱《Sun ONE Directory Server 參考手冊》第 2 章的

還原 dse.ldif 組態檔

此目錄會在下列目錄中建立 dse.ldif 檔案的兩個備份複本:

ServerRoot/slapd-serverID/config

dse.ldif.startOK 檔案會在伺服器啟動時記錄 dse.ldif 檔案的複本。 dse.ldif.bak 檔案中包含對 dse.ldif 檔案最新變更的備份。將包含最新變更的檔案複製到您的目錄中。

若要還原 dse.ldif 組態檔:

  1. 由於為指令行的 root,請使用下列指令停止伺服器:

    Solaris Packages

    # /usr/sbin/directoryserver stop

    其他安裝

    # ServerRoot/slapd-serverID/stop-slapd

  2. 變更至包含組態檔的目錄。
  3. 使用已知為完整的備份組態檔覆寫 dse.ldif 檔案。例如,您可以輸入下列指令:
  4. cp dse.ldif.startOK dse.ldif

  5. 以適當的指令啟動伺服器:

    Solaris Packages

    # /usr/sbin/directoryserver start

    其他安裝

    # ServerRoot/slapd-serverID/start-slapd


上一章     目錄     索引     說明文件首頁     下一章    
版權所有 2003 Sun Microsystems, Inc. 保留所有權利。