一、Alarm! Disaster is Fall……
糟糕的事情總是在人們最不想它出現(xiàn)的時(shí)候出現(xiàn)。這天,那臺(tái)4400的服務(wù)器,就這樣忽然死亡了……
據(jù)在現(xiàn)場(chǎng)的同事描述,服務(wù)器忽然變慢,停止了網(wǎng)絡(luò)服務(wù),直到停止一切響應(yīng)。
為了恢復(fù)服務(wù),他們只有重新啟動(dòng)該服務(wù)器。強(qiáng)制重新啟動(dòng)服務(wù)器后,出現(xiàn)藍(lán)屏,系統(tǒng)報(bào)告stop: 0x0000007b錯(cuò)誤,inaccessable_boot_device。一開始我以為只是MBR壞了或者ntldr及NTdetect.com壞了,那樣的話我只需要在故障恢復(fù)臺(tái)里面使用fixmbr和fixboot來修復(fù)。由于服務(wù)器使用的是硬件RAID,只能在光盤啟動(dòng)時(shí)使用F6加載RAID的啟動(dòng),然后進(jìn)入故障恢復(fù)臺(tái),看看是否能否訪問系統(tǒng)分區(qū)。進(jìn)去后大驚,用diskpart可以看到系統(tǒng)分區(qū),但是系統(tǒng)分區(qū)不再可讀了,dir命令無法枚舉任何文件和目錄。
說到這里,要介紹一下該服務(wù)器的環(huán)境了。這臺(tái)Windows 2000 Advanced Server是這個(gè)域(下文使用domian.com命名)的第一臺(tái)Domain Controller,五個(gè)操作主機(jī)角色(FSMO)都在上面。限于條件,上面運(yùn)行了Exchange Server 2000,也用作了File Server/Printer Server。另外還有DHCP/WINS/DNS。備份的磁帶,容量不足以完成完整備份……所以說,服務(wù)器的退出服務(wù),對(duì)于我們是一場(chǎng)真正的災(zāi)難。如果沒有其他的Domain Controller,可能我們要忙上好長(zhǎng)時(shí)間了。就是因?yàn)檫€有其他Domain Controller,我們還有一線希望!
二、Mission Impossible? Impossible is Nothing!
0、使用其它服務(wù)器替代網(wǎng)絡(luò)服務(wù)
客戶所受的影響必須降到最小。由于網(wǎng)絡(luò)中使用DHCP服務(wù)器為客戶機(jī)分配地址和提供網(wǎng)絡(luò)信息,我們必須先解決客戶機(jī)DHCP租約到期更新的問題。
原先我們只有這一臺(tái)DHCP服務(wù)器,而現(xiàn)在它壞掉了。于是我們?cè)诹硗獾?/span>Server上安裝了DHCP,劃分的地址范圍是原先的20%。這樣做的理由是到期更新租約的客戶機(jī)畢竟不是很多,當(dāng)然也可以根據(jù)租約時(shí)間長(zhǎng)短和客戶機(jī)的數(shù)量自行調(diào)整,更新越快,劃分的地址越多。
同時(shí),我們安裝了WINS和DNS,并且為DNS添加了原先手動(dòng)設(shè)置的區(qū)域和記錄。
1、恢復(fù)域控制器
Active Directory是基于Windows 2000網(wǎng)絡(luò)環(huán)境的基石。有太多的信息保存在這里,有了Active Directory,我們可以恢復(fù)相當(dāng)多的服務(wù)器配置信息,比如DNS的配置之類。所以我們首先要考慮的,就是恢復(fù)主機(jī)角色。
順便介紹一下主機(jī)角色。Active Directory 定義了五種操作主機(jī)角色(FSMO):
架構(gòu)主機(jī) schema master
域命名主機(jī) domain naming master
相對(duì)標(biāo)識(shí)號(hào)(RID)主機(jī) RID master
主域控制器模擬器 PDCE
基礎(chǔ)結(jié)構(gòu)主機(jī) infrastructure master
架構(gòu)主機(jī)是可以更新目錄架構(gòu)的唯一域控制器。架構(gòu)更新會(huì)從架構(gòu)主機(jī)復(fù)制到活動(dòng)目錄森林中的所有其它域控制器。整個(gè)森林中只有唯一一臺(tái)架構(gòu)主機(jī)。
域命名主機(jī)是可以執(zhí)行以下任務(wù)的唯一域控制器:在森林中添加或刪除域,添加或刪除描述外部目錄的交叉引用對(duì)象。
相對(duì)標(biāo)識(shí)號(hào)(RID)主機(jī)是負(fù)責(zé)向其它域控制器分配RID池的唯一一臺(tái)服務(wù)器。在創(chuàng)建安全主體(例如用戶、組或計(jì)算機(jī),也可以理解成賬號(hào))時(shí),需要將RID與域內(nèi)的標(biāo)識(shí)符結(jié)合來創(chuàng)建唯一的安全標(biāo)識(shí)符(SID)。每一個(gè)域控制器都會(huì)收到用于創(chuàng)建對(duì)象的RID池(默認(rèn)為512)。RID主機(jī)通過分配不同的池來確保這些ID在每一個(gè)域控制器上都是唯一的。通過RID主機(jī),還可以在同一森林中的不同域之間移動(dòng)對(duì)象。
域命名主機(jī)是基于森林的,整個(gè)森林中只有一個(gè)域命名主機(jī)。相對(duì)標(biāo)識(shí)號(hào)(RID)主機(jī)是基于域的,森林中的每個(gè)域都有自己的相對(duì)標(biāo)識(shí)號(hào)(RID)主機(jī)。
主域控制器模擬器(PDCE)主要實(shí)現(xiàn)向后兼容低級(jí)客戶端和服務(wù)器,也就是允許在Windows 2000域中使用Windows NT備份域控制器(BDC)。本機(jī)模式Windows 2000環(huán)境里會(huì)將密碼更改轉(zhuǎn)發(fā)到PDCE。域控制器驗(yàn)證密碼失敗后,會(huì)與PDCE聯(lián)系,以檢查該密碼是否可以通過驗(yàn)證。因?yàn)橐苍S密碼的更改還沒有被復(fù)制到當(dāng)前驗(yàn)證登錄的域控制器中。森林中各個(gè)域的PDCE都會(huì)與森林的根域中的PDCE進(jìn)行同步。PDCE是基于域的,森林中的每個(gè)域都有自己的PDCE。
基礎(chǔ)結(jié)構(gòu)主機(jī)確保所有域間操作對(duì)象的一致性。當(dāng)引用另一個(gè)域中的對(duì)象時(shí),此引用包含該對(duì)象的全局唯一標(biāo)識(shí)符(GUID)、安全標(biāo)識(shí)符(SID)和可分辨的名稱(DN)。如果被引用的對(duì)象移動(dòng),則在域中擔(dān)當(dāng)結(jié)構(gòu)主機(jī)角色的域控制器會(huì)負(fù)責(zé)更新該域中跨域?qū)ο笠弥械?/span>SID和DN。基礎(chǔ)結(jié)構(gòu)主機(jī)是基于域的,目錄林中的每個(gè)域都有自己的基礎(chǔ)結(jié)構(gòu)主機(jī)
默認(rèn)的,這五種FSMO存在于森林根域的第一臺(tái)域控制器(主域控制器)上,而子域中的相對(duì)標(biāo)識(shí)號(hào)(RID)主機(jī)、PDCE 、基礎(chǔ)結(jié)構(gòu)主機(jī)存在于子域中的第一臺(tái)域控制器。
[1] 清除原有Domain Controller的信息
因?yàn)檫@臺(tái)服務(wù)器已經(jīng)不再可用,我們必須重新安裝,所以需要將原來的服務(wù)器的數(shù)據(jù)從ACTIVE DIRECTORY中刪除。
完成這個(gè)目標(biāo),需要使用ntdsutil這個(gè)工具。(為便于閱讀,這些命令已折行,粗斜體為輸入內(nèi)容)
|
c:>ntdsutil ntdsutil: metadata cleanup metadata cleanup: select operation target select operation target: connections server connections: connect to domain domain.com select operation target: list sites Found 1 site(s) 0 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=com select operation target: select site 0 Site - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=com No current domain No current server No current Naming Context select operation target: list domains in site Found 1 domain(s) 0 - DC=domain,DC=com select operation target: select domain 0 Site - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=com Domain - DC=domain,DC=com No current server No current Naming Context select operation target: list servers for domain in site Found 2 server(s) 0 - CN=DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration, DC=domain,DC=com 1 - CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration, DC=domain,DC=com select operation target: select server 0 select operation target: quit metadata cleanup: remove selected server |
出現(xiàn)對(duì)話框,詢問你是否確定刪除該DC。按“確定”刪除DC1主控服務(wù)器。
|
metadata cleanup: quit ntdsutil: quit |
從Active Directory users and computers中刪除Domain controllers中DC1服務(wù)器對(duì)象,可以使用ADSI EDIT工具。ADSI EDIT是Windows 2000 support tools中的工具,你需要安裝Windows 2000 support tool,安裝程序在windows 2000光盤中的supporttools目錄下。在DC2上打開ADSI EDIT工具,展開Domain NC[DC2.domain.com],展開OU=Domain controllers,右擊CN=DC1,然后選擇Delete,把DC1服務(wù)器對(duì)象刪除。
在Active Directory Sites and Service中刪除DC1服務(wù)器對(duì)象,可以打開Administrative tools中的Active Directory Sites and Service,展開Sites,展開Default-First-Site-Name,展開Servers,右擊DC1,選擇Delete,單擊“確認(rèn)”按鈕確認(rèn)。
[2] 在額外域控制器上通過ntdsutil.exe工具奪取五種FMSO
(為便于閱讀,這些命令已折行,粗斜體為輸入內(nèi)容)
|
c:>ntdsutil ntdsutil: roles fsmo maintenance: select operation target select operation target: connections server connections: connect to domain domain.com select operation target: list sites Found 1 site(s) 0 - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=com select operation target: select site 0 Site - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=com No current domain No current server No current Naming Context select operation target: list domains in site Found 1 domain(s) 0 - DC=domain,DC=com select operation target: select domain 0 Site - CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=domain,DC=com Domain - DC=domain,DC=com No current server No current Naming Context select operation target: list servers for domain in site Found 1 server(s) 0 - CN=DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration, DC=domain,DC=com select operation target: select server 0 select operation target: quit fsmo maintenance: seize domain naming master |
出現(xiàn)對(duì)話框,按“確定”
|
fsmo maintenance: seize infrastructure master |
出現(xiàn)對(duì)話框,按“確定”
|
fsmo maintenance: seize PDC |
出現(xiàn)對(duì)話框,按“確定”
|
fsmo maintenance: seize RID master |
出現(xiàn)對(duì)話框,按“確定”
|
fsmo maintenance: seize schema master |
出現(xiàn)對(duì)話框,按“確定”
|
fsmo maintenance: quit ntdsutil: quit |
(注:Seize用于原FSMO不在線時(shí)操作,如果原FSMO在線,則需要使用Transfer操作)
#p#副標(biāo)題#e#
[3] 設(shè)置額外控制(DC2.domain.com&, , amp;, , lt;, , /SPAN>)為GC(全局編錄)
打開Administrative Tools中的Active Directory Sites and Services,展開Sites,展開Default-First-Site-Name,展開Servers,展開DC2.domain.com(額外控制器),右擊NTDS Settings選擇Properties,然后在“Global Catalog”前面打勾,單擊“確定”按鈕,然后重新啟動(dòng)服務(wù)器。
[4] 重新安裝并恢復(fù)損壞的主域控制器
修復(fù)DC1.domain.com之后,在DC1.domain.com服務(wù)器上重新安裝Windows 2000 Server?;旧习凑赵瓉淼姆?wù)器配置安裝組件,但是先不要安裝“證書服務(wù)”(安裝“證書服務(wù)”后,無法進(jìn)行有關(guān)改名和域的操作)。安裝好Windows 2000 Server之后,再運(yùn)行dcpromo升級(jí)為額外的域控制器;如果需要DC1.domain.com擔(dān)任五種FMSO角色,通過ntdsutil工具進(jìn)行角色轉(zhuǎn)換,使用Transfer操作(注意:這時(shí)DC2在線,不能用Seize,只能Transfer)。完成后再安裝“證書服務(wù)”。
通過Active Directory Sites and Services設(shè)置DC1.domain.com為GC,而取消DC2.domain.com的GC。至此,修復(fù)Active Directory部分。
(注:建議domain naming master同時(shí)必須作為GC,而不和RID master使用同一臺(tái)Domain Controller)
2、恢復(fù)郵件服務(wù)器
由于Exchange Server會(huì)擴(kuò)展Active Directory的Schema,將配置信息保存在Active Directory中,所以我們不能簡(jiǎn)單地重新安裝了事。那樣會(huì)覆蓋掉以前的所有配置信息,包括地址簿結(jié)構(gòu)、郵件存儲(chǔ)還有其他的非郵件存儲(chǔ)數(shù)據(jù)。讓我們一步一步地來嘗試修復(fù)。
[1] 安裝Exchange Server
為了適應(yīng)災(zāi)難恢復(fù)環(huán)境下的安裝,Exchange Server以及后面的Exchange Server Service Pack的安裝文件都提供了 /disasterrecovery 參數(shù)來實(shí)現(xiàn)災(zāi)難恢復(fù)環(huán)境下的系統(tǒng)修復(fù)。
我們需要將系統(tǒng)恢復(fù)到崩潰前的狀態(tài),如果安裝了SP和Patch,新的系統(tǒng)也要安裝相同的SP和Patch。
安裝組件的選擇也很重要,必須與崩潰時(shí)的系統(tǒng)所安裝的組件一致。所以,日常維護(hù)中記錄軟件的安裝配置也是一項(xiàng)很重要的工作。
在這個(gè)例子中,安裝好郵件服務(wù)器后,依次安裝SP3還有Rollout,恢復(fù)到崩潰之前的軟件安裝。
[2] 修復(fù)郵件存儲(chǔ)
Exchange Server 2000 發(fā)生損壞時(shí),信息存儲(chǔ)是最容易受到影響的組件之一。實(shí)際上Windows家族的很多設(shè)計(jì)為永遠(yuǎn)在線工作的數(shù)據(jù)庫(kù),都使用了Exchange數(shù)據(jù)庫(kù)引擎。信息存儲(chǔ)由下列四個(gè)數(shù)據(jù)庫(kù)文件組成:
Priv1.edb
Priv1.stm
Pub1.edb
Pub1.stm
Priv1.edb 數(shù)據(jù)庫(kù)文件包含簡(jiǎn)單郵件傳輸協(xié)議 (SMTP) 郵件,其中包括正在傳送的郵件和存儲(chǔ)在服務(wù)器上的郵件。Priv1.stm 數(shù)據(jù)庫(kù)文件包含正在傳送的郵件和存儲(chǔ)的非 SMTP郵件。Pub1.edb 數(shù)據(jù)庫(kù)文件包含用于SMTP 格式信息的公用文件夾存儲(chǔ)。Pub1.stm包含用于非SMTP格式數(shù)據(jù)的共用文件夾存儲(chǔ)。
我們的郵件服務(wù)器是stand alone的,沒有使用站點(diǎn)連接器,也沒有安裝密鑰管理。所以,我們選擇了KB313184的恢復(fù)流程。
由于我們的數(shù)據(jù)庫(kù)是異常退出,所以需要確認(rèn)數(shù)據(jù)庫(kù)的一致性。如果數(shù)據(jù)庫(kù)是一致的,則所有日志文件都已提交給信息存儲(chǔ)。如果數(shù)據(jù)庫(kù)不一致,則數(shù)據(jù)庫(kù)可能未損壞。相反,日志文件可能丟失、被損壞或尚未提交到數(shù)據(jù)庫(kù)。
我們運(yùn)行下面的eseutil命令以檢查公用和專用數(shù)據(jù)庫(kù)的一致性(為便于閱讀,這些命令已折行,粗斜體為輸入內(nèi)容)。
|
C:Program FilesexchsrvrBIN>eseutil /mh "C:Program Filesexchsrvr MDBDATApriv1.edb" MDBDATApub1.edb" |
注意:這里假設(shè)正在從C盤上的Program FilesExchSrvrBin文件夾中運(yùn)行程序,并且.edb文件位于Program FilesExchSrvrMdbdata文件夾中,如果執(zhí)行了升級(jí),這些數(shù)據(jù)庫(kù)文件可能位于C:ExchsrvrMdbdata文件夾中。如果優(yōu)化了數(shù)據(jù)庫(kù),則這些文件可能位于另一驅(qū)動(dòng)器上,可根據(jù)實(shí)際情況自行替換。
要驗(yàn)證.edb文件是否一致,請(qǐng)檢查標(biāo)有“State”的輸出行。為了方便觀察可以在前面的命令行后面分別加上“> mypriv.txt”和“> mypub.txt”,生成兩個(gè)文本文件?;蛘呤褂?/span>“| more”參數(shù)來逐屏輸出。
在我們的例子里,服務(wù)器上的數(shù)據(jù)庫(kù)state是“Dirty Shutdown”,所以需要對(duì)數(shù)據(jù)庫(kù)進(jìn)行軟故障恢復(fù),以檢查 Mdbdata 文件夾中是否存儲(chǔ)了日志文件的副本。
注意:以下步驟并不是按操作順序排列的,也不是每一步都必須執(zhí)行的,修復(fù)郵件存儲(chǔ),需要根據(jù)實(shí)際情況選擇一步或者幾部執(zhí)行!
(a) 保存有日志文件的存儲(chǔ)恢復(fù)
執(zhí)行軟故障恢復(fù)時(shí),所有未提交的日志文件都將被提交給信息存儲(chǔ)數(shù)據(jù)庫(kù)。打開數(shù)據(jù)庫(kù)和日志文件所駐留的文件夾,然后在命令提示符處鍵入下面的內(nèi)容(為便于閱讀,這些命令已折行,粗斜體為輸入內(nèi)容):
|
C:Program FilesexchsrvrMDBDATA>"C:Program Filesexchsrvr BINeseutil.exe" /r E00 |
單擊“是”運(yùn)行修復(fù)。實(shí)用工具將顯示下面的消息:
|
Microsoft(R) Exchange Server(TM) Database Utilities Version 6.0 Copyright (C) Microsoft Corporation 1991-2000. All right reserved. Initiating RECOVERY mode... Logfile base name:E00 Log Files:(current directory) System files:(current directory) Performing soft recovery... |
完成軟故障恢復(fù)之后,程序?qū)@示下面的消息:
|
Operation completed successfully in x.xxx seconds. |
可再次運(yùn)行 eseutil /mh 命令。如果公用信息存儲(chǔ)和專用信息存儲(chǔ)的狀態(tài)都更改為“一致”,表明數(shù)據(jù)庫(kù)已經(jīng)修復(fù)。
(b) 無日志文件或者日志文件損壞的存儲(chǔ)恢復(fù)
如果eseutil /r 命令未恢復(fù)數(shù)據(jù)庫(kù)到一致狀態(tài),請(qǐng)使用硬故障恢復(fù)(強(qiáng)制狀態(tài)恢復(fù))命令。(注意:該命令可能會(huì)丟失某些 Exchange 2000 數(shù)據(jù),其中包括尚未提交給信息存儲(chǔ)數(shù)據(jù)庫(kù)的日志文件中所包含的消息。Microsoft 建議,只有在執(zhí)行軟故障恢復(fù)后公用信息存儲(chǔ)或?qū)S眯畔⒋鎯?chǔ)仍沒有恢復(fù)到一致的狀態(tài)時(shí),才使用此命令。)
在命令提示符處,鍵入下列命令(為便于閱讀,這些命令已折行,粗斜體為輸入內(nèi)容):
將 Priv1.edb 文件恢復(fù)到一致狀態(tài):
|
C:Program FilesexchsrvrMDBDATA>"C:Program FilesexchsrvrBINeseutil" /p priv1.edb |
將 Pub1.edb 文件恢復(fù)到一致狀態(tài):
|
C:Program FilesexchsrvrMDBDATA>"C:Program FilesexchsrvrBINeseutil" /p pub1.edb |
單擊“是”運(yùn)行修復(fù)。實(shí)用工具將顯示下面的消息:
|
Microsoft(R) Exchange Server(TM) Database Utilities Version 6.0 Copyright (C) Microsoft Corporation 1991-2000. All right reserved. Initiating REPAIR mode... Database:priv1.edb Streaming file:priv1.stm Temp.Database:TEMPREPAIR1820.EDB Checking database integrity. Scanning Status (% complete) 0 10 20 30 40 50 60 70 80 90 100 |----|----|----|----|----|----|----|----|----|-----| .................................................... |
修復(fù)過程中將自動(dòng)包括.stm 文件。在完成此過程之后,程序?qū)@示下面的消息:
|
Integrity check successful. |
(c) 進(jìn)行郵件存儲(chǔ)的脫機(jī)碎片整理
建議對(duì)修復(fù)的數(shù)據(jù)庫(kù)文件執(zhí)行碎片整理。特別是磁盤空間不足的時(shí)候。可以在另外的機(jī)器上執(zhí)行這種脫機(jī)碎片整理工作。如果對(duì) Pub1.edb 文件和 Priv1.edb 文件都運(yùn)行了軟故障恢復(fù)過程,請(qǐng)分別對(duì)這兩個(gè)文件運(yùn)行下面的碎片整理命令(為便于閱讀,這些命令已折行,粗斜體為輸入內(nèi)容)。
對(duì) Priv1.edb 進(jìn)行碎片整理:
|
C:Program FilesexchsrvrBIN>eseutil /d C:Program FilesexchsrvrMDBDATApriv1.edb |
對(duì) Pub1.edb 進(jìn)行碎片整理:
|
C:Program FilesexchsrvrBIN>eseutil /d C:Program FilesexchsrvrMDBDATApub1.edb |
注意:如果存儲(chǔ)數(shù)據(jù)庫(kù)很大,整理需要一段時(shí)間。如果提示磁盤空間不足,請(qǐng)將 Program FileExchSrvrBin 文件夾復(fù)制到更大的磁盤,然后嘗試從該位置運(yùn)行此命令。
刪除 Mdbdata 文件夾中的所有.log 文件、.chk 文件,然后刪除 Temp.edb 文件(如果存在)。 關(guān)閉所有收發(fā)信的服務(wù),以避免用戶在修復(fù)過程中訪問郵件存儲(chǔ)。將數(shù)據(jù)庫(kù)裝入一次,然后立即將其卸載(Dismount)。
建議對(duì)修復(fù)的數(shù)據(jù)庫(kù)文件執(zhí)行碎片整理。特別是磁盤空間不足的時(shí)候。可以在另外的機(jī)器上執(zhí)行這種脫機(jī)碎片整理工作。如果對(duì) Pub1.edb 文件和 Priv1.edb 文件都運(yùn)行了軟故障恢復(fù)過程,請(qǐng)分別對(duì)這兩個(gè)文件運(yùn)行下面的碎片整理命令(為便于閱讀,這些命令已折行,粗斜體為輸入內(nèi)容)。
對(duì) Priv1.edb 進(jìn)行碎片整理:
|
C:Program FilesexchsrvrBIN>eseutil /d C:Program FilesexchsrvrMDBDATApriv1.edb |
對(duì) Pub1.edb 進(jìn)行碎片整理:
|
C:Program FilesexchsrvrBIN>eseutil /d C:Program FilesexchsrvrMDBDATApub1.edb |
注意:如果存儲(chǔ)數(shù)據(jù)庫(kù)很大,整理需要一段時(shí)間。如果提示磁盤空間不足,請(qǐng)將 Program FileExchSrvrBin 文件夾復(fù)制到更大的磁盤,然后嘗試從該位置運(yùn)行此命令。
#p#副標(biāo)題#e#
使用<, SPAN lang=EN-US> Isinteg.exe實(shí)用工具可對(duì)Pub1.edb 數(shù)據(jù)庫(kù)和 Priv1.edb 數(shù)據(jù)庫(kù)的所有區(qū)域運(yùn)行測(cè)試,并報(bào)告測(cè)試結(jié)果,而且還會(huì)嘗試修復(fù)遇到的任何問題。(為便于閱讀,這些命令已折行,粗斜體為輸入內(nèi)容):
|
C:Program FilesexchsrvrBIN>isinteg -s (servername) -fix -test alltests |
系統(tǒng)會(huì)提示您選擇要檢查的數(shù)據(jù)庫(kù)。
|
Index Status Database-Name Storage Group Name:First Storage Group 1 Offline Mailbox Store (servername) 2 Offline Public Folder Store (servername) Enter a number to select a database or press Return to exit. |
注意:Exchange 2000 不再結(jié)合使用 -patch 選項(xiàng)來實(shí)現(xiàn) Isinteg 實(shí)用工具。修補(bǔ)操作將在信息存儲(chǔ)啟動(dòng)時(shí)由 Store.exe 自動(dòng)執(zhí)行。
只能檢查標(biāo)記為“Offline”(脫機(jī))的數(shù)據(jù)庫(kù)。在選擇一個(gè)數(shù)據(jù)庫(kù)后,將出現(xiàn)下面的消息,提示確認(rèn)我們的選擇:
|
"You have selected First Storage Group / Mailbox Store <servername> Continue?(Y/N)" Press <B>Y</B> and <B>Enter</B> to start checking the selected database. |
重復(fù)修復(fù)的過程,直到不報(bào)告警告、錯(cuò)誤或修復(fù)信息,報(bào)告內(nèi)容類似于以下顯示:
|
Test reference table construction result: 0 error(s); 0 warning(s); 0 fix(es); 0 row(s); time:0h: Test Folder Result: 0 error(s); 0 warning(s); 0 fix(es); 101 row(s); time:0h: Now in test 3 (reference count verification)of total 3 tests; 100% complete. |
如果連續(xù)三次出現(xiàn)同樣的警告、錯(cuò)誤或修復(fù)信息,可以忽略。這些錯(cuò)誤可能是由于損壞的電子郵件附件,或者不會(huì)阻止啟動(dòng)信息存儲(chǔ)的類似情況造成的。
(d) 使用ExMerge移動(dòng)郵件到新的郵件存儲(chǔ)
如果多次運(yùn)行 Isinteg.exe 后仍報(bào)告同樣的錯(cuò)誤和警告,但是存儲(chǔ)服務(wù)可以正常啟動(dòng)。我們可以將所有用戶郵箱導(dǎo)出為.pst文件。然后再將這些.pst文件合并為新的Priv1.edb文件。如果使用電子郵件的脫機(jī)存儲(chǔ)(.ost文件),必須先將.ost文件移至.pst文件中。
限制:必須要運(yùn)行存儲(chǔ)服務(wù)。ExMerge只能移動(dòng)用戶郵箱,不能移動(dòng)特定的Exchange 2000配置屬性,如連接器設(shè)置、Outlook設(shè)置或客戶端規(guī)則。也不能移動(dòng)通訊組列表、通訊組列表中的成員或公用文件夾??梢詫⒐梦募A內(nèi)容移動(dòng)到用戶的個(gè)人文件夾中,以便在合并的.pst文件中包括公用文件夾信息。如果您嘗試此過程,則必須手動(dòng)重新創(chuàng)建或重新配置通訊組列表。
確保當(dāng)前沒有用戶正在訪問服務(wù)器郵箱,運(yùn)行ExMerge。
使用兩步合并中的第一步,然后輸入所有用戶。當(dāng)ExMerge過程完成之后,停止Exchange 2000信息存儲(chǔ)服務(wù),找到并打開 ExchSrvrMdbdata 文件夾,然后重命名Pub1.edb和Priv1.edb文件。刪除此文件夾中的所有其他文件。在確信合并成功完成之前,請(qǐng)務(wù)必不要?jiǎng)h除重命名的 Pub1.edb和Priv1.edb文件,以留作備份。重新啟動(dòng) Exchange 2000 信息存儲(chǔ)服務(wù)。在客戶機(jī)上啟動(dòng) Outlook,然后向 Exchange 2000 全球通訊簿中的所有用戶發(fā)送一封電子郵件。(注意:如果未完成此步驟,ExMerge 兩步合并中的第二步將不顯示任何可供還原的郵箱。)
使用兩步合并中的第二步運(yùn)行 ExMerge,然后輸入所有用戶。完成此過程后,以前存儲(chǔ)在.pst文件中的電子郵件將被移至Exchange 2000郵箱,我們將得到一個(gè)包含所有電子郵件副本的新 Priv1.edb 文件。(注意:如果用戶登錄到空郵箱,則帳戶可能未連接到新創(chuàng)建的郵箱。)
要恢復(fù)公用文件夾存儲(chǔ),需要在客戶端(如Outlook)將公用文件夾復(fù)制到該客戶端上用戶的個(gè)人文件夾。停止信息存儲(chǔ)服務(wù),然后重命名現(xiàn)有的 Pub1.edb 和 Pub1.stm 文件。要?jiǎng)?chuàng)建新的 Pub1.edb,請(qǐng)裝入公用文件夾數(shù)據(jù)庫(kù)。單擊“確定”創(chuàng)建新的 Pub1.edb。將文件夾從客戶端移回服務(wù)器上的新公用文件夾結(jié)構(gòu)。
接下來重新啟動(dòng)信息存儲(chǔ)。
(注意:必須恢復(fù)公用存儲(chǔ)上的所有權(quán)限。在能夠訪問電子郵件和公用文件夾后,應(yīng)盡快執(zhí)行備份并驗(yàn)證備份是否成功。此過程還將刪除到此時(shí)間點(diǎn)為止收到的郵件的單一實(shí)例存儲(chǔ)。結(jié)果,Exchange 2000 數(shù)據(jù)庫(kù)可能會(huì)增長(zhǎng),并需要更多的磁盤空間。)
[3] 使用一致性調(diào)整程序
Exchange 2000 中,Mbconn.exe 實(shí)用工具提供了相同的功能。有關(guān)更多信息,請(qǐng)參閱“Mailbox Reconnect Help”(郵箱重新連接幫助)文件 (Mbconn.chm),該文件位于<CD 驅(qū)動(dòng)器>ExchSrvrServerSupportUtilsi386 文件夾中。您可以與 /G 開關(guān)一起使用 Eseutil 來驗(yàn)證信息存儲(chǔ)的完整性。
[4] 使用Exchange 2000目錄服務(wù)完整性檢查程序(E2kdsinteg)
E2kdsinteg 實(shí)用工具最初包括在Exchange 2000 SP2中。在安裝并運(yùn)行 Exchange 2000或Exchange 2000 Active Directory連接器(ADC)后,此實(shí)用工具將報(bào)告Active Directory的運(yùn)行狀態(tài)。E2kdsinteg實(shí)用工具以文本文件的格式生成簡(jiǎn)單的報(bào)告,該報(bào)告記錄異?;蚩梢傻膶?duì)象。E2kdsinteg不會(huì)更改Active Directory 中的任何對(duì)象。根據(jù)Active Directory中支持郵件的對(duì)象和配置對(duì)象的數(shù)量,處理支持郵件的對(duì)象可能需要相當(dāng)長(zhǎng)的時(shí)間。
我們的例子中,由于Active Directory中的Exchange Server信息沒有損壞,所以略過這一步。
3、修復(fù)IIS和OWA
[1] 修復(fù)DCOM錯(cuò)誤
用戶的要求總是千奇百怪的。幸運(yùn)的是Exchange Server給我們提供了多種多樣的郵件訪問方式。
我們可以使用Exchange客戶端,也可以使用Office里面的Outlook通過RPC連接來收發(fā)郵件;可以使用諸如Outlook Express之類的郵件客戶端通過POP3/SMTP/IMAP協(xié)議收發(fā)郵件;還可以干脆就使用任何支持SSL的Web客戶端比如Internet Explorer通過OWA來收發(fā)郵件。
在這個(gè)例子里,我們應(yīng)用了OWA來為不能使用Outlook客戶端或者POP3/SMTP客戶端的客戶服務(wù)。我們重新安裝了OWA,但是它不能正常工作:根本就不能打開任何非靜態(tài)的頁(yè)面。經(jīng)查,每次我們要求訪問需要執(zhí)行腳本的目錄,就會(huì)在系統(tǒng)日志中留下如下日志:
|
Event ID: 10004 Source: DCOM DCOM got error "Logon failure: unknown user name or bad password. " and was unable to logon .IWAM_MYSERVER in order to run the server:{3D14228D-FBE1-11D0-995D |
|
Event ID: 36 Source: W3SVC The server failed to load application '/LM/W3SVC/1/Root/Conferencing'. The error was 'The server process could not be started because the configured identity is incorrect. Check the username and password'. For additional information specific to this message please visit the Microsoft Online Support site located at: |
這可能有兩種原因:
(a) 組件服務(wù)
COM+賬號(hào)信息存儲(chǔ)在IIS metabase中,由Active Directory來同步,但是COM+不會(huì)自動(dòng)更新。Windows 2000組件服務(wù)和Internet Information Services (IIS) 進(jìn)程不同步的話,IWAM_<machine>賬號(hào)和IIS metabase就不同步而出現(xiàn)上述日志。
IIS提供synciwam.vbs腳本來同步IWAM_<machine> 賬號(hào)和IIS metabase。該腳本位于InetpubAdminScripts下面??梢允褂?/span>Cscript或Wscript來運(yùn)行該腳本。
使用Cscript運(yùn)行Synciwam.vbs:
|
c:InetpubAdminScripts>cscript synciwam.vbs -v |
可以看到該腳本成功執(zhí)行。
使用Wscript運(yùn)行Synciwam.vbs:
|
c:InetpubAdminScripts>wscript c:InetpubAdminScriptssynciwam.vbs -v |
可以看到圖形的界面下該腳本成功執(zhí)行。
(b) 賬號(hào)的密碼
IWAM_<machine>是IIS用于執(zhí)行腳本的賬號(hào),雖然我們從來沒有為它設(shè)過密碼,但是它的確使用了密碼。雖然這個(gè)賬號(hào)是本地的,但是卻會(huì)保存在Active Directory中。如果存儲(chǔ)在Active Directory中的密碼與IIS metabase中的不一致,該賬號(hào)將無法啟動(dòng)IIS的腳本進(jìn)程。我們遇到的就是這種情況了。
可以使用adsutil腳本來修復(fù)該問題。
|
c:InetpubAdminScripts>adsutil GET w3svc/WAMUserName |
這里的name通常就是服務(wù)器的機(jī)器名。
打開組件服務(wù)的MMC控制臺(tái),展開“Component Services”文件夾,展開“My Computer”文件夾,找到“COM+ Applications”文件夾,右鍵單擊,選擇“IIS Out-of-Process Applications”,確認(rèn)“Advanced”頁(yè)面里的“Disable changes”選擇框被清除,這可以確保IWAM_<Computer>賬號(hào)的改動(dòng)會(huì)保存在Active Directory里。
如果IIS運(yùn)行于域控制器,打開“Active Directory用戶和計(jì)算機(jī)的MMC管理控制臺(tái)snap-in。如果IIS運(yùn)行于成員服務(wù)器,則右鍵單擊“我的電腦”,選擇“管理”,展開“系統(tǒng)工具”,展開“本地用戶和組”,選擇“用戶”文件夾。
在右邊找到我們剛才通過adsutil腳本查詢到的IWAM賬號(hào)名,更改該賬號(hào)的密碼。然后通過腳本來修改IIS metabase里的IWAM賬號(hào)密碼:
|
c:InetpubAdminScripts>adsutil SET w3svc/WAMUserPass Password |
可以看到提示修改成功,接著通過剛才的管理控制臺(tái),找到“服務(wù)”,停止、然后啟動(dòng)“IIS Admin”服務(wù)。也可以使用命令行:
|
c:>net stop iisadmin /y c:>net start w3svc |
[2] 證書服務(wù)
使用OWA的更改密碼功能時(shí),由于密碼使用明文傳送,非常危險(xiǎn)。為了保證賬號(hào)的安全,我們必須為該功能啟用SSL(安全套接字層)加密。為了實(shí)現(xiàn)SSL,需要使用證書來驗(yàn)證IIS服務(wù)。
前面我們安裝了證書服務(wù),為的就是給IIS和域內(nèi)賬號(hào)提供證書。如果您有商業(yè)公司發(fā)布的證書(如VeriSign等),當(dāng)然也可以直接使用他們的。為該IIS服務(wù)生成一張服務(wù)器證書,并導(dǎo)出。將其安裝至“受信任的企業(yè)根證書”,這樣該證書可以被與用戶信任。
打開“Internet 信息服務(wù)”的管理控制臺(tái)Snap-in,右鍵單擊“默認(rèn)Web站點(diǎn)”(這里我們假設(shè)IIS上面只有一個(gè)站點(diǎn)并且該站點(diǎn)準(zhǔn)備用來使用OWA,如果情況不同,請(qǐng)自行修改),在“默認(rèn)站點(diǎn)屬性”中選擇“目錄安全性”,在其下方的“安全通信”中單擊“服務(wù)器證書”,使用其向?qū)О惭b我們剛才導(dǎo)出的服務(wù)器證書。
為了通過OWA可以修改用戶的密碼,需要在默認(rèn)站點(diǎn)下,建立“IISADMPWD”的虛擬文件夾。該目錄只允許讀取。“應(yīng)用程序設(shè)置”那里的“應(yīng)用程序名”填入IISADMPWD,執(zhí)行許可為純腳本。
打開Internet Explorer,輸入“http://<ExchangeServerAddress>/exchange”,看看是否可以正常OWA。
4、修復(fù)網(wǎng)絡(luò)服務(wù)
在前面我們已將在另外的服務(wù)器上安裝了WINS,現(xiàn)在可以在新安裝的服務(wù)器上安裝WINS來實(shí)現(xiàn)“推/拉”復(fù)制。也可以安裝DNS實(shí)現(xiàn)區(qū)域復(fù)制。而DHCP,我們可以將區(qū)域的地址范圍劃分為原有區(qū)域剩下的80%(吻合前面的20%,當(dāng)然可以根據(jù)需要改變)。
這樣,WINS/DNS/DHCP可以繼續(xù)提供服務(wù)了。
接下來,按照原有的共享內(nèi)容,提供打印機(jī)和文件共享的服務(wù)。不要忘記補(bǔ)丁和防病毒程序!剩下的該裝的軟件比如備份、UPS之類我就不再?gòu)U話了。
三、Mission, accomplished.
總算完工了,向用戶們確認(rèn)一下所有的服務(wù)是否都正常吧。在得到他們的感謝的同時(shí),不要忘記做一次系統(tǒng)的完整備份!
最后啰嗦一句,所有的知識(shí)和信息,都可以在KB中找到。如果可能的話,平時(shí)我們可以收集一些災(zāi)難恢復(fù)的資料準(zhǔn)備,在不影響業(yè)務(wù)的前提下,我們可以進(jìn)行假想的演習(xí)。養(yǎng)兵終須千日,才能用在一時(shí)。


