事件識別碼 2042:這部電腦複寫後已經過很長一段時間

更新日期: 2008年10月

適用於: Windows Server 2008, Windows Server 2008 R2

如果網域控制站未與其協力電腦複寫的時間超過標記存留期,兩者或其中一個網域控制站上可能有延遲物件問題。Active Directory 樹系中的標記存留期決定 Active Directory 網域服務 (AD DS) 保留刪除物件 (稱為「標記」) 的時間。標記存留期是由設定目錄分割中目錄服務物件的 tombstoneLifetime 屬性值所決定。

當發生狀況,造成記錄事件識別碼 2042 時,目的地網域控制站上會停止與來源協力電腦的輸入複寫,而且目錄服務事件記錄檔中會記錄事件識別碼 2042。此事件識別來源網域控制站,以及執行的適當步驟來移除過期的網域控制站或移除延遲物件並從來源網域控制站還原複寫。

以下是事件文字的範例:

Log Name: Directory Service
Source: Microsoft-Windows-ActiveDirectory_DomainService
Date: <Time>
Event ID: 2042
Task Category: Replication 
Level: Error
Keywords: Classic
User: ANONYMOUS LOGON
Computer: <domain controller hostname>
Description:
It has been too long since this machine last replicated with the 
named source machine. The time between replications with this source 
has exceeded the tombstone lifetime. Replication has been stopped 
with this source. 
The reason that replication is not allowed to continue is that 
the two machine's views of deleted objects may now be different. 
The source machine may still have copies of objects that have 
been deleted (and garbage collected) on this machine. If they 
were allowed to replicate, the source machine might return 
objects which have already been deleted. 
Time of last successful replication:
<date> <time> 
Invocation ID of source: 
<Invocation ID> 
Name of source: 
<GUID>._msdcs.<domain> 
Tombstone lifetime (days):
<TSL number in days>

The replication operation has failed.

User Action:

Determine which of the two machines was disconnected from the 
forest and is now out of date. You have three options: 

1. Demote or reinstall the machine(s) that were disconnected. 
2. Use the "repadmin /removelingeringobjects" tool to remove 
inconsistent deleted objects and then resume replication. 
3. Resume replication. Inconsistent deleted objects may be introduced. 
You can continue replication by using the following registry key. 
Once the systems replicate once, it is recommended that you remove 
the key to reinstate the protection. 
Registry Key: 
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\Allow Replication With Divergent and Corrupt Partner

repadmin /showrepl 命令也會回報錯誤 8416,如下列範例所示:

Source: Default-First-Site-Name\DC1
******* <number> CONSECUTIVE FAILURES since <date> <time>
Last error: 8614 (0x21a6):
            The Active Directory Domain Services cannot replicate with this server 
because the time since the last replication with this server has 
exceeded the tombstone lifetime.

原因

記錄事件識別碼 2042 有幾個可能原因,包括下列:

  • Windows Server 2003 Service Pack 1 (SP1) 前版網域控制站有軟體問題,導致複寫失敗

  • 已存在的複寫失敗超過設定的標記存留期值

  • 系統時間超前或倒退,導致部分 (但非全部) 網域控制站上刪除物件

解決方法

此問題的解決方法取決於問題的實際原因。若要解決此問題,請檢查下列每個狀況:

  1. 判斷是否所有 Windows Server 2003 網域控制站都已至少套用 SP1。如果發現任何不符合此條件的網域控制站,務必將它們更新為 SP1 以解決此問題。

  2. 判斷是否有複寫失敗超過樹系的標記存留期。樹系的標記存留期通常預設為 60 到 180 天。事件訊息會指出目前設定的樹系標記存留期。

    執行 repadmin /showrepl 命令以判斷複寫問題是否存在。如果您懷疑有複寫問題,請參閱使用 Repadmin 監視和疑難排解 Active Directory 複寫 (http://go.microsoft.com/fwlink/?linkid=140631) (英文),以取得如何解決此問題的詳細資訊。

  3. 判斷是否有延遲物件。若要這樣做,您可以在諮詢模式下執行 repadmin /removelingeringobjects 命令,如下列程序所述。

您必須先識別權威網域控制站。如果您知道特定網域控制站有最新變更,請將該網域控制站做為權威網域控制站。否則您必須在多個網域控制站上完成下列程序,直到識別有最新變更的網域控制站為止。接著將該網域控制站做為權威網域控制站。

若要完成此程序,至少需要 Domain Admins 或等同群組的成員資格。如需有關預設群組成員資格的詳細資訊,請參閱 Active Directory 本機與網域預設群組 (http://go.microsoft.com/fwlink/?LinkID=150761) (可能為英文網頁)。

識別延遲物件

  1. 在預期有最新變更的網域控制站,開啟提升權限的命令提示字元視窗。若要開啟提升的 [命令提示字元] 視窗,按一下 [開始]、指向 [所有程式],按一下 [附屬應用程式],在 [命令提示字元] 上按一下滑鼠右鍵,然後按一下 [以系統管理員身分執行]。

  2. 以諮詢模式執行 repadmin 命令。如此一來,即可評估延遲物件而不必實際移除任何項目。命令語法為 repadmin /removelingeringobjects <DestDCName> <SourceDCGUID> <LDAPPartition> /advisory_mode。在命令語法中以下列項目取代預留位置:

    • DestDCName - 做為延遲物件清理目標之網域控制站的主機名稱。例如,如果您要從 contoso.com 網域中的 DC1 移除延遲物件,請以 dc1.contoso.com 取代 <DestDCName>

    • SourceDCGUID - 執行 repadmin /showrepl AuthDCname |more 命令,其中 AuthDCname 是選為權威網域控制站的主機名稱。以第一個出現的 DSA 物件 GUID 取代 <SourceDCGUID>

    • LDAPPartition - 做為目標分割的輕量型目錄存取分割 (LDAP) 名稱。例如,如果延遲物件位於 contoso.com 網域的網域分割,請以 dc=contoso,dc=com 取代 <LDAPPartition>

    以下是識別延遲物件的範例命令:repadmin /removelingeringobjects dc1.contoso.com 4a8717eb-8e58-456c-995a-c92e4add7e8e dc=contoso,dc=com /advisory_mode

必要時在其他網域控制站上重複上述步驟,直到判定有最新變更的網域控制站為止。將該網域控制站做為權威網域控制站。執行 repadmin /removelingeringobjects 命令,但不要加入 /advisory_mode 參數,以實際移除延遲物件。視需要重複命令,從具有延遲物件的每個網域控制站移除延遲物件。

在事件識別碼 2042 之後重新啟動複寫

複寫的標準狀態是物件及其屬性的變更會以網域控制站可接收最新資訊的方式匯集。當發現夥伴網域控制站傳送舊變更時,來自該協力電腦的變更被視為「分歧」。該協力電腦即稱為進行「分歧複寫」。網域控制站通常會停止與被視為進行分歧複寫的任何協力電腦複寫。

在移除所有延遲物件之後,可透過編輯登錄,在記錄事件的網域控制站上重新啟動複寫。

Caution注意
您必須移除所有延遲物件之後,才能重新啟動複寫。不正確編輯登錄,可能會造成系統嚴重受損。在變更登錄之前,您應該先備份電腦上所有的重要資料。

若要完成此程序,至少需要 Domain Admins 或等同群組的成員資格。如需有關預設群組成員資格的詳細資訊,請參閱 Active Directory 本機與網域預設群組 (http://go.microsoft.com/fwlink/?LinkID=150761) (可能為英文網頁)。

在事件識別碼 2042 之後,使用 Repadmin 重新啟動複寫

  1. 開啟提升權限的命令提示字元。若要開啟提升的 [命令提示字元] 視窗,按一下 [開始]、指向 [所有程式],按一下 [附屬應用程式],在 [命令提示字元] 上按一下滑鼠右鍵,然後按一下 [以系統管理員身分執行]。

  2. 在命令提示字元中輸入下列命令,然後按 ENTER:

    repadmin /regkey <hostname> +allowDivergent

     

    參數 描述

    /regkey

    啟用 (+) 及停用 (-) HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters 中的 Strict Replication Consistency 登錄項目值。

    <hostname>

    取代單一網域控制站的名稱,或使用 * 將變更套用至樹系中的所有網域控制站。針對網域控制站名稱,您可以使用網域名稱系統 (DNS) 名稱、網域控制站電腦物件的辨別名稱或網域控制站伺服器物件的辨別名稱。

    +allowDivergent

    重新啟動與曾有延遲物件之複寫協力電腦的複寫。只有在移除所有延遲物件之後,才能執行此命令。在複寫正常重新執行之後,使用 –allowDivergent 參數以防止分歧複寫發生。

    note備註
    如果未使用 * 將變更套用至所有網域控制站,請針對您要允許分歧複寫的每個網域控制站重複步驟 2。

重設登錄以防止過期複寫

當您確定已移除延遲物件而且來源網域控制站已成功複寫時,請使用 Repadmin 以防止分歧複寫。若要這樣做,請執行 repadmin /regkey <hostname> -allowDivergent 命令。例如,若要在 Fabrikam.com 網域中名為 DC1 的網域控制站上限制分歧複寫,請執行 repadmin /regkey dc1.fabrikam.com –allowDivergent 命令。

note備註
如果未移除所有延遲物件,嘗試複寫可能會導致複寫延遲物件。如果在目的地網域控制站上啟用嚴格複寫一致性,與來源網域控制站的複寫會再次遭到封鎖。

標記 :


Page view tracker