部署與作業指引
概要
本章說明如何監看
Active Directory
和
FRS
以確保您的環境能正常運作。
本文件中所包含的資訊內容,僅係
Microsoft Corporation
對各項討論議題於發行當日所持的看法。由於 Microsoft
必須隨著市場的變更而改變,所以上述資訊不應被視為是
Microsoft
的某種承諾,
而
Microsoft
也無法保證在產品發行之後,相關資訊的正確性和精確度。
本「白皮書」的目的僅限於資訊的提供而已。本文件的內容及資訊,不論其為明示或默示者,MICROSOFT
均不為瑕疵責任擔保。
遵守相關版權適法性為使用者應負的責任。在不損及版權所賦予的權限下,若無
Microsoft Corporation
的書面同意,不論其原因或目的為何,本文件之內容不得以任何方式或形式
(包含電子、機械、
影印、錄製或其他方式或形式)
予以複製、儲存、導入或傳送至可擷取的系統中。
Microsoft
擁有本文件中所述及題材與內容之專利權、專利應用程式、商標、版權或相關的智慧財產權。除非有
Microsoft
書面授權合約的明文規定,任何對本文件內容之增修或潤飾並不賦予使用者任何專利、商標、版權或其他智慧財產權的相關授權。
Ó 2000
Microsoft Corporation. All rights reserved.
Microsoft、Windows
和
Active Directory
是
Microsoft Corporation
在美國與/或其他國家的註冊商標或商標
1200
本章討論您在
Microsoft® Active Directory™
目錄服務分公司環境中所應監看的地方。
您需要讓操作人員不斷監看分公司的網域控制站。
您將需要能負責監看
Active Directory
與「檔案複寫服務」(File
Replication service,FRS)
和排解相關疑難的操作人員。
若要執行網域控制站的監看工作,您必須有管理員的使用者帳戶和密碼。
當您完成分公司環境中
Active Directory
的部署後,請務必繼續執行網域控制站的品質確定檢查工作。這樣做的目的,是要在問題對辦公室環境造成重大影響,以及影響使用者存取網路資源的能力前,先偵測出任何潛在的問題。
您應該定期對網域控制站執行品質確定檢查。這些檢查工作最少應每天執行一次。如果您的分公司網域控制站僅每天複寫一次集線站台中的橋頭伺服器,則每天在複寫間隔時間後需執行一次品質確定檢查。這個動作能讓您確認當天的複寫成功、偵測出任何可能發生的問題,並讓您可以在下次複寫間隔時間前更正所有問題。如果您在每天的複寫間隔時間前執行品質確定檢查,那麼您在
24
小時之內都無法察覺出問題,可能會讓問題對環境造成更大的影響。
當您進行網域控制站品質確定檢查時,應注意到以下三個主要方面:
·
一般網域控制站監看
·
Active Directory
複寫監看
·
FRS
複寫監看
本章將對這三方面詳加說明。但是,在查看這些細節之前,我們將先檢查此分公司指引中所含的品質確定指令碼。
本
Active Directory
分公司指引包含一組品質確定指令碼,您可用來執行分公司環境中的每日品質確定檢查。您應該排程每天在網域控制站上執行這些指令碼
—
包括分公司網域控制站和您在集線站台中的橋頭伺服器。
組成品質確定程序的指令碼有四種。我們將在稍後敘述這些指令碼,以及它們彼此之間的互動。
這是品質確定程序的主要指令碼。它會記錄網域控制站執行時的最新狀態。這個指令碼使用各種
Microsoft Windows® 2000 Resource Kit
公用程式和其他指令碼來取得有關網域控制站、Active Directory
複寫,和
FRS
複寫的資訊。如需這些指令碼作用的詳細說明,請參閱下面標題為<使用 QA_Check.cmd
執行檢查>的章節。
注意:QA_Check.cmd
指令碼使用
Microsoft Windows 2000 Resource Kit
中的
Ntfrsutl.exe
公用程式來取得
FRS
資訊。若要取得此 FRS
資訊,在您不是於排程的品質確定檢查期間執行此指令碼的情況下,您必須使用管理員帳戶才能執行指令碼。
這個指令碼是由
QA_Check.cmd
指令碼所呼叫,並且能剖析公用程式所建立的資料檔,指令碼則在進行品質確定程序時執行。指令碼將會分析資料檔以找出錯誤及潛在的問題,然後將這些資訊寫入摘要檔。之後
QA_Check.cmd
指令碼將會把這個摘要檔複製到中央伺服器,這樣您便有一個單一位置來檢查網域控制站的狀態。
這個指令碼是用於擁有各網域控制站摘要檔的中央伺服器,以提供有關您的環境中網域控制站狀況的狀態報告。這個指令碼會輸出一個含有三項網域控制站清單的檔案:
·
健全且未報告任何錯誤的網域控制站
·
已報告錯誤並需要進一步調查的網域控制站
·
未報告錯誤但仍應調查的網域控制站
CheckServer.cmd
使用這個指令碼來分析網域控制站中的摘要檔,並判斷網域控制站應放置在哪一個清單中。
使用本指引包含的品質確定指令碼有四個步驟。步驟為:
1.
安排
QA_Check.cmd
在環境中的每個網域控制站中執行。應該排程在每天的複寫間隔時間後執行這個指令碼。QA_Check.cmd:
·
將
C:\ADResults\<computername>
中的所有檔案複製到
C:\ADResults\<computername>\old
中。這個動作可產生網域控制站狀態的記錄。
·
執行
Microsoft Windows 2000 Resource Kit
公用程式和其他指令碼。這個動作會針對各個公用程式與指令碼產生一連串的資料檔,並將資料檔儲存在
C:\ADResults
中。
注意:每次
QA_Check.cmd
指令碼執行後即會覆寫儲存在
C:\ADResults
中的資料檔。
·
執行
QA_Parse.vbs
指令碼以產生網域控制站的摘要報告。摘要報告會使用網域控制站的電腦名稱與目前的日期與月份做為檔案名稱,例如:BO1DC-30-11.txt。這個檔案儲存在
C:\ADResults\<computername>
中。
·
在中央伺服器上,將之前的摘要檔案複製到
\\<server>\QAShare\<computername>\old
資料夾中。
·
將新的摘要檔複製到
QA_Check.cmd
指令碼所指定的中央伺服器上。該檔案即複製到
\\<server>\QAShare\<computername>
資料夾中。
2.
排定在中央伺服器上執行
CheckServers.cmd。您應該排程每天執行這個指令碼,其時間應該在所有網域控制站排程執行
QA_Check.cmd
檔案後。CheckServers.cmd
指令碼:
·
將
C:\QAShare\Serverreport.txt
複製到
C:\QAShare\old
中
·
執行
CheckServers.vbs
以剖析各網域控制站複製到中央伺服器上的摘要檔,生成 C:\QAShare\Serverreport.txt。
3.
使用記事本來檢查
C:\QAShare\Serverreport.txt
檔案的內容,以判斷是否有任何網域控制站報告錯誤,或未在最後一個品質確定週期內提出報告。
4.
如果有網域控制站報告錯誤、或未提出報告,那麼您將需要進行調查並解決所有的錯誤。若要開始調查錯誤,請先開啟
C:\QAShare\<computername>
資料夾中的摘要檔。從這個資料夾中,您可以檢查網域控制站本身的詳細檔案 (我們將在下一節詳細討論)。
QA_Check.cmd
指令碼使用
Microsoft Windows 2000 Resource Kit
中的公用程式與其他數個指令碼來記錄網域控制站的狀態。QA_Check.cmd
會產生大量的資料。這也就是為什麼指令碼使用 QA_Parse.vbs
建立摘要檔的緣故。但是,如果有網域控制站報告錯誤,那麼您將需要檢查該指令碼所產生的資料檔。這一節將列出所產生的每一個資料檔,以及用以產生檔案的工具。
QA_Check.cmd
會在每個執行這個指令碼的網域控制站上,於 C:\ADResults
資料夾中建立下列檔案:
|
檔案 |
內容 |
|
Dcdiag.txt |
執行
Dcdiag.exe
的輸出,以執行網域控制站的診斷檢查。 |
|
Netdiag.txt |
執行
Netdiag.exe
的輸出,以檢查網路組態及網域控制站的運作情況。當執行 Netdiag.exe
時,系統會略過
Lightweight Directory Access Protocol (LDAP)
測試,因為當有大量的網域控制站時,這些測試將對網路造成沈重的負荷。 |
|
GPOstat.txt |
執行
Gpostat.vbs
的輸出,以確認各「群組原則」物件是否已經同步。 |
|
Ntfrs_ds.txt |
執行
Ntfrsutl.exe ds
的輸出,以列出
DS
的
FRS
檢視。 |
|
Ntfrs_sets.txt |
執行
Ntfrsutl.exe
集合的輸出,以列出使用中的複本組。 |
|
Ntfrs_inlog.txt |
執行
Ntfrsutl.exe inlog
的輸出,以列舉
FRS inlog。 |
|
Ntfrs_outlog.txt |
執行
Ntfrsutl.exe outlog
的輸出,以列舉
FRS outlog。 |
|
Ntfrs_version.txt |
執行
Ntfrsutl.exe
版本的輸出,以列出應用程式設計介面 (API)
和服務版本。 |
|
Ntfrs_reg.txt |
執行
Regdmp.exe
的輸出,以輸出
HKEY_LOCAL_MACHINE\System\CurrentControlSet\
Services\NtFrs\Parameters
登錄機碼的內容。 |
|
Ntfrs_sysvol.txt |
執行
Dir %Systemroot%\sysvol /s
的輸出,以儲存
SYSVOL
資料夾內容的清單。 |
|
Frsconstat.txt |
執行
Connstat.cmd
的輸出,以摘要
FRS
的連線狀態。若需有關這個指令碼運作的詳細資料,請參考本章後面的<使用 Connstat.cmd
監看
FRS
複寫>。 |
|
Ntfrs_errscan.txt |
執行
Findstr
的輸出,以搜尋含有「error」、「invalid」、「fail」、「abort」和「warn」的
%windir%\debug\ntfrs_*.log
檔。 |
|
Ntfrs_parse.txt |
執行
Findstr
的輸出,以搜尋含有「error」、「invalid」、「fail」、「abort」和「warn」的
%windir%\debug\ntfrs_0005.log
檔。 |
|
Ntfrs_parse2.txt |
執行
Findstr
的輸出,以搜尋含有「ERROR - EXCEPTION
(000006ba)
的
%windir%\debug\ntfrs_0005.log
檔:WStatus:RPC_S_SERVER_UNAVAILABLE」、「ERROR
- STAGING AREA FULL」、「ERROR
- DISK_FULL」、「ERROR_DISK_FULL」、「ERROR
- EXCEPTION EPT_S_NOT_REGISTERED」、「has
no inbound server」、「has
no outbound server」、「DS:Multiple
connections from」、「WARNING:Setting
FrsVsn - Current system Time has moved backwards from
value in config record」和「JRNL_WRAP_ERROR」。 |
|
Ds_showreps.txt |
執行
Repadmin /showreps
的輸出,以列出網域控制站的複寫協力電腦。 |
|
Ds_showconn.txt |
執行
Repadmin /showconn
的輸出,以列出網域控制站的連線物件。 |
|
Services.txt |
執行
Net Start
的輸出,以列出在網域控制站上執行的服務。
|
如果網域控制站的摘要檔中指出該檔中有報告錯誤,那麼您應該檢查上述的記錄檔,並判斷報告的錯誤有什麼特點。這些記錄檔中的其他資訊將幫助您排除錯誤。除檢查上述檔案外,您亦應該檢查「事件檢視器」中的事件日誌,看看是否有任何記錄事件與錯誤有關聯。
除了監看網域控制站上的
Active Directory
和
FRS
之外,對您的網域控制站進行一般監看也是很重要的。監看網域控制站包含兩個重要領域,一是處理器的使用率,一是可用的磁碟空間。
您務必在橋頭網域控制站上隨時監看於這一節所討論的效能計數器。如果分公司網域控制站出了問題,那麼您應該監看這些計數器以協助您找出問題的所在。
監看網域控制站上的處理器使用率,能幫助您判斷網域控制站是否因登入過多而造成多載,或是橋頭伺服器因複寫過多而多載。此舉亦能協助您確認您是否達成服務層級協定。
如要監看網域控制站處理器的使用率,您可以使用「系統監視器」或「效能記錄和警示」來監看
Processor\ % Processor Time
計數器。
監看可用磁碟空間是一件非常重要的工作,因為一旦當儲存下列項目的任一分割區發生空間不足的情況時,便可能會導致網域控制站發生問題,項目包含:
·
Active Directory
資料庫檔案
·
Active Directory
記錄檔
·
SYSVOL
資料夾
根據預設值,這些項目都儲存在
C:\WINNT\NTDS
或
C:\WINNT\SYSVOL
資料夾中。
若要監看含有
Active Directory
資料庫與記錄檔,以及
SYSVOL
資料夾之分割區的可用磁碟空間,請使用「系統監視器」或「效能記錄和警示」來監看
LogicalDisk\ Free Megabytes
計數器。
除監看處理器使用率和可用磁碟空間外,您也可以監看網域控制站效能,方法是藉由追蹤效能記錄和警示中的效能計數器,然後檢視系統監視器中的結果。例如,如果您想要監看伺服器是否有定期接收和套用目錄複寫更新資料,您可以從
NTDS
效能物件中選取一個或多個計數器,然後在系統監視器中檢視目前的活動。
使用下列兩個效能物件的計數器來監看網域控制站的效能:
·
NTDS
物件計數器
·
資料庫物件計數器
注意:您必須先手動安裝資料庫效能物件,然後才能使用這個物件。本手冊後面有安裝指示。
當您監看 NTDS
和資料庫計數器一段時間後,這兩個計數器應該皆會顯示某些活動。但活動的數量會因您的環境而大不相同。影響活動的因素有分公司網域控制站的數目、用戶端的數目、排定複寫的頻率、發生改變的目錄數目等等。
NTDS
效能物件計數器讓您能監看
Active Directory
的效能。NTDS
效能物件包括提供有關網域控制站、LDAP
和驗證之間
Active Directory
複寫活動資訊的計數器。
下表描述用於監看
Active Directory
的實用計數器。
|
物件\計數器 |
說明 |
指導原則 |
|
|
|
NTDS\ DRA
Inbound Bytes Total/sec |
代表每秒透過複寫所接收的位元組總數。這是未壓縮資料與壓縮資料的位元組數目總和。 |
這個計數器在一段時間後應該顯示出某些活動。如果沒有,這通常表示網路在減緩複寫速度。 |
|
NTDS\ DRA
Inbound Object Updates Remaining in Packet |
代表目前目錄複寫更新封包中所接收的物件更新數目,而此封包尚未套用至本機伺服器。此計數器指出所監看的伺服器正在接收變更,但將變更套用至資料庫需要很長的一段時間。 |
此計數器的值應儘可能降低。如果沒有,則通常表示伺服器硬體在減緩複寫速度。 |
|
NTDS\ DRA
Outbound Bytes Total/sec |
代表每秒所傳送的位元組總數。這是未壓縮資料與壓縮資料的位元組數目總和。 |
這個計數器在一段時間後應該顯示出某些活動。如果沒有,這通常表示伺服器硬體或網路問題在減緩複寫速度。 |
|
NTDS\ DRA
Pending Replication Synchronizations |
表示尚未處理之伺服器中已佇列的目錄同步處理數目。這個計數器可協助您判斷複寫的積存數目
—計數器越高,積存數目也越大。 |
此計數器的值應儘可能降低。如果沒有,則通常表示伺服器硬體在減緩複寫速度。 |
|
NTDS\ DS
Threads in Use |
代表目錄服務目前使用中的執行緒數目。 |
這個計數器在一段時間後應該顯示出某些活動。如果沒有,則通常表示網路問題干擾到用戶端的要求。 |
|
NTDS\
Kerberos Authentications/sec |
代表網域控制站每秒所提供的
Kerberos
驗證數目。 |
這個計數器在一段時間後應該顯示出某些活動。如果沒有,而且用戶端使用
Windows 2000
的話,通常表示網路發生了問題。 |
|
NTDS\ LDAP
Bind Time |
代表最後一次成功完成
LDAP
繫結所需的時間
(以毫秒為單位)。 |
此計數器的值應儘可能降低。如果沒有,則通常表示發生與硬體或網路相關的問題。 |
|
NTDS\ LDAP
Client Sessions |
此值代表已連線
LDAP
用戶端的工作階段數目。 |
這個計數器在一段時間後應該顯示出某些活動。如果沒有,則通常表示發生與網路相關的問題。 |
|
NTDS\ LDAP
Searches/sec |
代表
LDAP
用戶端每秒所執行的搜尋作業次數。 |
這個計數器在一段時間後應該顯示出某些活動。如果沒有,則通常表示網路問題干擾到用戶端的要求。 |
|
NTDS\ LDAP
Successful Binds/sec |
此值代表每秒成功完成的
LDAP
繫結數目。 |
這個計數器在一段時間後應該顯示出某些活動。如果沒有,則通常表示發生與網路相關的問題。 |
|
NTDS\ NTLM
Authentications |
代表網域控制站每秒所提供的
NTLM
驗證數目 |
這個計數器在一段時間後應該顯示出某些活動。如果沒有,而且用戶端使用
Windows 98
或
Windows NT®
的話,通常表示發生與網路相關的問題。 |
您可以用資料庫效能物件計數器在進階層級監看
Active Directory
資料庫。這些計數器可提供有關資料庫快取、資料庫檔案,和資料庫表格效能的資訊。您可以用一些計數器來判斷您是否需要更多硬碟來儲存額外的
Active Directory
資料。
下表將描述用以分析
Active Directory
資料庫的實用計數器。
|
物件\計數器 |
說明 |
指導原則 |
|
|
|
Database\
Cache % Hit |
代表在不引發檔案操作的情況下,資料庫檔案分頁要求由資料庫快取完成的百分比。 |
這個計數器在一段時間後應該顯示出某些活動。如果沒有,則通常表示伺服器沒有足夠的可用實體記憶體,而且您應該考慮新增一些記憶體。 |
|
Database\
Cache Page Fault Stalls/sec |
代表因資料庫快取中無可用分頁可供配置,而導致每秒分頁錯誤的數目。 |
這個計數器應該為零。如果不是,這通常表示伺服器需要更多記憶體。 |
|
Database\
Cache Page Faults/sec |
代表每秒資料庫檔案的分頁要求數目,此檔案需要資料庫快取管理員從資料庫快取配置新的分頁。 |
此計數器的值應儘可能降低。如果不是,這通常表示伺服器需要更多記憶體。 |
|
Database\
File Operations Pending |
代表資料庫快取管理員對資料庫檔案,或作業系統目前所處理檔案讀取或寫入的次數。 |
此計數器的值應儘可能降低。如果沒有,這通常表示伺服器需要更多記憶體或處理能力。 |
|
Database\
File Operations/sec |
代表資料庫快取管理員每秒讀取或寫入資料庫檔案或檔案的次數。 |
此計數器的值應儘可能降低。如果不是,這通常表示伺服器需要更多記憶體。 |
|
Database\
Log Record Stalls/sec |
代表因緩衝區已滿,而使記錄檔記錄無法加入記錄緩衝區中的
(每秒)
例項數目。
|
此計數器的值應該儘可能接近零。如果不是,這通常表示伺服器需要更多記憶體,而且記錄緩衝區的大小已變成瓶頸。 |
|
Database\
Log Threads Waiting |
代表等待將資料寫入記錄檔,以完成更新資料庫之執行緒的數目。 |
此計數器的值應儘可能降低。如果沒有,這通常表示伺服器需要更多記憶體或更快的硬碟。 |
|
Database\
Table Open Cache Hits/sec |
代表每秒因使用快取架構資訊而開啟的資料庫表格數目。 |
這個計數器的值應儘可能的高。如果不是,這通常表示伺服器需要更多記憶體。 |
資料庫效能物件監看「可擴充式儲存引擎」(Extensible
Storage Engine,ESENT),此引擎是儲存所有
Active Directory
物件的異動資料庫系統。
因預設情況下並沒有安裝資料庫效能物件,所以您必須使用效能動態連結程式庫
(DLL),即
Esentprf.dll
來安裝此物件。
若要安裝資料庫效能物件:
1.
將 %SystemRoot%\System32\esentprf.dll
中的
DLL
複製到不同的目錄中。例如,建立一個名為
C:\Performance
的目錄,然後複製
DLL
並貼到新的目錄中。
2.
執行
Regedt32.exe (或
Regedit.exe),然後建立下列登錄子機碼
(如果尚未建立的話):
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ESENT
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ESENT\Performance
3.
請確定在
Performance
子機碼下的登錄值設定如下:
Open :REG_SZ :OpenPerformanceData
Collect :REG_SZ
:CollectPerformanceData
Close :REG_SZ :ClosePerformanceData
Library :REG_SZ
:C:\Performance\esentprf.dll
4.
切換目錄至
x:\Winnt\System32,其中
x
為
Windows 2000
的安裝磁碟代號。
5.
若要將計數器資訊載入登錄中,請執行:
Lodctr.exe
Esentperf.ini
在您安裝好資料庫效能物件後,您可以重新啟動「系統監視器」以檢視計數器。
除了上述所討論的
Active Directory
效能計數器外,還有監看
FRS
效能的計數器。FRS
效能計數器在兩種效能物件中:
·
FileReplicaConn。含有監看至分散式檔案系統
(Dfs)roots
複本連線效能的計數器。
·
FileReplicaSet。含有監看複本組效能的計數器。
在
FileReplicaSet
效能物件中,您必須監看下列計數器以確保 FRS
的運作正常。下列各計數器在監看一段時間後都應該顯示某些活動。
|
計數器 |
說明 |
|
Change
Orders Received |
代表從傳入的協力電腦中所接收到的變更通知數目。 |
|
Change
Orders Sent |
代表傳送至傳出協力電腦的變更通知數目。 |
|
File
Installed |
代表安裝在本機電腦上的複寫檔案數目。 |
|
Packets
Received |
代表本機電腦所接收的資料量。這些封包可以是變更通知、檔案資料,或其他指令封包。 |
|
Packets Sent |
代表已傳送的資料量。這些封包可以是變更通知、檔案資料,或其他指令封包。 |
|
USN Records
Accepted |
代表已接受用於複寫的記錄數目。複寫動作將由寫入
NTFS
變更日誌的項目觸發。FRS
會從日誌中讀取每個檔案關閉記錄,然後判斷是否要複寫檔案。
已接受的記錄將會產生變更指示,並於稍後將指示傳送出去。此計數器的值若較高
(約每五秒一次),即表示複寫輸送量很繁重,這可能延遲複寫作業。 |
除了上面表格中的計數器外,您還應該定期監看下列兩個
FileReplicaSet
計數器,以確定磁碟空間不足不會導致 FRS
問題:
·
KB of Staging
Space Free。代表
FRS
在複寫檔案前,用以暫時儲存檔案之接移目錄中的可用磁碟空間數量。
·
KB of Staging
Space in Use。代表接移目錄目前使用中的空間大小。如果接移目錄空間不足,複寫便會停止。
在做 Active
Directory
部署時,常會忽視到的最重要一點是對作業環境的持續監看。藉由持續的監看,您能夠偵測到環境中所可能引發的任何問題,並希望在它們影響環境或使用者前修正這些問題。
如果您沒有定期持續監看,網域控制站可能會發生問題,而您可能對此毫無警覺,直到這個問題開始影響使用者為止。到系統報告使用者發生問題,而您辨識出問題的原因時,此問題可能已對環境的影響可能超過如果持續監看程序已偵測出問題的話。
當監看
Active Directory
時,需要監看的主要項目包括;
|
監看的項目 |
用於監看的公用程式 |
|
DNS
和網路組態 |
Netdiag.exe |
|
連線物件 |
Repadmin.exe
和
Replmon.exe |
|
複寫 |
Dcdiag.exe、Repadmin.exe
和
Replmon.exe |
如果上面任一項目發生問題,都會影響到
Active Directory。
下一節將討論用以監看這些項目的公用程式。
Netdiag.exe
診斷工具可用來找出網路和連線的問題。Netdiag.exe
會執行一連串的測試以判斷網路用戶端的狀態,並決定其運作是否正常,同時並確認 DNS
名稱登錄。這些測試和
Netdiag.exe
所提供的網路狀態資訊可用來辨識並隔離網路的問題。
執行監看
Active Directory
環境的
Netdiag.exe
時,建議使用以下的指令行與參數:
netdiag /v
/v
參數提供詳細資訊輸出。
這個指令行包含在
QA_Check.cmd
指令碼中,並加上
/skip:LDAP
參數。Netdiag.exe
所執行的
LDAP
測試在嘗試聯繫您環境中的每個網域控制站時,會產生大量的網路輸送量。然而因為每個網域控制站每天都會執行
QA_Check.cmd
指令碼,因此執行 LDAP
測試會對分公司網路造成相當大的負擔,並降低連結速度。但是,您仍然需要每週最少執行一次
Netdiag.exe,並且不加上
/skip:LDAP
參數,以確保沒有任何 LDAP
問題產生。
您應該排除
Netdiag.exe
所找到的所有問題,並使用
Netdiag.exe
輸出所提供的資訊來協助隔離問題。有關特定錯誤的詳細資訊,請參閱本書第
11
章<分公司環境的疑難排解指南>。
Repadmin.exe
亦稱為「複寫診斷」工具,可用來診斷複寫的問題。管理員可用 Repadmin.exe
檢視網域控制站對複寫拓樸的看法。此外,Repadmin.exe
也可用來強制網域控制站之間的複寫事件,並檢視複寫中繼資料與最新的向量 (vector)。
各網域控制站上應定期使用的
Repadmin.exe
參數有兩種:/showreps
和
/showconn。QA_Check.cmd
指令碼可同時用這兩個參數來執行 Repadmin.exe。
這個參數顯示指定網域控制站上各命名內容中的複寫協力電腦,包括傳入與傳出的協力電腦。藉由檢查複寫協力電腦,您可以判斷網域控制站是否擁有正確的連線物件。當您對各複寫協力電腦使用
/showreps
時,亦可顯示上次所嘗試的複寫動作,以及這項嘗試是否成功,例如:
DC=branches,DC=corp,DC=hay-buv,DC=com
HUB\HUBDC1 via
RPC
objectGuid:fe641acc-3d4e-48a9-ada6-209e5329feef
Last attempt @
2000-12-02 07:09.44 was successful.
這個參數顯示目前網域控制站上的連線物件。藉由檢查連線物件,您可以判斷網域控制站是否已設定為複寫集線器站台中正確的橋頭伺服器。此外,您也可以用傳回的資訊確認所啟用的連線、所使用的傳輸、連線物件建立的時間,以及上次變更連線物件的時間。例如:
CN=Staging, CN=Sites,CN=Configuration,DC=corp,DC=hay-buv,DC=com:
POS\HUBDC1 to
POS
enabledConnection:TRUE
fromServer:HUB\HUBDC1
TransportType:IP
whenChanged:20001130071554.0Z
whenCreated:20001130070741.0Z
如果您覺得網域控制站的複寫協力電腦不正確,應該檢查
Mkdsx.dat
檔案以判斷正確的複寫協力電腦應是何者。然後您應該使用 Active Directory
站台及服務檢查錯誤的連線物件,看看您是否可以判斷出它們的建立方式。重新執行 Mkdsx
指令碼將會移除任何不應是拓樸一部份的連線物件,並重新建立所有可能遺失的有效連線物件。
Dcdiag.exe
是一個可用來分析網域控制站狀態並報告問題的公用程式。Dcdiag.exe
會執行一連串的測試來確認系統的不同部分,這些測試包括:
·
連線
·
複寫
·
拓樸整合性
·
檢查 NC
Head
安全性描述元
·
檢查網路登入權限
·
定位程式取得網域控制站
·
站台間的運作狀況
·
檢查角色
·
信任確認
Dcdiag
應使用的參數有三種:
·
/v。提供詳細資訊結果
·
/f:LogFile。將輸出重新導向至指定的記錄檔
·
/ferr:ErrLog。將嚴重錯誤輸出重新導向至不同的記錄檔
當使用
/v
以顯示詳細資訊結果時,Dcdiag
的輸出將提供相當多的資訊,這會使排除所找到的錯誤變得更容易。除此之外,Dcdiag
還會在資訊的末端為各種測試顯示摘要行,以指出這項測試是否通過或失敗。以下是 Dcdiag
測試的輸出範例:
Starting
test:RidManager
* Available RID
Pool for the Domain is 6603 to 1073741823
*
hubdc1.branches.corp.hay-buv.com is the RID Master
* DsBind with
RID Master was successful
*
rIDAllocationPool is 4603 to 5102
* rIDNextRID:
4605
*
rIDPreviousAllocationPool is 4603 to 5102
......................... POS passed test RidManager
QA_Check.cmd
指令碼使用下面的指令行來執行 Dcdiag.exe:
Dcdiag /s:%computername%
/v /f:C:\ADResults\Dcdiag.txt /ferr:C:\ADResults\Dcdiagerr.txt
您應該排除
Dcdiag
所找到的任何問題,並使用
Dcdiag
輸出所提供的資訊來協助隔離問題。有關特定錯誤的詳細資訊,請參閱本書第
11
章<分公司環境的疑難排解指南>。
Replmon.exe
可用來檢視
Active Directory
複寫的低層級狀態、強制網域控制站之間的同步處理、檢視圖形格式的拓樸,及透過圖形介面監視網域控制站複寫的狀態與效能。
因為
Replmon.exe
擁有圖形介面,所以
QA_Check.cmd
指令碼並不會用它來監看網域控制站。但某些管理員在檢查 QA_Check.cmd
產生的摘要檔中所報告的錯誤原因時,可能會想要使用 Replmon.exe。基於這個目的,使用
Replmon.exe
提供兩項實用功能:
·
產生狀態報告。這個選項可產生受監看伺服器的狀態報告,包括:伺服器目錄分割區的清單、各目錄分割區複寫協力電腦的狀態、當記錄變更時監看伺服器通知網域控制站的詳細資料、任何「群組原則」物件的狀態、擁有操作主機的網域控制站、電腦上效能計數器的快照,以及伺服器的登錄組態。
·
顯示複寫拓樸。這個選項可顯示站台間拓樸的圖形檢視,並可用以顯示伺服器內容,以及該伺服器上所存在之任何站台間的連線。
FRS
是一種多執行緒的複寫引擎,可用來同時複寫不同電腦間的檔案。當您新增、移除或修改網域控制站上
SYSVOL
資料夾的內容時,這些變更便由 FRS
複寫到該網域內其他所有網域控制站的 SYSVOL
資料夾中。
FRS
在複寫
SYSVOL
內容時,使用的是與
Active Directory
相同的連線物件。因此,在進行站台間複寫時也會使用與 Active
Directory
相同的排程。
一定要監看
FRS
複寫並確定複寫在您的環境中正常運作。如果 FRS
無法複寫至網域控制站,而您使用的是「群組原則」的話,「群組原則」變更將無法複寫至發生複寫問題的網域控制站內。
不巧的是,並沒有太多工具可以監看
FRS
複寫。能夠用以監看 FRS
複寫的方法有三種:
1.
其中最實際的方法就是將「標籤檔案」複製到
SYSVOL
共用資料夾。在網域控制站複寫協力電腦的下一個複寫間隔時間後,您可以檢查複寫協力電腦的 SYSVOL
共用資料夾,看看「標籤檔案」的複寫是否成功。
2.
檢查
FRS
記錄檔中是否有錯。FRS
所產生的記錄檔是一種有效的方法,用以追蹤執行的動作和 FRS
遇到的任何問題。
3.
使用
Microsoft Windows 2000 Resource Kit
中的
Ntfrsutl.exe
來檢視
FRS
資訊。
QA_Check.cmd
指令碼使用方法
2 和
3 來監看
FRS
服務的問題。下面將詳細描述這兩種方法。
檢查
FRS
記錄檔
FRS
會在
%systemroot%\Debug
資料夾中建立文字型的記錄檔以協助 FRS
問題的除錯。若要觀察特定事件,您應該取得最接近事件發生之記錄檔的快照。將記錄檔儲存在其他位置,以便您稍後進行檢查。
在預設情況下,FRS
記錄檔會將異動和事件細節存成依順序編號的檔案:如
Ntfrs_0001
到
Ntfrs_0005。異動和事件將寫入當時版本編號最高的記錄檔中。Ntfrsapi.log
檔案中含有升級和降級時所發生的事件 —
換言之,即是在
FRS 登錄機碼中建立
FRS
子機碼。
若要擷取隨機或斷續事件,您可以擴充
FRS
記錄檔的編號。例如,您可以將記錄檔的編號增加到 50,然後在編號用盡時保存這些檔案。這有助於累積回應使用者突發查詢所需的記錄,並找出問題的所在。
根據調查的問題,可能有必要檢視傳入和傳出複寫上的
FRS
記錄。如果是這樣,您必須確定兩個伺服器上的系統時間是同步的,這樣才能使複寫協力電腦間的事件相互關聯。
最後,當在尋找和保持系統上的重要記錄事件時,「服務控制管理員」(Service
Control Manager,SCM)
中
FRS
服務的復原設定扮演非常重要的角色。如果服務已經聲明,但 SCM
卻設定成在發生錯誤時自動啟動 FRS,那麼系統將會產生足以使
Ntfrs_0005.log
中事件減量的記錄傳輸量,並使磁碟中的事件遭到刪除。當快要發生錯誤時,停止傳入和傳出複寫上的服務,然後將記錄檔複製到其他位置以進行分析。
設定
FRS
記錄檔
記錄檔的特性是由
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NtFrs\Parameters
子機碼中數個登錄項目的值所決定。下列登錄項目可用來設定產生 FRS
記錄檔的方式:
·
Debug Log Files。指定將建立的記錄檔數目。當記錄檔編號用盡時,系統會刪除版本最低的記錄檔,然後將剩餘的記錄檔名稱減
1
以確定有足夠空間建立新的記錄檔。請注意,如果您變更登錄中的這個值,則您必須編輯
QA_Check.cmd
檔,並將對 Ntfrs_0005.log
之所有參考中的數字
5
變更為這個值所指定的號碼。
·
Debug Log
Severity。指定
FRS
記錄檔中的詳細資料層級。詳細資料的層級可以從 0
到 5,而
5
則代表提供最詳細的資料。如果這個值未顯示出來,則預設值為 2。
·
Debug Maximum
Log Messages。指定記錄檔的大小,以行數為單位。記錄檔的預設值為
10,000
行,其大小約為 1 MB。
若要變更 FRS
記錄檔的數量、大小或詳細資料層級,請編輯登錄項目中的值。在您增加記錄檔的大小或數量前,請確定有足夠的磁碟空間可以使用。
當變更這些登錄項目時,您應該停止
FRS
服務、編輯登錄,然後重新啟動 FRS
服務,以使這些變更立即生效。
分析
FRS
記錄檔
使用
FRS
記錄檔解決問題的第一步就是確定登錄中的「Debug Log
Severity」項目設定的值夠高,才能夠擷取識別問題所需的事件。
下一步,識別記錄中的錯誤、警告訊息和里程碑事件。最好的作法是從上一個記錄檔的底部開始,然後逐一展開您的工作。將您的重點擺在「安裝」(install)、「成功」(success)、和「失敗」(fail)
等關鍵字上。如果您找不到所要搜尋的錯誤,請從上一個記錄檔的底部開始 (Ntfrs_0005.log,然後是
Ntfrs_0004.log,依此類推)。使用
Find 或
Findstr
指令來找出記錄檔中的錯誤,如:
find /in "error
warn fail" ntfrs*.* >err.tmp
注意:QA_Check.cmd
指令碼含有數個
Findstr
指令可檢查
FRS
記錄檔中的特定訊息。檢查
QA_Check.cmd
指令碼中的其他訊息範例,藉以搜尋
FRS
記錄檔。
您可以根據內容略過某些錯誤,如「jet
attach db – 1811. Db not found」,因為
Ntfrs.jdb
檔案在
FRS
第一次啟動時並不存在。直到服務建立檔案後,您將在 Dcpromo
之後或手動刪除 Ntfrs.jdb
檔案後立即看到這個錯誤。當使用者或程序鎖定檔案時,會發生 SHARING_VIOLATION
訊息所指定的共用違規。因為
FRS
僅會追蹤已關閉的檔案、鎖定檔案和未複製的目錄。
如果您在
FRS
記錄檔中發現失敗錯誤,請檢查執行緒編號並繼續尋找符合執行緒識別碼記錄中的所有事件,直到您看到相關的變更命令為止。若要知道為什麼伺服器
A
上的檔案沒有複寫到第二或第三個複寫,請找到原生伺服器上 Ntfrs_00n.log
檔案中的
":: COG"
編號。在第二和第三個複寫的記錄中搜尋相同的全域唯一識別項 (GUID)。若
“:: COG”
項目出現在 FRS
記錄檔中,則「Debug
Log Severity」登錄值必須設定為
3
或更大的值。
FRS
記錄檔的內容
FRS
記錄檔中有各種識別碼。下表將列出最重要的識別碼,並加以說明以協助您解釋 FRS
記錄檔的內容。在某些情況下,僅有 GUID
的第一個
DWORD
會顯示在記錄檔中。
|
識別碼 |
說明 |
|
:T: |
識別字串。 |
|
CoG: |
變更命令的
GUID –
識別唯一的檔案建立/刪除/重新命名/修改動作。 |
|
CxtG:
|
連線
GUID –
識別連接上游電腦至傳遞這個變更命令之電腦間的拓樸中的連線物件。 |
|
[ ] - RemCo
|
識別遠端變更命令。 |
|
[ ] - RemCo,
Abort |
識別已中止的遠端變更命令。 |
|
[ ] - LclCo |
識別本機的變更命令。 |
|
[ ] LclCo,
Abort |
識別已中止的本機變更命令 |
|
Name: |
檔案名稱。 |
|
EventTime: |
執行變更時原始成員上的時間。 |
|
Ver: |
檔案的版本編號。每次建立本機變更命令時此號碼會增加一。 |
|
FileG: |
檔案
GUID –
識別唯一的檔案或目錄,並可當作檔案或目錄中的 NTFS
物件
ID。在各複本成員中的對應檔案/目錄都有相同的檔案
GUID。 |
|
FID: |
檔案
ID – NTFS
卷冊特有的檔案
ID (也稱為「檔案參考編號」(File
Reference Number))。 |
|
ParentG: |
父系
GUID –
含有這個檔案或目錄之父目錄的 GUID。 |
|
Size: |
檔案或目錄的約略大小,以十六進位表示。 |
|
OrigG: |
召集人
GUID –
與產生此更新資料之複本組成員相關的 GUID。 |
|
Attr: |
檔案屬性
–
檔案或目錄的屬性旗標。 |
|
LocnCmd: |
位置指令
–
下列其中之一:Create、Delete、NoCmd、MoveDir;以上指令表示檔案的建立、刪除、更新或變更父目錄。 |
|
State: |
變更命令狀態
-
下列其中之一:IBCO_STAGING_RETRY、IBCO_FETCH_RETRY、IBCO_INSTALL_RETRY、IBCO_COMMIT_STARTED;表示因接移空間不足、無法完成接移檔案取得,或無法將變更安裝至檔案中,而將於稍後重試這些變更命令。完成的變更命令狀態為
IBCO_COMMIT_STARTED。 |
|
ReplicaName: |
含有這個檔案或目錄的複本組名稱。 |
|
CoFlags: |
變更命令旗標:
Abort –
中止 CO
時設定。
VVAct –
提出 VV
啟動要求時設定。
Content –
有效的內容指令。
Locn –
有效的位置指令。
LclCo –
CO
在本機產生。
Retry –
CO
需要重試。
InstallInc
–
本機安裝未完成。
Refresh –
CO
是自上游產生之檔案的重新整理要求。
OofOrd –
不檢查/更新版本向量。
NewFile –
如果
CO
失敗,則刪除
IDTable
項目。
DirectedCo
–
這個 CO
被導向單一連線。
DemandRef
– CO
是重新整理的下游要求。
VVjoinToOri –
CO
是從
vvjoin
到召集人。
MorphGen –
CO
作為名稱變異解析的一部份產生。
MoveinGen
–
這個
CO
作為
sub-dir MOVEIN
的一部份產生。
OidReset –
CO
所做的就是將
OID
重設回
FRS
定義的值。
CmpresStage –
這個 CO
的階段檔案已遭壓縮。 |
|
UsnReason: |
NTFS
變更記錄中描述檔案修改的旗標組。
Close –
變更記錄檔關閉記錄。
Create –
檔案或目錄已經建立。
Delete –
檔案或目錄已經刪除。
RenNew –
檔案或目錄已經重新命名。
DatOvrWrt
–
主檔案資料流已被覆寫。
DatExt –
主檔案資料流已經延伸。
DatTrunc –
主檔案資料流遭到截斷。
Info –
基本資訊變更
(屬性、上次寫入時間等等)。
Oid –
物件 ID
變更。
StreamNam
–
其他資料流名稱變更。
StrmOvrWrt
–
其他資料流已遭覆寫。
StrmExt –
其他資料流已經延伸。
StrmTrunc
–
其他資料流遭到截斷。
EAChg –
延伸檔案屬性已經變更。
Security –
檔案存取權限已變更。
IndexableChg –
檔案變更要求重新索引。
HLink –
硬連結
(Hard link)
變更。
CompressChg –
檔案壓縮屬性已變更。
EncryptChg
–
檔案加密已變更。
Reparse –
重新剖析點已變更。 |
Ntfrsutl.exe
工具可用來執行下列動作:
·
顯示容納
FRS
之電腦的 ID
表格、傳入記錄或傳出記錄。
·
利用
FRS
檢查記憶體使用情況。
·
顯示
Active Directory
中的
FRS
組態。
·
列出網域中現用的複本組。
·
列出
FRS 的
API
和版本編號。
·
立即、快速或緩慢輪詢
FRS
組態的變更
注意:若要存取
Ntfrsutl
所報告的某些資訊,執行公用程式的使用者必須以管理員身份登入。
下列參數適用於使用
Ntfrsutil
監看
FRS:
·
Ds。列出
FRS
服務的目錄服務檢視
·
Sets。列出使用中的複本組
·
Inlog。列出
FRS
服務的傳入記錄
·
Outlog。列出
FRS
服務的傳出記錄
·
Version。列出
FRS 的
API
和服務版本
QA_Check.cmd
指令碼可使用上述任一參數來執行 Ntfrsutl,並為每一個參數建立個別的記錄檔。
除本書中的
QA_Check.cmd
指令碼以外,還有兩個指令碼可用來監看 FRS。這兩個指令碼為
Connstat.cmd
和 Frscheck.cmd。
Connstat.cmd
指令碼處理「ntfrsutl
sets」指令的輸出,以建立指定網域控制站的
FRS
連線摘要。Connstat.cmd
所建立的報告分成三個部分:標題、傳入連接的狀態和傳出連接的狀態。這個指令碼由 QA_Check.cmd
指令碼呼叫,並由後者將其輸出重新導向至 C:\ADResults\Frsconstat.txt。
報告標題
報告標題含有下面的資訊:
Processing file
C:\ADResults\ntfrs_sets.txt Modify Time:Sat Dec 2
07:17:22 2000
Replica:DOMAIN
SYSTEM VOLUME (SYSVOL SHARE)
(b0513a54-b248-492b-96f475d9fec62804)
Member:STAGING
ServiceState:3 (ACTIVE) OutLogSeqNum:319
OutlogCleanup:319
Delta: 0
第一行列印輸入檔案的名稱,然後是上次修改檔案的時間。建議您在檔案名稱中加上伺服器的名稱。下一行則顯示複本組的名稱與
GUID。第三行顯示成員名稱
(這在
DFS 複本組中通常是
GUID)、FRS
服務的狀態、目前傳出記錄的順序編號、將開始下一個清除通路的傳出記錄順序編號,以及這兩個號碼間的差異。最後一個值所指的是輸出記錄檔中目前所顯示變更命令數目的約略計數。這是一個近似值,因為在某些情況中可能會刪除干擾變更命令。
以下是 FRS
服務的狀態:
|
狀態 |
意義 |
|
REPLICA_STATE_ALLOCATED |
複本組在初始化的狀態 |
|
REPLICA_STATE_INITIALIZING |
複本組在初始化的狀態 |
|
REPLICA_STATE_STARTING |
啟動複本組 |
|
REPLICA_STATE_ACTIVE |
複本組目前正在作用中 |
|
REPLICA_STATE_STOPPED |
複本組目前已經停止 |
|
REPLICA_STATE_ERROR |
複本組因發生錯誤而停止 |
|
REPLICA_STATE_JRNL_WRAP_ERROR |
複本組因
NTFS
日誌遺失資料而停止 |
|
REPLICA_STATE_REPLICA_DELETED |
複本組已標示為刪除 |
傳入連接
以下將說明傳入連接。顯示如下:
Partner
I/O State Rev LastJoinTime
<Jrnl Cxtion>
In Joined 0
BRANCHES\HUBDC1$ In Joined
3
第一欄
Partner
為連線協力電腦的名稱。此名稱是由網域名稱及伺服器名稱所組成。而 I/O
欄描述連線是傳入或傳出連接。State
欄則是此連接目前的狀態。Rev
欄是協力電腦通訊協定的次
rev 層級。LastJoinTime
是這個成員上一次加入對應協力電腦的時間。
協力電腦名稱
<Jrnl Cxtion>
是指本機的
FRS
日誌,通常作為另一個傳入協力電腦。
「連接狀態」有以下幾種情形:
|
連接狀態 |
意義 |
|
INIT |
剛完成配置 |
|
Unjoined |
尚未加入協力電腦 |
|
Start |
傳入協力電腦要求加入 |
|
Starting |
開始加入 |
|
Scanning |
掃描傳入記錄 |
|
SendJoin |
掃描完成,將加入要求傳送至協力電腦 |
|
WaitJoin |
傳送要求,等待協力電腦回應 |
|
Joined |
已加入協力電腦 |
|
Unjoining |
透過重試消耗遠端變更命令 |
|
Deleted |
連線已經刪除 |
「連接」原來以
INIT
狀態建立,然後再進入 UNJOINED
狀態。之後,如果排程允許,而且 StartJoin
要求傳送至傳入記錄子系統中時,則進入 STARTING
狀態。當
inlog
啟動要求時,則進入 SCANNING
狀態。當掃描完複本組的傳入記錄後,並重新佇列此傳入協力電腦連線的所有變更命令後,連接就進入
SENDJOIN
狀態。然後 Replica
控制子系統會挑選其作為重試路徑的連線,執行一次 INIT,將
JOIN
要求傳送至傳入協力電腦,然後進入 WAITJOIN
狀態。一旦完成加入要求後,成功則進入 JOINED
狀態,失敗則變成
UNJOINED 狀態。
判斷協力電腦是否瞭解壓縮的快速方法就是使用
Rev
等級。Rev
層級 3
的連接無法產生或瞭解壓縮的接移檔案。Rev
層級 4
的連線可產生其他
Rev 層級
4
協力電腦的壓縮接移檔案,以及已關閉之 rev
協力電腦的未壓縮接移檔案。Rev
層級 4
協力電腦可同時瞭解來自其傳入協力電腦的壓縮與未加縮接移檔案。
若要參與有效的
FRS
複本組,每位成員「必須」最少要有一部傳入協力電腦。
傳出連接
下面的章節將說明傳出連接。顯示如下:
Member:STAGING
ServiceState:3 (ACTIVE) OutLogSeqNum:319
OutlogCleanup:319 Delta: 0
Send
Cleanup Cos
Partner
I/O State Rev LastJoinTime OLog
State Leadx Delta Trailx Delta LMT Out Last
VVJoin
BRANCHES\HUBDC1$ Out Joined -vv
3 OLP_AT_QUOTA 422352
146 422225 7552 127 7 Sat Dec 2 2000 07:17:22
最左邊的部分往上到
LastJoinTime
為止大部分都與傳入連接相同。唯一的差異是 State
欄中所顯示的標記「-vv」。如果出現這個標記,即表示此連線正在執行
Version Vector
型態的加入作業。一般而言,當傳出協力電腦第一次加入複本組,或如果在執行非授權的復原程序 (D2)
時,這個作業即已完成。當這個初始同步處理完成後,連線即結束 VVJoin
狀態。這僅適用於傳出連接。
報告的其他部分則是這個連接中與傳出記錄相關的狀態。OLog
狀態所描述的是此連接的傳出記錄處理狀態。其狀態包括:
|
OLog
狀態 |
意義 |
|
OLP_UNJOINED |
協力電腦未加入 |
|
OLP_ELIGIBLE |
協力電腦可接受進一步的變更命令
(已加入和變更命令
[COs] Out < Max) |
|
OLP_STANDBY |
協力電腦已準備加入適當的清單 |
|
OLP_AT_QUOTA |
協力電腦已在未處理變更命令的上限 |
|
OLP_INACTIVE |
協力電腦不接受變更命令 |
注意:當
FRS
正在主動複寫時
OLP_AT_QUOTA
屬正常情況,因為它會在每個已加入的傳出連接上一直嘗試保持八個變更命令在未處理的狀態
(請參閱本章後面的「COs
Out」)。但是,OLP_AT_QUOTA
和數值為
127 的
LMT
的組合,極可能是一個問題。
Leadx
欄是進入輸出記錄的索引,以便此連接處理下一個變更命令。「傳送差異」(Send Delta)
是
OutLogSeqNum (outlog
中最近變更命令的索引)
與此連接之
Leadx
值之間的差。所以這是剩餘等待此連接進行處理的變更命令數目。「傳送差異」為零時,表示此時此連接已經完全同步。除非複本組或連線排程中幾乎沒有活動「一直開啟著」,否則您不太可能看到「傳送差異」為零的連接。
Trailx
欄是進入最久未認可傳出變更命令之傳出記錄的索引。每一個傳送至此連線協力電腦的變更命令,最後都會獲得認可。變更命令的認可並不一定依照它們所傳送的順序。系統所提供的
128
位元滑動認可視窗可用來追蹤已經認可的變更命令。這是表示在 128
位元的
AckVector
換行之前,在最久的未認可變更命令後最多可傳送 127
個連續的變更命令,並強制
FRS
停止傳送變更命令至這部特定的協力電腦。「清除差異」是此連線之 Trailx
值與
OutLogCleanup
索引間的差,後者是所有傳出連接的 Trailx
最小值。所以「清除差異」是目前此連線所處理之變更命令的計數,並且可以從 outlog
進行解除。然而,因為所有傳出連接都共用相同的傳出記錄,所以清除階段必須在停在最慢 (或最後)
連接的「內嵌索引」(Trailing
Index)。直到未加入的協力電腦
(1)
加入這個成員以繼續複寫,或 (2)
刪除目錄服務中與這個成員的連線物件,並且無法執行其他 outlog
清除作業 (這將釋出相關的接移檔案空間)。所以您應該仔細檢查那些連接具微小清除差異的協力電腦,以確認它們的作業狀態。
LMT
欄是
Leadx
與 Trailx
兩欄中值的差異。此值的上限由上述 AckVector
的大小限制。此欄中的值若為 127
表示這個連線可能已經停止。這是因為協力電腦上的 FRS
無法正確識別變更命令所致。這也可能是因為傳輸極大檔案後,緊接著極小檔案的變更命令所導致的一般情況。一旦完成大檔案的傳輸後,傳出協力電腦將確認變更命令而此狀況將自動消除。此時您可等待一下看看情況是否改變,或研究傳出協力電腦上的
FRS
除錯記錄,看看是否正在進行擷取檔案資料的程序。所有伺服器都應執行 Service Pack 1
或更新的版本,以避免已知
FRS
連線可能會停止的情況。如果您歸結出連線已經停止,那麼先試著刪除目錄服務中的相關連線物件,然後再重新建立。如果發生相同的狀況,那麼您將必須在傳出協力電腦上執行非授權的復原
(D2)
程序。
COs Out
欄是協力電腦中所擱置之現用未認可變更命令的數目。在預設情況下,FRS
一次最多允許每個傳出連接上有八個未處理的變更命令。此值由登錄參數控制,當您處在高延遲通訊連結的環境中時,可能需要提高這個值。請注意,協力電腦上的
FRS
將嘗試同時啟動八個變更命令之接移檔案的擷取要求,所以增加這個登錄參數的值,將增加上游成員的負荷。登錄機碼為
"Max Num
Outbound COs Per Connection"。
這是最大值為
100 的
DWORD。COs
Out 的值為
1 與
LMT 的值為
127
時,此組合是一個非常容易中斷的連線 (如果不是非常大的檔案)。
Last VVJoin
欄是上一次連線時完成
Version Vector
型態加入的日期與時間。
執行
CONNSTAT.CMD
Connstat.cmd
是一個具有
cmd
換行符號的 perl
指令碼。您必須安裝
Microsoft Windows 2000 Resource Kit
中的
Active Perl,並從路徑中去執行。其使用狀況的資訊為:
connstat
[-sort=xxx] datafile
-sort=send --
sort outbound connections by the send delta
-sort=clean --
sort outbound connections by the cleanup delta
-sort=name --
sort outbound connections by the server name (default)
-sort=lmt --
sort outbound connections by the leading minus trailing
index value.
-sort=lastjointime
-- sort outbound connections by the last join time.
-sort=lastvvjoin
-- sort outbound connections by the last version vector
join time.
輸出報告會寫入
stdout
中。您可以用
-sort
參數依相關欄位中的資料排序傳出連接的部分。
Frscheck.cmd
指令碼可取得引擎中大部分與
FRS
相關的狀態。它使用 Ntfrsutl.exe
來收集
FRS
版本、設定、目錄服務、configtable、inlog
和
outlog
等資訊。此外還收集登錄參數,並掃描 FRS
除錯記錄看看其中是否有錯誤資訊。
注意:若要存取
Ntfrsutl
所報告的某些資訊,執行公用程式的使用者必須以管理員身份登入。
Frscheck.cmd
的使用方式為:
frscheck
result_dir [target_computername]
result_dir is
created if it does not exist.
Target_ComputerName is optional.Default is current
computer.
It can be a
netbios name with no leading \\ or a full dns name,
xxx.yyy.zzz.com
Frscheck.cmd
會要求在指令行提示符號下啟用延遲的環境變數擴充。您可以使用啟用或停用延遲環境變數擴充,以利用 /v:ON
或 /v:OFF
參數進行
Cmd.exe
的特殊呼叫。如果您要啟用或停用電腦上所有 Cmd.exe
呼叫的完成,可以使用
Regedt32.exe
並將下列 REG_DWORD
的值設定為
1 或 0:
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedExpansion
本章的重點在指令碼和其他可用於監看Active
Directory
和
FRS
的工具上。此外還提供有關指令碼及其輸出的資訊、有關 Microsoft Windows 2000
Resource Kit
工具的詳細資訊,和有關協力廠商工具的資訊。