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

第 8 章 目錄伺服器備份與復原

您的目錄伺服器所管理的資料經常需大量匯入。Directory Server Enterprise Edition 提供了可匯入及匯出整個尾碼的工具。它也提供可同時備份所有尾碼以及從備份復原所有資料的工具。

開始進行任何備份或復原作業前,請確實設計適合本身情況所需的備份與復原策略。如需有關各種備份選項、注意事項以及規劃備份與復原策略之指示的更多資訊,請參閱「Sun Java System Directory Server Enterprise Edition 6.0 Deployment Planning Guide」中的「Designing Backup and Restore Policies」

本章包含下列主題:

二進位備份

本節說明如何執行目錄資料的二進位備份。除了本節所提到的二進位備份程序以外,您也可以製作二進位副本,用以初始化複寫拓樸中的尾碼。請參閱使用二進位副本初始化複寫的尾碼

僅備份目錄資料

二進位資料備份可儲存目錄資料的副本,以供您在資料庫檔案萬一受損或遭刪除時使用。此作業不會備份配置資料。若要備份整個目錄伺服器以供嚴重損壞回復之用,請參閱嚴重損壞回復


注意 – 注意 –

切勿在備份作業期間停止伺服器。

執行備份的頻率必須高於清除延遲。由屬性 nsDS5ReplicaPurgeDelay 所指定的清除延遲,係指對變更記錄執行內部清除作業之前所歷經的一段時間 (以秒為單位)。預設清除延遲為 604800 秒 (1 週)。變更記錄會保存更新記錄,可能已複寫、也可能未複寫。

若您執行備份的頻率低於清除延遲,變更記錄可能會在備份之前即已清除。因此,當您使用備份復原資料時,即會遺失變更。


本節所述之一切備份程序,預設會將伺服器檔案的副本儲存在相同的主機上。接著,您應將備份複製並儲存到不同的機器或檔案系統上,以確保更高的安全性。

Procedure備份目錄資料

您必須停止目錄伺服器,方可執行 dsadm backup 指令。

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

    備份目錄資料。


    $ dsadm backup instance-path archive-dir
    

    例如:


    $ dsadm backup /local/ds /local/tmp/20051205

    備註 –

    您可以在伺服器執行時,使用 dsconf backup 指令備份目錄資料。但目錄資料若在備份執行時有所變更,即難以正確回復。若要避免在使用 dsconf backup 時出現此問題,請設定複寫參照,或將伺服器設為唯讀。


    如需有關 dsadmdsconf 指令的更多資訊,請參閱 dsadm(1M)dsconf(1M) 線上手冊。

Procedure備份 dse.ldif 檔案

復原伺服器時,dse.ldif 配置檔案必須包含與伺服器備份時相同的配置資訊。

    備份您的 dse.ldif 配置檔案。


    $ cp instance-path/config/dse.ldif archive-dir
    

    當您執行下列動作時,目錄伺服器會自動備份目錄 instance-path/config 中的 dse.ldif 配置檔案。

    • 當您啟動目錄伺服器時,即會在名為 dse.ldif.startOK 的檔案中建立 dse.ldif 檔案的備份。

    • 當您修改 cn=config 分支時,檔案會先備份到 config 目錄中的 dse.ldif.bak 檔案,接著伺服器才會將修改寫入 dse.ldif 檔案中。

備份檔案系統

此程序會使用凍結模式功能。凍結模式可讓您停止磁碟的資料庫更新,因此執行檔案系統快照作業時將更加安全。您可以額外採用凍結模式,使備份更形可靠。

進行檔案系統備份時,絕不能讓伺服器將使用者資料寫入磁碟中。若您確定特定時段內將不再有任何更新,請於此時段內進行備份。若您無法確定未來是否會有更新,請先將伺服器設為凍結模式,再進行備份。

開啟凍結模式後,所有配置的資料庫均會離線。任何進行中的內部作業,都會收到資料庫即將離線的通知。進行中的 LDAP 作業會先行完成,同時資料庫環境會進行清除。包括搜尋使用者資料等後續的內送作業,在凍結模式設為關閉之前都將遭拒絕。但在凍結模式開啟期間,您仍可搜尋配置參數。

在單一伺服器拓樸中,於凍結模式開啟時接收的作業,會導致傳回 LDAP 錯誤。所記錄的錯誤訊息即為離線資料庫的標準錯誤。在複寫拓樸中,會傳回參照。若要讓凍結模式正確運作,即不應在資料庫上執行任何其他作業。

Procedure備份檔案系統

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

  1. (可選擇) 將伺服器設為凍結模式。


    $ dsconf set-server-prop -h host -p port read-write-mode:frozen
  2. 使用適合您檔案系統類型的工具,進行檔案系統的備份。

  3. 若您的伺服器已在凍結模式中,請重新將伺服器設為讀寫模式。


    $ dsconf set-server-prop -h host -p port read-write-mode:read-write

    若您的伺服器收到來自其他伺服器的複寫更新,這些更新將在凍結模式關閉後立即啟動。

備份至 LDIF

備份至 LDIF 可讓您將目錄資料備份至格式化的 LDIF 檔案中。

匯出至 LDIF

您可以利用 LDIF 所匯出的尾碼內容,備份目錄資料。匯出資料對執行下列作業大有助益:

匯出作業並不會匯出配置資訊 (cn=config)。


注意 – 注意 –

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


Procedure將尾碼匯出至 LDIF

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

    使用下列其中一項指令,將尾碼匯出至 LDIF 檔案:

    • 若您的伺服器是本機伺服器,並且已停止,請鍵入:


      $ dsadm export instance-path suffix-DN LDIF-file
      
    • 若您的伺服器位於遠端且正在執行中,請鍵入:


      $ dsconf export -h host -p port suffix-DN LDIF-file
      

    下列範例將使用 dsconf export,將兩個尾碼匯出至同一個 LDIF 檔案:


    $ dsconf export -h host1 -p 1389 ou=people,dc=example,dc=com \
     ou=contractors,dc=example,dc=com /local/ds/ldif/export123.ldif

    dsadm exportdsconf export 指令亦可與 --no-repl 選項搭配使用,以指定將不匯出任何複寫資訊。依預設,複寫的尾碼會與複寫資訊一併匯出至 LDIF 檔案。產生的 LDIF 檔案會包含複寫機制所使用的屬性子類型。此 LDIF 檔案可接著匯入用戶伺服器以初始化用戶複本,如初始化複本中所述。

    如需有關這些指令的更多資訊,請參閱 dsadm(1M)dsconf(1M) 線上手冊。

二進位復原

下列程序將說明如何復原您目錄中的尾碼。您的伺服器必須使用僅備份目錄資料中所述之程序完成備份。復原複寫協議中所載的尾碼之前,請先參閱復原已複寫的尾碼


注意 – 注意 –

請勿於復原作業期間停止伺服器。由於復原伺服器會覆寫所有現有的資料庫檔案,因此備份之後的一切資料修改都會遺失。


Procedure復原伺服器

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

    請使用下列其中一項指令復原您的伺服器:

    • 若您的伺服器是本機伺服器,並且已停止,請鍵入:


      $ dsadm restore instance-path archive-dir
      

      例如,若要從備份目錄中復原備份,請鍵入:


      $ dsadm restore /local/ds/ local/ds/bak/2006_07_01_11_34_00
    • 若您的伺服器位於遠端且正在執行中,請鍵入:


      $ dsconf restore -h host -p port archive-dir
      

      例如,若要從備份目錄中復原備份:


      $ dsconf restore -h host1 -p 1389 /local/ds/bak/2006_07_01_11_34_00 

    如需有關這些指令的更多資訊,請參閱 dsadm(1M)dsconf(1M) 線上手冊。

復原 dse.ldif 配置檔案

目錄伺服器會在下列目錄中建立 dse.ldif 檔案的兩個備份副本:


instance-path/config

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

Procedure復原 dse.ldif 配置檔案

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

  1. 停止伺服器。


    $ dsadm stop instance-path
    
  2. 切換至含有配置檔案的目錄。


    $ cd instance-path/config
  3. 以已知有效的備份配置檔案覆寫 dse.ldif 檔案,例如:


    $ cp dse.ldif.startOK dse.ldif
  4. 以下列指令啟動伺服器:


    $ dsadm start instance-path
    

從 LDIF 檔案匯入資料

您可以下列方式將資料匯入目錄伺服器尾碼:

下表說明初始化尾碼與大量增加、修改及刪除項目等作業間的差異。

表 8–1 初始化尾碼與大量匯入資料的比較

比較網域 

初始化尾碼 

大量增加、修改及刪除項目 

覆寫內容 

覆寫 

內容 

不覆寫內容 

LDAP 作業 

僅增加 

增加、修改、刪除 

效能 

快速 

較緩慢 

回應伺服器失敗 

不可分割 (失敗後會遺失所有變更) 

最大效率 (保留失敗前所做的所有變更) 

LDIF 檔案位置 

用戶端或伺服器本機 

於用戶端機器 

匯入配置資訊 (cn=config)

匯入配置資訊 

不匯入配置資訊 

指令 

若伺服器為本機伺服器,並且已停止: 

dsadm import

若伺服器位於遠端,且正在執行中: 

dsconf import

ldapmodify -B

初始化尾碼

初始化尾碼後,會將尾碼中的現有資料覆寫為僅含有增加項目之 LDIF 檔案的內容。

您必須認證為「目錄管理員」或「管理員」,方可初始化尾碼。

伺服器執行時,只有「目錄管理員」與「管理員」可匯入含有根項目的 LDIF 檔案。基於安全性考量,只有這些使用者可存取尾碼的根項目,例如 dc=example,dc=com

復原複寫協議中所載的尾碼之前,請先參閱復原已複寫的尾碼

Procedure初始化尾碼


備註 –

您所匯入的所有 LDIF 檔案均須使用 UTF-8 字元集編碼。

初始化尾碼時,LDIF 檔案必須含有對應尾碼的根項目與所有目錄樹狀結構節點。


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

    使用下列其中一項指令,可從 LDIF 檔案初始化尾碼,亦即將資料庫內容匯入 LDIF 檔案中。


    注意 – 注意 –

    這些指令可覆寫您尾碼中的資料。


    • 若您的伺服器是本機伺服器,並且已停止,請鍵入:


      $ dsadm import instance-path LDIF-file suffix-DN
      

      下列範例將使用 dsadm import 指令,將兩個 LDIF 檔案匯入單一尾碼中:


      $ dsadm import /local/ds /local/file/example/demo1.ldif \
       /local/file/example/demo2.ldif dc=example,dc=com
    • 若您的伺服器位於遠端且正在執行中,請鍵入:


      $ dsconf import -h host -p port LDIF-file suffix-DN
      

      下列範例使用 dsconf import 匯入 LDIF 檔案。執行此指令時不需具備超級使用者權限,但必須將您認證為具有超級使用者權限的使用者,如「目錄管理員」。


      $ dsconf import -h host1 -p 1389 /local/file/example/demo1.ldif \
       ou=People,dc=example,dc=com

    備註 –

    若您同時對多個尾碼執行 dsconf import 和/或 dsconf reindex 指令,作業事件記錄將因此增加,而可能對效能造成負面影響。


    如需有關這些指令的更多資訊,請參閱 dsadm(1M)dsconf(1M) 線上手冊。

大量增加、修改及刪除項目

執行 ldapmodify 作業時,您可以大量增加、修改或刪除項目。這些項目指定於含有修改或刪除現有項目之更新陳述式的 LDIF 檔案中。此作業不會清除已存在的項目。

您的目錄伺服器所管理的任何尾碼均可為變更項目的目標。與任何其他增加項目的作業相同,伺服器也會在所有的新項目匯入時為其編製索引。

ldapmodify 指令會透過 LDAP 匯入 LDIF 檔案,並執行檔案中包含的所有作業。使用此指令可讓您同時修改所有目錄尾碼中的資料。

復原複寫協議中所載的尾碼之前,請先參閱復原已複寫的尾碼

Procedure大量增加、修改及刪除項目


備註 –

您所匯入的所有 LDIF 檔案均須使用 UTF-8 字元集編碼。

匯入 LDIF 檔案時,父系項目必須位於目錄中,或先從檔案中增加。


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

    從 LDIF 檔案大量增加、修改或刪除。


    $ ldapmodify -D cn=admin,cn=Administrators,cn=config -w - -B baseDN -f LDIF-file
    

    下列範例將使用 ldapmodify 指令執行匯入。執行此指令時不需具備超級使用者權限,但必須將您認證為具有超級使用者權限的使用者,如 cn=Directory Managercn=admin,cn=Administrators,cn=config。最後一個參數指定所匯入的 LDIF 檔案名稱。


    $ ldapmodify -D cn=admin,cn=Administrators,cn=config -w - \
     -B dc=example,dc=com -f /local/ds/ldif/demo.ldif

復原已複寫的尾碼

復原在供應者伺服器與用戶伺服器之間複寫的尾碼之前,有些特殊注意事項必須留意。請儘可能透過複寫機制更新尾碼,而不要從備份進行復原。

復原供應者或集散中心實例時,伺服器配置的內容必須與製作備份時相同。為確實做到這一點,請在復原目錄伺服器資料前,先復原 dse.ldif 檔案。請參閱復原 dse.ldif 配置檔案

本節說明復原複本的方法與時機,以及如何確定此複本與其他複本在作業後仍保持同步。若要初始化複本,請參閱初始化複本

若您具有大型複寫尾碼,而想要增加許多項目並確定複寫更新皆正確增加,請參閱遞增多個項目到大型複寫的尾碼

本節包含下列項目的相關資訊:

復原單一主伺服器方案中的供應者

屬於單一主伺服器供應者的尾碼,含有整個複寫拓樸的授權資料。因此,復原此尾碼即等於重新初始化整個拓樸中的所有資料。只有在需要從所要復原的備份內容重新初始化所有資料時,始應復原單一主伺服器。

若單一主伺服器資料因錯誤而無法回復,請考慮使用其中一個用戶的資料,因為其中可能包含比備份還新的更新。在此情況下,您必須將用戶複本的資料匯出至 LDIF 檔案,再從 LDIF 檔案重新初始化主伺服器。

無論您選擇復原備份還是在主伺服器複本上匯入 LDIF 檔案,接下來都必須重新初始化由此複本接收更新的所有集散中心與用戶複本。供應者伺服器的記錄檔會記錄一則訊息,提醒您必須重新初始化用戶。

復原多重主伺服器方案中的供應者

在多重主伺服器複寫中,其他主伺服器均各含有複寫資料的授權副本。您無法復原舊的備份,因為它目前的複本內容可能已過期。請儘可能以複寫機制將主伺服器更新為其他主伺服器的內容。

若無法這麼做,請以下列其中一種方式復原多重主伺服器複本:

無論您以何種方式復原或重新初始化,主伺服器複本在初始化後仍會處於唯讀模式。此運作方式可讓複本與其他主伺服器進行同步化,以便您後續允許寫入作業,如復原多重主伺服器方案中的主伺服器中所述。

在復原或重新初始化的主伺服器上允許寫入作業前先彙整所有複本的好處在於,所有集散中心或用戶伺服器都將不需再進行重新初始化。

復原集散中心

本節僅適用於複寫機制無法自動更新集散中心複本的情況。資料庫檔案受損或複寫作業中斷過久,都屬於這種情況。在此類情況下,您必須以下列其中一種方式復原或重新初始化集散中心複本:


備註 –

無論您以何種方式復原或重新初始化集散中心複本,您接下來都必須重新初始化此集散中心的所有用戶,包括任何其他層級的集散中心在內。


復原專屬用戶

本節僅適用於複寫機制無法自動更新專屬用戶複本的情況。資料庫檔案受損或複寫作業中斷過久,都屬於這種情況。在此類情況下,您必須以下列其中一種方式復原或重新初始化用戶:

復原多重主伺服器方案中的主伺服器

使用多重主伺服器複寫時,其他主伺服器可能會在指定主伺服器復原期間處理變更作業。因此,當復原完成時,新的主伺服器必須再行接收復原資料中未納入的最新更新。由於復原主伺服器可能需要很長的時間,在此期間擱置的更新也可能因此為數眾多。

為彙整這些擱置更新,剛復原的主伺服器將自動設為唯讀模式,以利復原後的用戶端作業執行。但只有在透過指令行從 LDIF 檔案匯入資料或使用備份執行二進位複本,以進行主伺服器的復原時,才會設定為此。

因此,在復原之後,多重主伺服器配置中的主伺服器會處理複寫更新並允許讀取作業,但也會傳回所有來自用戶端之寫入作業的參照。

若要在允許更新前先驗證新的主伺服器是否已完全與其他主伺服器同步化,請手動啟用初始化之主伺服器的更新。


備註 –

由於主伺服器複本可能因其新運作方式而會傳送參照之故,需執行寫入作業的用戶端可能會達到其配置的躍點限制。您可以增加用戶端的躍點限制配置,使其能夠存取可用的主伺服器。若所有主伺服器複本均已初始化或重新初始化,則所有寫入作業都將失敗,因為沒有複本會接受用戶端更新。

無論如何,您都應該密切監視已初始化的主伺服器,並適當設定參照屬性,以儘可能提升伺服器的回應能力。


Procedure開始透過指令行接受更新

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

您可以在程序檔中使用下列指令,將初始化多重主伺服器複本的程序自動化。

  1. 使用 insync 工具,可確保複本已與所有其他的主伺服器彙整。

    若所有伺服器上各修改間的延遲為零,或複本從未有變更需複寫 (延遲為 -1),表示複本已同步化。如需更多資訊,請參閱 insync(1) 線上手冊。

  2. 開始接受更新。


    $ dsconf set-suffix-prop -h host -p port suffix-DN repl-accept-client-update-enabled:on

    此指令會自動將伺服器設為讀寫模式。

嚴重損壞回復

若要備份或復原您的目錄伺服器以供嚴重損壞回復之用,請使用下列程序。

Procedure製作嚴重損壞回復所需的備份

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

  1. 使用 dsadn backupdsconf backup 指令備份您的資料庫檔案。

    使用二進位備份中的程序,並將備份檔案儲存於安全的位置。

  2. 將配置目錄 instance-path/config 複製到安全的位置。

  3. 將模式目錄 instance-path/config/schema 複製到安全的位置。

  4. 將別名目錄 instance-path/alias 複製到安全的位置。

Procedure復原嚴重損壞回復

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

  1. 安裝與先前主機上相同版本的目錄伺服器。

  2. 使用 dsadm create 指令建立伺服器實例。

    使用在備份時所使用的相同實例。請參閱建立尾碼

  3. 復原配置目錄 instance-path/config

  4. 復原模式目錄 instance-path/config/schema

  5. 復原別名目錄 instance-path/alias

  6. 確定復原的伺服器所使用的配置正確無誤。

    例如,目錄結構與外掛程式配置均須與備份伺服器上的相同。

  7. 使用 dsconf restore 指令復原您的資料庫檔案。

    使用二進位復原中的程序。