針對 Active Directory 複寫錯誤 8614 進行疑難解答

本文提供針對 Active Directory 複寫錯誤 8614 進行疑難解答的步驟。

適用:Windows Server 2012 R2
原始 KB 編號: 2020053

注意事項

首頁使用者: 本文僅適用於技術支持專員和IT專業人員。 如果您要尋找問題的協助,請 詢問 Microsoft 社群

徵狀

  1. DCDIAG 報告 Active Directory 複寫測試失敗,錯誤狀態代碼為 8614:Active Directory 無法使用此伺服器進行復寫,因為上次使用此伺服器復寫的時間已超過標記存留期。

    Testing server: <site name><destination dc name>  
    Starting test: Replications  
    * Replications Check  
    [Replications Check,<destination DC name] A recent replication attempt failed:  
    From <source DC> to <destination DC>  
    Naming Context: <directory partition DN path>  
     The replication generated an error (8614):
     Active Directory cannot replicate with this server because the time since the last replication with this server has exceeded the tombstone lifetime.  
    The failure occurred at <date> <time>.  
    The last success occurred at <date> <time>.  
    3 failures have occurred since the last success.  
    
  2. REPADMIN.EXE 報告上次復寫嘗試失敗,狀態為8614。 通常會指出 8614 狀態的 REPADMIN 命令包含但不限於:

    • REPADMIN /REPLSUM
    • REPADMIN /SHOWREPL
    • REPADMIN /SHOWREPS
    • REPADMIN /SYNCALL

    描述從 CONTOSO-DC2 到 CONTOSO-DC1 的輸入複寫失敗並發生複寫存取遭拒錯誤的範例輸出REPADMIN /SHOWREPS如下所示:

     efault-First-Site-Name\CONTOSO-DC1  
     DSA Options: IS_GC  
     Site Options: (none)  
     DSA object GUID:  
     DSA invocationID:  
    
    ==== INBOUND NEIGHBORS ======================================  
    
    DC=contoso,DC=com  
    Default-First-Site-Name\CONTOSO-DC2 via RPC  
    DSA object GUID:  
    Last attempt @ <date> <time> failed, result 8614(0x21a6):
    The Active Directory cannot replicate with this server because the time since the last replication with this server has exceeded the tombstone lifetime.  
    <#> consecutive failure(s).  
    Last success @ <date> <time>.  
    
  3. 具有五個狀態的 NTDS KCC、NTDS 一般或 Microsoft-Windows-ActiveDirectory_DomainService 事件會記錄在目錄服務事件記錄檔中。

    通常會指出 8524 狀態的 Active Directory 事件包括但不限於:

    事件來源 識別碼 事件字串
    NTDS KCC 1925 嘗試建立下列可寫入目錄分割區的復寫連結失敗。
  4. NTDS 複寫事件 2042 可能會記錄在目錄服務事件記錄檔中:

    Event Type: Error
    Event Source: NTDS Replication
    Event Category: Replication
    Event ID: 2042
    User: NT AUTHORITY\ANONYMOUS LOGON
    Computer: <name of DC that logged event>
    
    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: YYYY-MM-DD HH:MM:SS
    Invocation ID of source: <32 character GUID for source DC>
    Name of source: <fully qualified cname record of source DC>
    Tombstone lifetime (days): <current TSL value. Default = 60 or 180 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's recommended that you remove the key to reinstate the protection.  
    
  5. Active Directory 月臺和服務中的 replicate now 命令會傳回下列訊息:

    Active Directory 無法使用此伺服器進行複寫,因為上次使用此伺服器進行復寫的時間已超過標記存留期。

    以滑鼠右鍵按兩下來源DC的連線物件,然後選擇立即在Active Directory 月臺和服務 (DSSITE 中 寫。MSC) 失敗。 您會收到下列訊息:

    Active Directory 無法使用此伺服器進行複寫,因為上次使用此伺服器進行復寫的時間已超過標記存留期。

    畫面上的錯誤訊息正文如下所示:

    對話框標題文字:立即複寫
    對話框訊息正文:嘗試將命名內容 <%directory 分割區名稱%> 從域控制器 <來源 DC> 同步處理至域控制器 <目的地 DC> 時,發生下列錯誤:

    Active Directory 無法與這部伺服器一起複寫,因為上次使用此伺服器進行復寫的時間已超過標記存留期。
    作業將不會繼續

    對話框中的按鈕:確定

原因

Active Directory 域控制器支援多宿主複寫。 任何保存可寫入數據分割的域控制器,都可以產生物件或屬性的建立、修改或刪除 (值) 。 物件/屬性刪除的知識會針對標記存留期天數持續存在。 (請參閱有關在 Windows Server Active Directory 樹系中停留物件的資訊

Active Directory 需要從所有數據分割持有者進行端對端復寫,以可轉移的方式將目錄分割區的所有原始刪除複寫到所有數據分割持有者。 無法在連續 TSL 天數內輸入複寫目錄分割區,會導致物件遺失。 遺留物件是已由至少一個 DC 刻意刪除的物件,但不正確地存在於目的地 DC 上,而目的地 DC 無法輸入複寫所有唯一刪除的暫時性知識。

錯誤8614是在執行 Windows Server 2003 或更新版本的域控制器中新增的邏輯範例。 它會隔離遺留物件的散佈,並識別導致目錄分割區不一致的長期復寫失敗。

錯誤 8614 和 NTDS 複寫事件 2042 的根本原因包括:

  1. 記錄 8614 錯誤的目的地 DC 無法從一或多個來源 DC 輸入複寫目錄分割區,以取得標記存留期天數。

  2. 自上次成功複寫以來,目的地DC上的系統時間已移動或超過標記存留期一或多個天數。 它讓復寫引擎 知道 目的地 DC 無法輸入複寫目錄分割區,以供標記存留期耗用天數。

    當下列條件成立時,可能會發生時間跳躍:

    • 目的地 DC 成功進行輸入複寫、採用 不正確的 系統時間 TSL 或未來更多的天數。
    • 目的地 DC 接著會嘗試從上次從 TSL 複寫的來源進行輸入復寫,或從過去多天數進行複寫。

    時間從目前時間跳到日期/時間標記存留期或過去的多天,成功進行輸入複寫。 然後,它會在採用時間 TSL 或未來多天數之後,嘗試輸入複寫。

基本上,復寫錯誤 8614 的原因和解決方式同樣適用於 NTDS 複寫事件 2042 的原因和解決方式。

解決方案

注意事項

有兩個動作計劃可復原記錄錯誤狀態 8614 或 NTDS 複寫事件 2042 的 Active Directory 域控制器。 您可以強制降級域控制器,或使用下列的行動計劃: 檢查所需的修正程式、尋找時間跳躍、檢查是否有遺留的物件,並在出現時將其移除、移除任何復寫隔離、解決複寫失敗,然後將DC放回服務中。 強制降級這類 DC 可能更容易且更快速,但可能會導致原始更新遺失 (也就是在強制降級的域控制器上) 數據遺失。 Active Directory 會遵循下列步驟,從此狀況正常復原。 選取最適合您案例的解決方案。 請勿假設強制降級是唯一可行的解決方案,特別是當復寫失敗容易解析或是 Active Directory 外部時。

  1. 檢查標記存留期的非預設值。

    根據預設,標記存留期會使用 60 或 180 天,視您樹系中部署的 Windows 版本而定。 Microsoft 支援服務 會定期看到那些期間內的輸入複寫失敗 DC。 標記存留期也可能已設定為短時間,例如兩天。 如果是的話,未針對輸入複寫的DC,例如五天將會失敗下列測試:

    所有 DC 都必須以滾動 TSL 天數進行複寫

    使用 repadmin /showattr 查看是否已設定 TombstoneLifetime 屬性的非預設值。

    repadmin /showattr "CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=<forest root domain>,DC=<top level domain>"
    

    如果屬性不存在於輸出中 showattr ,則會使用內部預設值。

  2. 檢查輸入復寫失敗的DC天數。TSL天數。

    repadmin /showrepl * /csv依照驗證成功複寫至域控制器一節中所指定,使用 Excel 執行剖析。 依照從最小最新到最新日期和時間的順序,排序 Excel 中最後一個復寫成功數據行的重寫輸出。

  3. 檢查 Windows Server 2003 RTM 域控制器。

    如果 Windows Server 2003 RTM 域控制器上發生 8614 錯誤,請安裝最新的 Windows Server 2003 Service Pack。

  4. 檢查時間跳躍。

    若要判斷是否發生時間 跳躍 ,請在記錄下列時間戳之 repadmin /showreps8614 錯誤的目的地 DC 上,檢查事件和診斷記錄 (、dcdiag 記錄) :

    • 早於操作系統發行日期戳記。 例如,Windows Server 2003 針對 Windows Server 2008 中發行的操作系統日期戳記。
    • 安裝樹系中操作系統的日期戳記。
    • 未來的日期戳記。
    • 指定日期範圍中未記錄任何事件。

    Microsoft 支援服務 小組在過去和未來看到生產域控制器上的系統時間不正確地跳到小時、天、周、年,甚至數十年。

    如果系統時間發現不正確,請更正它。 然後嘗試判斷時間為何會變短,以及可以採取哪些動作來防止未來時間不正確,而只是更正錯誤的時間。 可能要調查的區域包括:

    • 樹系根 PDC 是否使用外部時間來源來設定?
    • 參考時間來源是否在線、可在網路上使用,以及可在 DNS 中解析?
    • Microsoft 或第三方時間服務是否正在執行且處於無錯誤狀態?
    • DC 角色電腦是否設定為使用NT5DS階層來提供來源時間?
    • 時間回復保護是否已在 如何針對大型時間位移設定 Windows Time 服務 中所述?
    • 系統時鐘在 BIOS 中是否有良好的電池和準確的時間?
    • 虛擬主機和客體計算機是否根據主機製造商的建議設定為來源時間?

    本文 如何針對大型時間位移檔步驟設定 Windows Time 服務 ,以協助保護域控制器不會接聽無效的時間範例。 如需 MaxPosPhaseCorrectionMaxNegPhaseCorrection 的詳細資訊,請參閱 Windows 時間服務

  5. 如果物件存在,請檢查並移除這些物件。

    8614 錯誤復寫隔離點是檢查是否有遺留物件,並在每個本機保留的分割區中移除它們,然後再將目的地 DC 登錄中的 [ 允許具有發散和損毀夥伴的復 寫] 設定為 1,即使您認為樹系中的所有目的地 DC 都以嚴格的復寫一致性執行也一樣。

    拿掉遺留物件已超出本文的範圍。 如需詳細資訊,請參閱下列文章:

    Repadmin 語法如下所示:

    語法 Windows Server 2008 和更新版本 (在線說明)
    c:\>repadmin /removelingeringobjects <Dest_DSA_LIST> <Source DSA GUID> <NC> [/advisory_mode] c:\>repadmin /help:removelingeringobject
  6. 評估設定目的地DC上的嚴格複寫。

    嚴格模式複寫可防止在已使用垃圾收集來建立、刪除及回收刻意刪除物件的目的地DC上重新建立遺留物件。

    嚴格複寫的登錄機碼:

    • 路徑:HKEY_LOCAL_MACHINE\system\ccs\services\ntds\parameters
    • 設定:嚴格復寫一致性 <- 不區分大小寫>
    • 類型:reg_dword
    • 值:0 |1

    Repadmin 在單一或多個 DC 上啟用和停用嚴格複寫的語法如下:

    語法 Windows Server 2008 和更新版本 (在線說明) 在單一 DC 上啟用 在樹系中的所有 DC 上啟用 在樹系中的所有 GC 上啟用
    repadmin /regkey <DSA_LIST> <{+|-}key> [value [/reg_sz]] Repadmin /help:regkey repadmin /regkey <fully qualified computer name> +strict repadmin /regkey * +strict repadmin /regkey gc: +strict
  7. 在 8614 DC 上,將 [ 允許具有發散和損毀夥伴的復 寫] 設定為 1。

    移除任何停留物件之後,請停用以時間為基礎的複寫隔離:

    登錄方法

    • 登入路徑: HKEY_LOCAL_MACHINE\system\ccs\services\ntds\parameters
    • 登錄設定:允許具有發散和損毀夥伴 <的複寫 - 不區分大小寫
    • 登錄值:0 = 不允許,1 = 允許

    Repadmin 方法

    語法 Windows Server 2008 和更新版本 (在線說明) 在單一 DC 上啟用 在樹系中的所有 DC 上啟用 在樹系中的所有 GC 上啟用
    repadmin /regkey <DSA_LIST> <{+|-}key> [value [/reg_sz]] Repadmin /help:regkey repadmin /regkey dc01.contoso.com +allowDivergent repadmin /regkey * +allowDivergent repadmin /regkey GC: +allowDivergent
  8. 如果 AD 複寫失敗存在,請加以解決。

    當目的地DC上記錄8614錯誤狀態時,先前在TSL天數中記錄的複寫錯誤會被遮罩。

    目的地 DC 回報 8614 錯誤的事實並不表示複寫錯誤位於目的地 DC 上。 相反地,復寫失敗的來源可能與網路或 DNS 名稱解析有關。 或者,下列其中一個專案可能會發生問題:

    • 認證
    • jet 資料庫
    • 拓撲
    • 來源 DC 或目的地 DC 上的復寫引擎

    檢閱過去的目錄服務事件和診斷輸出 (dcdiag、 repadmin 來源 DC、目的地 DC 以及過去替代複寫夥伴所產生的記錄) ,以識別導致目的地 DC 與來源 DC 之間無法復寫的範圍和失敗狀態。

  9. 刪除 [允許具有發散和損毀夥伴的復 寫],或在登錄中將 [ 允許具有發散和損毀夥伴的復 寫] 設定為 0。

  10. 每天監視 Active Directory 複寫。

    使用 Active Directory 監視應用程式,每天監視 Active Directory 樹系中的端對端復寫。 其中一個便宜但有效的選項是執行 repadmin /showrepl * /csv ,然後在 Excel 中剖析結果。 如需詳細資訊,請參閱 方法 2:使用命令行監視複寫

    識別 50% 和 90% 標記存留期即將發生復寫失敗的 DC。 將它們放在 watch 清單中。 在 50% 的 TSL 中,進行強式推送以解決複寫錯誤。 在 90% 時,請考慮在必要時強制降級造成復寫錯誤的 DC。 若要這樣做,請使用 dcpromo /forceremoval 命令。

    同樣地,在目的地 DC 上記錄的復寫錯誤可能是由於下列問題所造成:

    • 來源 DC
    • 目的地 DC
    • 基礎網路

    因此,在採取預防性動作之前,請先嘗試判斷錯誤的原因和所在位置。

資料收集

如果您需要 Microsoft 支援的協助,建議您依照 使用 TSS 針對 Active Directory 複寫問題收集資訊中所述的步驟來收集資訊。

參考資料

修正事件標識碼 1388、1988、2042 (的復寫遺留對象問題)