Windows 系統管理

Windows Server 2008 中的 Active Directory 備份及還原

Gil Kirkpatrick

 

摘要:

  • NTBACKUP 與 Windows Server Backup 比較
  • 備份工具和選項
  • 修復工具和選項
  • Active Directory 完善備份策略的關鍵

大家都知道 Active Directory 網域服務 (ADDS) 是 Windows 基礎結構中任務關鍵的元件。Active Directory 若是失常,網路基本上也沒什麼用處。因此,Active Directory 的備份和修復計畫

是保持安全性、持續業務和循規的基礎。

Windows Server® 2008 為 Active Directory® 帶來了許多新功能,當中有兩項功能對備份和修復計畫有著深遠的影響:那就是全新的 Windows Server Backup 公用程式,以及製作和使用 Active Directory 磁碟區陰影複製服務快照集的功能。在本文中,我將說明這些增強功能所帶來的變更,並向您解釋要如何利用這些變更使 Active Directory 備份活動更具效率。

NTBACKUP 與 Windows Server Backup 比較

群組原則設定

Windows Server Backup 提供了幾項群組原則設定,可讓您有限地控制備份在伺服器上的運作方式。藉著這些備份原則,您可以緩和一些人們執行未授權備份以獲得未授權資料存取權的相關風險。這些選項包括:
僅允許系統備份 如果有設定這個選項,Windows Server Backup 便只會備份重要的系統磁碟區。它並不能執行磁碟區備份。
不允許將本機連接的儲存裝置做為備份目標 這個設定不允許備份到本機連接的磁碟機。您只能備份到網路共用。
不允許將網路做為備份目標 這個設定不允許備份到任何網路共用。
不允許將光學媒體做為備份目標 當設定這個選項時,Windows Server Backup 不能備份到任何光學裝置,例如可燒錄 DVD 磁碟機。
不允許只執行一次備份 這個設定不允許 Windows Server Backup 執行未經排定的臨機操作備份,只允許執行透過 Windows Server Backup MMC 嵌入式管理單元排定的備份。

您自 Windows NT® 3.5 以來認識與愛用的 NTBACKUP 已經移除,取而代之的是 Windows Server Backup。而這項新工具不只是盛裝打扮的 NTBACKUP 而已,它可是一套嶄新的備份技術,讓您不得不重新思考備份系統的方式。

雖然 Windows® Server Backup 是 Windows Server 2008 唯一內建的備份解決方案,但它並非取代 NTBACKUP 功能。兩者最大的差別是,Windows Server Backup 是磁碟對磁碟的備份解決方案,它並不支援備份到磁帶。您可以在直接連接的磁碟區、網路共用,甚至是外部 USB 硬碟機和多磁碟機可燒錄 DVD 上建立備份影像,但就是無法備份到磁帶。不過可以確定的是,您還是可以將磁帶機掛在 Windows Server 2008 伺服器上,並將 Windows Server Backup 產生的備份影像複製到磁帶機 — 但是必須使用別人的軟體進行這個動作。

NTBACKUP 是以檔案為主的備份和還原工具,而 Windows Server Backup 則是以磁碟區和區塊為主。Windows Server Backup 會將它的備份來源當作一組磁碟區來處理,並把每個磁碟區視為磁碟區塊的集合。這遠比透過檔案系統備份檔案要有效率許多。依區塊來處理備份也允許 Windows Server Backup 利用磁碟區陰影複製服務快照集來執行區塊層級的增量備份,並允許在目標磁碟區上建立快照集以簡化多個備份的使用 (並減少多個備份使用的空間)。

即使您進行的是完整備份,Windows Server Backup 在目標磁碟上還是可以有效利用空間。比方說,您可以對同一個磁碟區執行多個完整備份。因為 Windows Server Backup 在存放備份影像的目標磁碟上是使用磁碟區陰影複製服務快照集,所以快照集只會儲存變更過的區塊。這麼一來就可以大幅減少多個完整備份所使用的空間。而且要修復增量備份,也不需要執行多項還原作業。即使快照集只存放每個備份的差異內容,磁碟區陰影複製服務還是會讓每個備份完整顯示。

不過要小心的是,如果您是備份到本機磁碟,只有目標才能享有磁碟區陰影複製服務快照集的好處 — Windows Server Backup 不能對存放在 DVD 或網路共用上的備份,執行磁碟區陰影複製服務作業。

另外一項附加的好處是,Windows Server Backup 會以 Microsoft® 虛擬硬碟 (VHD) 格式來儲存備份影像。您可以實際上拿備份影像,在執行 Microsoft Virtual Server 2005 的虛擬機器中,把它當做磁碟區一樣掛上。只要在虛擬機器掛上 VHD,然後瀏覽特定的檔案就行了,不必執行磁帶的測試還原,來查看該檔案是在哪一個磁帶上面 (注意:您不能拿備份影像來啟動虛擬機器。因為備份的硬碟設定並不會對應到虛擬機器的設定,所以不能將 Windows Server Backup 當作實體對虛擬的移轉工具)。

但是 Windows Server Backup 的磁碟區和區塊導向有個缺點。由於這個新工具會將備份來源視作一組磁碟區和區塊,因此它並不允許您單獨備份選定的檔案,您必須備份整個磁碟區。更麻煩的是,在預設的情況下,您不能將備份影像儲存到要備份的任何一個磁碟區上 (有些方法是專門用來應付這個問題的,請參閱 support.microsoft.com/kb/944530)。這對系統狀態備份有著深遠的隱含意義,我在本文稍後會討論到。

安裝 Windows Server Backup

Windows Server Backup 是 Windows Server 2008 中的一項「功能」,而且預設不會安裝。在使用 Windows Server Backup 執行備份之前,您必須使用伺服器管理員或 SERVERMANAGERCMD 命令列公用程式來安裝這項功能。

C:\> servermanagercmd -install Backup-Features

Windows Server Backup 包括兩個子功能,亦即 Windows Server Backup 和命令列工具。要注意的是,命令列工具指的是一組 Windows PowerShellTM 指令程式 — 而不是指 WBADMIN .EXE 命令列工具。因此,如果您選擇安裝兩個子功能,就必須安裝 Windows PowerShell 功能。

Windows Server Backup 安裝好之後,可以在伺服器管理員內的存放節點下,找到 Microsoft Management Console (MMC) 嵌入式管理單元。如果您將 Windows Server Backup 安裝在 Windows Server 2008 Server Core 安裝上,請使用 OCSETUP 命令 (請特別注意 OCSETUP 命令有大小寫區分):

C:\> ocsetup WindowsServerBackup

go.microsoft.com/fwlink/?LinkId=113146 上有安裝程序的完整說明。

請注意,Windows Server Backup 並不能還原使用 NTBACKUP 建立的影像。對於這個罕見的案例,Microsoft 提供了適用於 Windows Server 2008 的 NTBACKUP 下載版本 (請參閱 go.microsoft.com/fwlink/?LinkId=113147)。

Windows Server Backup 元件

Windows Server Backup 應用程式在架構方面有了大幅的變動。這個全新的備份解決方案包含四個元件:

  • MMC 使用者介面 (WBADMIN.MCS)
  • 命令列介面

(WBADMIN.EXE)

  • 備份服務 (WBENGINE.EXE)
  • Windows PowerShell 指令程式組

將應用程式劃分成用戶端和服務有幾項優點,當中最重要的是提高可靠性。無論是您從 MMC 用戶端或命令列介面開始備份,大部分的苦差事都是由 WBENGINE 服務擔當,用戶端程式只負責報告備份的狀態。因此,終止用戶端並不會產生半生不熟的備份。雖然用戶端會停止,但服務還是會繼續到作業完成為止。當然啦,如果您真的想要的話,還是可以停止備份,不過得明確地進行。

這種分割的架構還有另外一項優點,那就是您可以使用用戶端來管理遠端機器上的備份。當您必須備份 Windows Server 2008 Core 機器時,這一點尤其管用。

Windows Server Backup 支援使用 Windows 修復環境或 WinRE (附在 Windows Server 2008 安裝媒體中) 進行 Windows 裸機還原。WinRE 可簡化從頭修復伺服器的過程,我在本文稍後會討論執行裸機還原。另外值得一提的是,Windows Server Backup 還支援幾個可用來管理備份的群組原則設定 — 這些在「群組原則設定」資訊看板都有提到。

磁碟區陰影複製服務

Windows Server Backup 透過三種不同的方式來使用磁碟區陰影複製服務。當您在 Windows Server 2008 上開始進行完整備份時,應用程式所做的第一件事,就是為所有的來源磁碟區製作一份陰影複本。此舉可以提供一致的檔案系統檢視,供備份軟體使用 (這跟 NTBACKUP 的作法類似)。Windows Server Backup 接著會從來源磁碟區將區塊 — 一個區塊接一個區塊進行 — 複製到備份目標,為過程中每個備份的磁碟區建置 VHD 影像。

除非另外指明,否則 Windows Server Backup 還會建立來源磁碟區的快照集,讓磁碟區陰影複製服務追蹤磁碟區上所有已變更的區塊。這麼一來,Windows Server Backup 便會建立區塊層級的增量備份,而這種備份只需要讀取來源磁碟區有所變更的區塊。也就是說,Windows Server Backup 可以只讀寫變更的區塊,無需因為檔案裡面有一點點變更就得讀取整個檔案。

此舉可以有效進行增量備份,只是來源磁碟區上需要有額外的磁碟 I/O 來進行寫入作業。如果您正在備份特別忙碌或攸關效能的磁碟區,則應該停用來源磁碟區上的磁碟區陰影複製服務快照集,方法是選取 [設定效能設定] 連結,然後停用該磁碟區上的增量備份 (如 [圖 1] 所示)。

Figure 1 Disable incremental backups on busy volumes

Figure 1** Disable incremental backups on busy volumes **(按影像可放大)

當備份完成時,Windows Server Backup 會製作目標磁碟區的快照集 (假設您備份的是本機連接的硬碟),在下次備份期間,覆寫目標 VHD 檔案。但因為磁碟區陰影複製服務正在維護目標磁碟區的陰影複本,所以每一個 VHD 檔案實際上會有多個版本與每一個完整備份相對應。基本上您是花費一次完整備份和變更區塊的成本,獲得多個完整備份。

備份到網路共用

備份到網路共用就跟備份到本機磁碟區一樣簡單。最大的差別在於,它不能建立遠端磁碟區的磁碟區陰影複製服務快照集。因此,每一個完整備份都會覆寫前一個備份,只留給您網路共用上每部伺服器最新的完整備份影像。也因為這項限制,您無法使用 Windows Server Backup 排程器來排定網路共用的備份。不過,您倒是可以使用 Windows 工作排程器來執行 WBADMIN 命令列程式,進行網路共用的完整備份。如果您選擇透過這種方式來排定網路共用的完整備份,請變更每一個備份的目標資料夾,以避免覆寫前一個備份。

備份到可燒錄 DVD

Windows Server Backup 也支援備份到光學媒體 (例如可寫入 DVD),而且您還可以建立橫跨多個磁碟區的備份組。Windows Server Backup 一律會壓縮 DVD 的備份,也就是說您只能從 DVD 執行完整系統或完整磁碟區還原。Windows Server Backup 並不支援使用 DVD 的系統狀態或檔案層級備份和還原。您也無法排定 DVD 的備份。

系統狀態備份及還原

系統狀態還原只包含選定的檔案和一些應用程式資料庫 (而不是整個磁碟區),這種備份既實用,往往也是必要的。但是 Windows Server 2008 早期的組建版本並不支援系統狀態備份及還原,備份工具只會備份重要的系統磁碟區 (也就是修復和重新啟動 OD 和重要應用程式所需的任何磁碟區),這些重要的系統磁碟區等於是磁碟區導向的系統狀態備份。

了解到客戶的意見反映之後,Microsoft 在 Windows Server Backup 中加入了系統狀態備份和還原功能。應用程式會建立多個 VHD 檔案,每個裝載系統狀態資料的磁碟區各一個,但是它只會複製必要的檔案和資料庫到 VHD。另外一個問題是,當您執行系統狀態備份時,Windows Server Backup 並不會像在正常備份程序一樣建立目標磁碟區的快照集,而是由每一個系統狀態備份產生全新一組的 VHD 檔案,也就是說您不能像使用快照集式磁碟區備份一樣有效利用空間。

您只能使用 WBADMIN.EXE 命令列程式執行系統狀態備份 — MMC 嵌入式管理單元並不提供這個選項。若要執行系統狀態備份,請使用這個命令:

C:\> wbadmin start systemstatebackup
–backuptarget:e:

WBADMIN 接著會將重要的系統檔案和應用程式資料庫備份到目標磁碟區,置於為系統狀態備份保留的資料夾中。在含有預設目錄資訊樹狀目錄 (DIT) 的 32 位元 Windows Server 2008 網域控制站 (DC) 上進行系統狀態備份,需要 6GB 多的空間 — 這比在 Windows Server 2003 上還多 5GB,有部分是因為 Windows Server Backup 會擷取 NTBACKUP 不會擷取的核心 OS 檔案。

跟您預期的一樣,備份系統狀態所需的時間也比較長。不用說,這些初步的數字都是根據 OS 的預先發行版得來的。當然您需要在自己的環境內測試這項作業,但當您將網域控制站移往 Windows Server 2008 時,很有可能需要針對較大型的系統狀態備份 (以及較長的備份時間) 作規劃。

透過 MMC 備份伺服器

在執行 Windows Server Backup MMC (見 [圖 2]) 時,您可以選擇設定備份排程,也可以選擇立即執行臨機操作備份。在本例中,我選擇 [單次備份] 來執行立即備份。

Figure 2 Windows Server Backup MMC

Figure 2** Windows Server Backup MMC **(按影像可放大)

如您在 [圖 3] 所見,我可以選擇備份伺服器上所有的磁碟區,也可以選擇只備份我所選的特定磁碟區。如果我選擇 [完整伺服器],Windows Server Backup 便會備份所有掛上的磁碟區,但我無法選擇備份掛上的硬碟機 — 而是必須備份到可燒錄 DVD 或網路共用。

Figure 3 Using the backup configuration dialog to specify all or select volumes

Figure 3** Using the backup configuration dialog to specify all or select volumes **(按影像可放大)

在本例中,我想要備份到本機硬碟機,所以我選擇 [自訂] 選項。這時候會出現一個對話方塊,讓我選擇要備份的磁碟區 (見 [圖 4])。根據預設,Windows Server Backup 會勾選 [啟用系統修復] 方塊,使 Windows Server Backup 選取開機磁碟區、OS 磁碟區和任何其他含重要系統檔案和應用程式資料庫的磁碟區。如果是在 DC 上,還包括裝載 SYSVOL、Active Directory DIT 和 Active Directory 記錄檔的磁碟區。這等於是系統狀態備份,但它不只會備份該些磁碟區上重要的檔案而已,還會備份所有重要的磁碟區。事實上,我甚至還能夠從系統修復備份組執行系統狀態修復。

Figure 4 Selecting specific volumes to back up

Figure 4** Selecting specific volumes to back up **(按影像可放大)

在選擇目的地類型 (本機磁碟機或網路共用) 並指定目的地之後,Windows Server Backup 會提示我選擇 [VSS 複製備份] 或 [VSS 完整備份]。這裡的用詞可能會讓人混淆,因為兩個選項都會完整地備份選定的磁碟區。唯一的差別是 Windows Server Backup 在備份之後處理來源檔案的方式。如果您選擇複製選項,Windows Server Backup 會將備份檔案保留原封不動,如果選擇完整選項,Windows Server Backup 就會重設封存。

從命令列備份伺服器

如果您要編寫指令碼執行備份程序,或是要在 Server Core 安裝上備份伺服器,可以使用 WBADMIN.EXE 命令列程式。WBADMIN 會提供一組完整的選項,其功能基本上與 MMC 嵌入式管理單元差不多,包括管理備份排程在內。

如果我想啟動 WBENGINE 服務,它就會轉而執行備份程序。方法很簡單,只要輸入這個命令就行了:

C:\> wbadmin start backup –include:c:,d:
–backuptarget:e:

如果要備份所有重要的系統磁碟區,可以輸入這個命令:

C:\> wbadmin start backup -allcritical
–backuptarget:e:

開始備份之後,WBADMIN 會繼續執行並顯示備份的進度。即使終止 WBADMIN,備份還是會在背景繼續進行。之後可以再使用這個命令,將 WBADMIN 重新連接到一個執行中的備份作業:

C:\> wbadmin get status

如果想終止執行中的備份作業,只要輸入下面這個命令就行了:

C:\> wbadmin stop job

透過 MMC 排定備份排程

與 Windows Server Backup 整合的備份排程器,實際上是為了進行一項工作而設計的:簡化本機磁碟磁碟區的日常完整系統備份的排程作業。您可以使用內建排程器,自動在多個目標磁碟之間輪流備份。如果您有容易卸除的硬碟機 (或是使用 USB 連接的硬碟機),可以使用這項功能來設定輪流配置、移除備份磁碟、離站存放它,然後將最舊的備份磁碟裝回伺服器以進行下次排定的備份。

Windows Server Backup 排程器只能排定每天都會進行的備份,而無法排定一、三、五備份。所以如果您不想每天執行排定的備份,就必須直接用 Windows 工作排程器。

設定本機磁碟的排程備份時,Windows Server Backup 會負責該磁碟,將它格式化、設定特定的資料夾結構,並讓 Windows 檔案總管看不到目標磁碟。目標磁碟必須是基本磁碟 — Windows Server Backup 不能備份到設定為動態磁碟區的磁碟。

透過 MMC 嵌入式管理單元排定備份非常簡單。在這個範例中,我先選取 [備份排程] 連結,指定備份的類型以及要備份的磁碟區,接著 Windows Server Backup 便會顯示 [指定備份時間] 對話方塊 (見 [圖 5])。

Figure 5 Specifying when daily backups should occur

Figure 5** Specifying when daily backups should occur **(按影像可放大)

在選定要進行備份的時間後,可以選擇要備份的磁碟區。在本例中,我選擇備份磁碟區 E:,如 [圖 6] 所示。Windows Server Backup 會努力為您選擇適當的目標磁碟區,但如果您想要備份的磁碟剛好沒有顯示出來的話,可以使用 [顯示所有可用磁碟] 按鈕,來查看所有連接的磁碟裝置。經過幾個「確認」對話方塊之後,Windows Server Backup 會將目標磁碟區格式化,並使用 Windows 工作排程器排定備份工作。

Figure 6 Specifying the destination disk for a scheduled backup

Figure 6** Specifying the destination disk for a scheduled backup **(按影像可放大)

每完成一次排定備份,Windows Server Backup 都會製作目標磁碟區的快照集,而且每七天都會建立新的基礎影像。相關活動會記錄在 Microsoft/Backup/Operational 記錄檔中。您可以檢查該處看看備份是否順利完成,也可以將工作 (例如傳送電子郵件訊息) 與成功和失敗的事件建立關聯,這樣隨時都可以確知排定備份的狀態。

從命令列排定備份

如果您是在 Server Core 安裝上排定備份,或者只是想編寫指令碼執行這個程序,可以使用 WBADMIN 命令列管理備份排程。如果要新增排定的備份,請使用 WBADMIN ENABLE BACKUP 命令,指定目標、來源和排定時間,就像如下所示:

C:\> wbadmin enable backup –addtarget:e:
-include:c:,d: -schedule:06:00,12:00,18:00

這個命令每天會將 C:和 D:磁碟機備份到 E:磁碟機三次,分別在上午六點、中午十二點和下午六點 (請注意,所有的時間都是使用 24 小時制指定)。若要備份所有重要的系統磁碟區 (也就是可以執行裸機還原或系統狀態還原的磁碟區),請將 –include 參數換成 –allcritical。

您也可以使用 WBADMIN 來停用所有的排定備份,如下所示:

C:\> wbadmin disable backup

這個命令會刪除 Windows Server Backup 排程器所建立的所有排定備份工作,並釋放所有備份目標磁碟區以供正常使用。請注意,您隨時都可以使用 WBADMIN MMC 嵌入式管理單元,從遠端管理 Server Core 伺服器的備份和還原活動。

網域控制站的裸機修復

備份和修復其中一項最令人雀躍的改進,是在安裝程序當中加了 WinRE。當您從安裝媒體啟動 Windows Server 2008 時,可以選擇 [修復您的電腦] 選項,如 [圖 7] 所示。在此特別指出這個選項,是因為稍不留意就很容易錯過它。

Figure 7 The Repair your computer option is available on the installation screen

Figure 7** The Repair your computer option is available on the installation screen **(按影像可放大)

在安裝畫面上選取修復選項之後,Windows 會讓我選擇一個復原選項,如 [圖 8] 所示。在本例中,我選擇 [Windows Complete PC 還原],來叫用 Windows 修復環境。

Figure 8 Specifying system recovery options

Figure 8** Specifying system recovery options **(按影像可放大)

選好要修復的作業系統之後 (通常只有一個選項),WinRE 會讓您選擇要從中還原的備份。根據預設,WinRE 會選擇最近的完整系統備份,但是您可以指定儲存在本機磁碟上的其他備份,或是在網路上搜尋儲存在其他伺服器上的檔案共用的備份。

在我的例子當中,我選擇最近的完整系統備份。接下來出現的對話方塊 (如 [圖 9] 所示),可讓我在還原所有磁碟之前,先將它們格式化和重新磁碟分割。如果您要修復的問題是因磁碟失敗而引起,或是您已在伺服器內替換了一或多個磁碟機的話,這就是一個適當的選項。

Figure 9 You can easily format and repartition disks before they're restored

Figure 9** You can easily format and repartition disks before they're restored **(按影像可放大)

經過幾個確認對話方塊後,WinRE 就啟動還原程序,而伺服器則重新啟動。這是在伺服器上執行裸機修復較輕鬆的方法。

網域控制站的系統狀態復原

如果您需要從某種 Active Directory 相關的問題復原 — 例如,從備份復原已刪除的 OU — 應該將 Active Directory 網域服務 (ADDS) 資料庫還原到早先的狀態,而不是還原整個系統。即使您可以在 Windows Server 2008,把 ADDS 當作服務一樣加以停止,還是需要將伺服器開機到目錄服務還原模式 (DSRM),才能在網域控制站執行系統狀態還原。

變更開機選項讓 Windows Server 2008 開機到 DSRM,並不像從前那麼容易。為了支援全新可延伸韌體介面 (EFI),整個 Windows 開機環境已經重新設計過,舊的 boot.ini 檔案已經不存在,現在 Windows Server 2008 是改採開機設定資料 (BCD) 來控制開機程序。

管理 BCD 最簡單的方法,是使用 BCDEDIT 命令列程式。若要討論所有的 BCDEDIT 命令和選項,可能要另闢單元,所以在此只能說明一些實用的範例。

若要將 Windows Server 2008 DC 重新開機到 DSRM,請使用下列命令:

C:\> bcdedit /set safeboot dsrepair

這個命令會為預設開機載入器項目設定安全開機選項。在 Windows Server 2008 全新安裝中,只有一個開機載入器項目,那就是 WINLOAD.EXE。若要移除安全開機選項並以正常模式重新開機,請使用這個命令:

C:\> bcdedit /deletevalue safeboot

若要減輕您的負擔,可以在 DC 上設定兩個開機載入器項目 — 一個用於正常開機,另一個用於 DSRM 開機。這麼一來,您就可以使用 [系統] 設定下所提供的 [啟動及修復] 設定對話方塊來變更開機選項。若要加入新的開機載入器項目,請使用這個命令:

C:\> bcdedit /copy {default}
/d "Directory Service Repair Mode"

這個動作會透過複製預設開機載入器項目,來建立新的開機載入器項目。BCDEDIT 會顯示如下內容:

The entry was successfully copied to
{c50d4710-a1f0-11dc-9580-0003ff402ae9}.

GUID 會識別新的項目。接著請使用這個命令,在 BCD 中設定新開機載入器項目的安全開機選項:

C:\> bcdedit /set {<GUID for new entry>}
safeboot dsrepair

現在您就可以使用 [啟動及修復] 設定,從正常開機模式切換到 DSRM 開機模式了 (見 [圖 10])。

Figure 10 Disable incremental backups on busy volumes

Figure 10** Disable incremental backups on busy volumes **

在使用 WBADMIN 啟動系統狀態還原作業之前,必須先識別要從中進行還原的備份。WBADMIN 可從完整系統備份、只包含重要系統磁碟區的備份,或是系統狀態備份來執行系統狀態還原。無論是透過哪種方式,都必須指定要使用的備份版本。要識別可用的備份版本,最簡單的方法是使用下面這個 WBADMIN 命令:

C:\> wbadmin get versions

WBADMIN 接著會在表單中顯示備份版本,此表單與 [圖 11] 所示的資訊相類似。請注意,每個備份都有備份時間、備份目標、版本識別項 (這是備份在通用標準時間開始的時間和日期),以及一份備份可以支援的修復作業類型清單。

Figure 11 識別能夠用於復原的備份

wbadmin 1.0 - Backup command-line tool
(C) Copyright 2004 Microsoft Corp.
Backup time: 11/30/2007 3:47 PM
Backup target: Fixed Disk labeled E:
Version identifier: 11/30/2007-22:47
Can Recover: Application(s), System State
Backup time: 12/1/2007 10:46 PM
Backup target: Fixed Disk labeled Backup(E:)
Version identifier: 12/02/2007-05:46
Can Recover: Volume(s), File(s), Application(s), Bare Metal Recovery, System State
Backup time: 12/2/2007 5:58 PM
Backup target: Fixed Disk labeled Backup(E:)
Version identifier: 12/03/2007-00:58
Can Recover: Volume(s), File(s), Application(s), Bare Metal Recovery, System State
Backup time: 12/3/2007 11:25 AM
Backup target: Fixed Disk labeled E:
Version identifier: 12/03/2007-18:25
Can Recover: Application(s), System State

在本例中,我選擇最近的備份,並使用這個 WBADMIN 命令來啟動系統狀態還原:

C:\> wbadmin start systemstaterecovery
–version:12/03/2007-18:25

這個命令會執行非授權的還原作業。如果您想要執行 SYSYOL 授權的還原,只要將還原的 SYSVOL 複本標示成授權就行了,方法是在 WBADMIN 命令中加入 authsysvol 參數。如需有關此程序的詳細資訊,請參閱 go.microsoft.com/fwlink/?LinkId=113152

製作 Active Directory 快照集

Active Directory 在備份方面最令人驚喜的變更,與 Windows Server Backup 毫無關聯。在 Windows Server 2008 中,您可以充分利用 Active Directory 所提供的磁碟區陰影複製服務快照集。這些快照集是執行中的 Active Directory 服務非常輕量的時間點備份。更棒的是,建立它們根本用不到幾秒的時間!接著您可以掛上這些快照集,然後使用標準 LDAP 公用程式 (例如 LDP 工具) 來存取它們。

您可以使用 NTDSUTIL 命令,製作 ADDS 或 Active Directory 輕量型目錄服務 (ADLDS) 的快照集,如下所示:

ntdsutil: snapshot
snapshot: activate instance ntds
Active instance set to "ntds".
snapshot: create
Creating snapshot...
Snapshot set {42c44414-c099-4f1e-8bd8-4453ef2534a4} generated successfully.
snapshot: quit
ntdsutil: quit

這一系列的 NTDSUTIL 命令會建立內含 Active Directory DIT、記錄檔和 SYSVOL 的磁碟區的磁碟區陰影複製服務快照集。雖然仍舊會更新 Active Directory,但磁碟區陰影複製服務還是會使用寫入時複製策略,來確保您製作的快照集受到適當的維護。不過要注意的是,快照集並不是完整的 DIT 複本,它們只不過是 DIT 中自快照集製作以來經過修改的磁碟區塊集合。VSS 可以結合這些區塊與 DIT 目前複本來呈現 Active Directory DIT,就像在製作快照集當時一樣。[圖 12] 顯示如何刪除老舊或不用的快照集。

Figure 12 刪除不用的快照集

C:\> ntdsutil
ntdsutil: snapshot
snapshot: list all
 1: 2007/12/03:23:18 {42c44414-c099-4f1e-8bd8-4453ef2534a4}
 2:   C: {c0dd71ba-5bcd-4daf-9fbb-5cfbdd168022}
 3:   D: {2bbd739f-905a-431b-9449-11fba01f9931}
snapshot: delete 1
Snapshot {c0dd71ba-5bcd-4daf-9fbb-5cfbdd168022} mounted as C:\$SNAP_200712032318_VOLUMEC$\
Snapshot {2bbd739f-905a-431b-9449-11fba01f9931} mounted as C:\$SNAP_200712032318_VOLUMED$\
snapshot: quit
ntdsutil: quit
C:\>

掛上 Active Directory 快照集

如果要使用其中一個快照集,必須先指示磁碟區陰影複製服務,將快照集提供給檔案系統使用。方法是以 ntdsutil 命令列出可用的快照集,然後再掛上您感興趣的快照集 (見 [圖 13])。

Figure 13 使用 ntdsutil 掛上快照集

C:\> ntdsutil
ntdsutil: snapshot
snapshot: list all
 1: 2007/12/03:23:18 {42c44414-c099-4f1e-8bd8-4453ef2534a4}
 2:   C: {c0dd71ba-5bcd-4daf-9fbb-5cfbdd168022}
 3:   D: {2bbd739f-905a-431b-9449-11fba01f9931}
snapshot: mount 1
Snapshot {c0dd71ba-5bcd-4daf-9fbb-5cfbdd168022} mounted as C:\$SNAP_200712032318_VOLUMEC$\
Snapshot {2bbd739f-905a-431b-9449-11fba01f9931} mounted as C:\$SNAP_200712032318_VOLUMED$\
snapshot: quit
ntdsutil: quit
C:\>

"list all" 命令會列出磁碟區陰影複製服務目前所維護的所有可用的 Active Directory 快照集。而 "mount 1" 命令會掛上選定的 Active Directory DIT 快照集,並記錄磁碟區,讓它們能夠在檔案系統中使用。它們是位於 C:\$SNAP_200712032318_VOLUMEC$\ 和 C:\$SNAP_200712032318_VOLUMED$\。

如果您查看這些資料夾,就會看到那些磁碟區的完整內容,這些內容與在製作快照集當時所呈現的一樣。不過要注意的是,掛上的快照集是唯讀的 — 也就是說,您無法在掛上的快照集裡面修改任何檔案。

從 Active Directory 快照集復原資料

掛上內含 Active Directory 的磁碟區的快照集,就好像變魔術一樣。到底該如何取得這些快照集所含的 Active Directory 資料呢?秘密就在 DSAMAIN 命令。這是一個執行 ADLDS 的執行檔。基本上它是一部獨立的 LDAP 伺服器,幾乎它所有的程式碼都與 ADDS 一起共用。您可以使用 DSAMAIN,讓掛上的快照集看起來像是在製作快照集當時內含 Active Directory 資料的唯讀 LDAP 伺服器。

請看下面這個命令:

C:\> dsamain –dbpath
c:\$snap_200712032318_volumed$\ntds\dit
\ntds.dit -ldapport 10000

這個命令會掛上位於 c:\$snap_200712032318_volumed$\ntds\dit 資料夾內的 ntds.dit 檔案,並且在 TCP 連接埠 10000 (或是任何您所指定的開放連接埠) 將它提供給 LDAP 作業使用。DSAMAIN 會在您指定外加 1 的連接埠 (在本例中,即 10001) 上開啟 LDAPS 連接埠 (也就是在安全通訊端層用於 LDAP 的連接埠)、在您指定外加 2 的連接埠 (10002) 上開啟 GC 連接埠 (用於通用類別目錄連線的連接埠),以及在您指定外加 3 的連接埠 (10003) 上開啟 GCS (在安全通訊端層上的通用類別目錄)。

您可以使用任何 LDAP 程式 (例如 LDP),來存取掛在指定連接埠上的 DIT。但是在 Windows Server 2008 中,Active Directory 使用者和電腦 (ADUC)、站台及服務,以及網域和信任,還有 ADSIEDIT 都已經過修改,以便讓您使用 DSAMAIN,將它們連接到掛上的 DIT。如果您在任何 ADUC 的瀏覽窗格內,以滑鼠右鍵按一下頂層節點,然後選取 [變更網域控制站],就會看到如 [圖 14] 所示的對話方塊。如果您連同連接埠 (在我的範例中是 localhost:10000),直接輸入裝載掛有快照集之伺服器的名稱和 IP 位址,ADUC 就會連接到掛上的快照集,讓您像在製作快照集當時一樣,瀏覽目錄的內容。很不可思議對吧?

Figure 14 Connecting Active Directory users and computers to a mounted snapshot

Figure 14** Connecting Active Directory users and computers to a mounted snapshot **(按影像可放大)

透過這種方式來存取目錄資料之後,許多資料復原的工作就比以往簡單許多。比方說,過去要從備份復原已刪除的物件,必須在現有的 DC 上執行備份的非授權還原,然後再執行已刪除物件的授權還原。而且若是您還原的備份沒有正確的資料,還得用不同的備份重新來過。但是現在,只要使用恢復刪除標記和快照集,就可以快速找出並復原刪除的資料,甚至不用讓網域控制站離線也辦得到。

不過,還是有一些限制。比方說,每一個作用中的快照集都會增加與寫入目錄作業相關聯的磁碟 I/O,因此在實際執行 DC 上的任何時間點,都不應該有超過一或兩個快照集處於作用狀態。另外,您讓快照集保持作用的時間越長,磁碟區陰影複製服務的差異存放區就會變得越大 — 這也可能會影響效能。更不用提的是,復原已刪除的物件只不過是修復問題的開端,另外可能還必須復原物件的連結屬性,例如群組成員資格。但是即使如此,快照集還是能夠幫助您識別已刪除物件所屬的所有群組。

完善的 Active Directory 備份和復原策略

Windows Server 2008 推出了嶄新的備份和復原系統。有些變更剛開始可能會讓您恨得咬牙切齒,不過一旦 IT 公司接受這些變更,並且將新的備份技術結合到日常作業之後,就會達成更有效的備份和修復實作。

雖然 Windows Server 2008 大大改變了您備份伺服器的方法,但是備份和復原 Active Directory 的基本策略並沒有改變太多。所以您在規劃策略時,務必要謹記這些最佳作法:

  • 定期執行完整系統備份,以備在硬體失敗後復原 DC。至於執行 DC 完整備份的頻率,則要根據資料更新的頻率、您對停機和/或資料流失的容忍度,以及從頭重建 DC 可能需要花費的功夫而定。
  • 經常定期執行系統狀態備份,以備份 Active Directory 中的變更。至於執行系統狀態備份的頻率,則要根據您對遺失 Active Directory 資料的容忍度而定。不過每天至少要進行一次。如果您有硬體的話,至少要在本機磁碟上保留一或兩個系統狀態備份,然後將較舊版的系統狀態版本複製到 DVD 或網路共用。
  • 每個網域至少要在兩個 DC 上進行系統狀態備份。萬一其中一個備份損毀或無法使用時,還能夠提供一些保障。

如果有定義應用程式磁碟分割複本的話,一定要使用它們來備份 DC。同時也請在 DC 上建立 Windows 修復環境磁碟分割,萬一重要系統磁碟機失敗,就可以快速開機到 WinRE。

Gil Kirkpatrick 是 NetPro 的技術長 (CTO),並且自 1996 年以來便開始針對 Active Directory 開發軟體。他偕同 HP 的 Guido Grillenmeier 創辦了廣受歡迎的 Active Directory 嚴重損壞修復工作室。Gil 也是 Directory Experts Conference (請參訪 www.dec2007.com) 的創始人。

© 2008 Microsoft Corporation and CMP Media, LLC. 保留所有權利;未經允許,嚴禁部分或全部複製.