Active Directory 複寫事件標識碼 2108 和 1084 會在 Active Directory 網域服務 的輸入復寫期間發生

本文提供在發生 Active Directory 網域服務 (AD DS) 的輸入複寫時,您會取得事件標識碼 2108 和 1084 的問題解決方案。

適用於:Windows Server 2016、Windows Server 2012 R2
原始 KB 編號: 837932

徵狀

發生 Active Directory 網域服務 (AD DS) 的輸入複寫時,執行 Microsoft Windows Server 2003 Service Pack 1 的目的地域控制器 (SP1) 透過 Windows Server 2016 會記錄目錄服務記錄檔中的下列事件:

事件標識碼 1084:內部事件:Active Directory 網域服務 無法使用從下列來源目錄服務收到的變更來更新下列物件。 這是因為在目錄服務上將變更套用至 Active Directory 網域服務 時發生錯誤。

物件:CN=<cn 路徑>

物件 GUID: <objectguid>

來源目錄服務:NTDSA._msdcs。<forst root DNS 功能變數名稱>

除非修正此更新問題,否則會封鎖目錄服務與來源目錄服務的同步處理。

下一次排程的複寫會再次嘗試此作業。

使用者動作:

如果此條件似乎與低系統資源相關,請重新啟動本機計算機 (例如,低實體或虛擬記憶體) 。

其他資料:

錯誤值: <錯誤碼><錯誤字串>

注意事項

  • 在 [錯誤值] 文字中, <錯誤碼> 和 <錯誤字串> 代表記錄項目中顯示的實際值。
  • 自 Windows 2000 Server 起已記錄事件 1804。

執行 Windows Server 2003 SP1 的目的地域控制器也會在目錄服務記錄檔中記錄下列事件:

事件標識碼 2108:此事件包含先前記錄之 1084 事件的 REPAIR PROCEDURES。 此訊息指出此復寫目的地上 Active Directory 網域服務 資料庫一致性的特定問題。 將復寫的變更套用至下列物件時發生資料庫錯誤。 資料庫有非預期的內容,因此無法進行變更。

注意事項

  • 安裝SP1之後,Windows Server 2003 上會記錄事件 2108。
  • 這是事件 1084 的合作夥伴活動。

原因

當域控制器無法將交易式變更寫入 Active Directory 資料庫的本地副本時,就會發生這些事件。

解決方案

若要解決此問題,請遵循下列步驟。 在進行變更的每個步驟之後重試複寫作業。

  1. 請確定裝載 Active Directory 資料庫的磁碟區有足夠的可用磁碟空間,然後重試作業。 請遵循下列步驟來釋放額外的磁碟空間:

    1. 將不相關的檔案移至另一個磁碟區。

    2. 執行系統狀態備份。 此程式會減少事務歷史記錄檔的大小。 如需詳細資訊,請 參閱如何使用備份功能來備份和還原 Windows Server 2003 中的數據

    3. 執行 Active Directory 的離線重組。 如需詳細資訊,請 參閱如何執行 Active Directory 資料庫的離線重組

  2. 請確定裝載 Ntds.dit 檔案和事務歷史記錄檔的實體磁碟驅動器未開啟 NTFS 檔系統壓縮。 若要確認這一點,請以滑鼠右鍵按兩下 [我的電腦] 中的驅動器號,然後確定未選取 [ 壓縮磁碟驅動器以節省磁碟空間 ] 複選框。

  3. 請確定裝載 Ntds.dit 檔案的實體磁碟驅動器和事務歷史記錄檔已明確排除在遠端和本機防病毒程式之外。 如需詳細資訊,請參閱您的防病毒軟體檔。

  4. 如果目的地域控制器包含全域編錄,而且錯誤發生在其中一個只讀數據分割中,請使用下列其中一種方法來協助解決問題:

    • 方法 1:使用 Repadmin.exe 工具的 rehost 選項來重新裝載受影響的數據分割。

      Repadmin.exe 工具會安裝在具有域控制器角色的計算機上,並與成員工作站和伺服器上的 RSAT 工具一起安裝。 若要這樣做,請在命令提示字元中輸入下列命令,其中 domain_controller 是目的地域控制器的名稱, 而 good_source_domain_controller_name 是另一個域控制器的名稱:

      repadmin /rehost domain_controller naming_context good_source_domain_controller_name
      
    • 方法 2:設定域控制器,使其不再是全域編錄伺服器。 依照下列步驟執行:

      1. 按兩下 [開始],指向 [ 系統管理工具],然後按兩下[ Active Directory 月臺和服務]
      2. 找出 [NTDS 設定] 子樹domain_controller_name\ Default-First-Site-Name\ 伺服器\ 。
      3. 以滑鼠右鍵按兩下 [NTDS 設定],然後按下 [ 屬性]
      4. 按兩下以清除 [ 全域編錄] 複選框,然後按兩下 [ 確定]
    • 方法 3

      如果錯誤發生在程式分割區中,請使用 Ntdsutil.exe 工具來變更裝載程式分割區的複本。

  5. 使用第三方公用程式,例如 FileMon 公用程式,來判斷程式或使用者是否正在存取 Active Directory 資料庫、事務歷史記錄檔或Edp.tmp檔。 如果檔案存取活動存在,請停止負責活動的服務。 如需 FileMon 公用程式的詳細資訊,請參閱 適用於 Windows v7.04 的 FileMon

  6. 判斷問題是否與目的地域控制器上 Active Directory 物件的父系相關。 如果要執行這項操作,請依照下列步驟執行:

    1. 在來源域控制器上,暫時將事件 1084 中參考的物件移至組織單位 (OU) 容器。 OU 必須與目前的容器無關。 例如,將物件移至網域根目錄外的新容器。

    2. 如果在移動物件之後復寫完成,請將物件移回其原始容器。

    3. 強制安全描述器重建存在於來源和目的地域控制器之資料庫中的物件容器。 如果要執行這項操作,請依照下列步驟執行:

      1. 請確定已安裝 Windows Server 2003 支援工具。 支援工具可在 Windows Server 2003 CD-ROM 的 Support\Tools 資料夾中取得。 按兩下 Suptools.msi 檔案以安裝工具。

      2. 依序按兩下 [ 開始]、[ 執行] 和 [ 輸入],然後按兩下 [ 確定]

      3. 按兩下 [ 連線],按兩下 [ 連線],然後輸入您要連線的伺服器名稱。

        注意事項

        您將透過埠 389 連線至 Active Directory。

      4. 按兩下 [連線],按兩下 [ 系結],然後輸入您的系統管理使用者名稱、密碼和網域。 (您必須使用網域系統管理員或企業系統管理員認證。) 按兩下 [確定]

      5. 在 [ 瀏覽] 功能表上,按兩下 [ 修改]。 將 [DN] 文字框保留空白。 在 [ 屬性] 文本框中,輸入 FixUpInheritance。 按兩下 [值] 文字框中的 []。

      6. 在 [ 作業] 區域中,按兩下 [ 新增]

      7. 按兩下 Enter 以填入 [ 項目清單 ] 區域。

        注意事項

        在 [ 項目清單] 區域中, [新增]fixupinheritance:yes 隨即出現。

      8. 按一下 [執行]

        注意事項

        右窗格現在會顯示 [ 已修改 ] 狀態,並啟動安全描述符傳播工具。 安全描述項傳播器的運行時間取決於 Active Directory 資料庫的大小。 當 NTDS Performance 物件中的 DS 安全性傳播事件 計數器回到零時,程式就會完成。

      9. 按兩下 [關閉],按兩下 [ 連線],然後按兩下 [ 結束]

  7. 在來源域控制器上,於命令提示字元輸入 repadmin /showmeta distinguished_name_path ,然後檢視事件 1084 中所參考之辨別名稱路徑的物件元數據。 在目的地域控制器上重複此步驟。 尋找包含但不限於下列專案的不一致值:

    • 出現在物件上的屬性名稱和數目不正確
    • 不正確的原始時間或日期戳記
    • USN) (不正確的本機更新序號

    不正確的值可能表示裝載物件的資料庫頁面發生問題。

    若要在辨別名稱路徑參考即時物件時使用 Repadmin.exe 工具,請在命令提示字元中輸入下列命令:

    repadmin /showmeta remote_domain_controller_name distinguished_name_path_of_reference _object
    

    如果對象位於已刪除的物件容器中,或您無法使用 Repadmin.exe 工具來尋找物件,請使用物件的 GUID 參考來尋找物件。 此 GUID 會在事件 1084 中參考。 若要這樣做,請在命令提示字元中輸入下列命令:

    repadmin /showmeta remote_domain_controller_name "GUID_for_the_object that_is_referenced_in_Event_ID_1084"
    

    例如,如果事件 1084 和事件 2108 參考 GUID 為 b49cd496-98a2-4500-bb08-58550c2f79ac 的物件,請輸入 repadmin /showmeta "<GUID=b49cd496-98a2-4500-bb08-58550c2f79ac>"

    注意事項

    需要引號和方括號。

  8. 安裝作業系統的最新 Service Pack,以取得最新的 Ntdsutil.exe 工具。 使用 Ntdsutil.exe 工具,在來源域控制器上執行 Active Directory 資料庫的完整性檢查。

    在以目錄服務還原模式啟動計算機之前,請先取得離線系統管理員帳戶的密碼。 如果您不知道系統管理員帳戶密碼,請先重設目錄服務還原模式密碼,再開始使用此模式。 在執行 Windows 2000 Service Pack 2 (SP2) 和更新版本的域控制器上,使用 Setpwd.exe 命令。 Setpwd.exe 命令位於 %Systemroot%\System32 資料夾中。 在以 Windows Server 2003 為基礎的域控制器上,使用 Ntdsutil Set Directory Services 還原模式密碼命令。

    如需目錄服務還原模式的詳細資訊,請參閱 啟動 Windows 或 SBS 型域控制器時的「目錄服務無法啟動」錯誤訊息

    如需如何在 Windows Server 2003 中變更密碼的詳細資訊,請參閱 啟動 Windows 或 SBS 型域控制器時的「目錄服務無法啟動」錯誤訊息

  9. 重新啟動來源域控制器,然後按 F8 以啟動目錄服務還原模式。 在命令提示字元中輸入 ntdsutil files integrity,然後按下 Enter。

    注意事項

    此命令會確認資料庫的完整性。

    • 如果 Ntdsutil 工具報告資料庫已損毀,而且您在來源域控制器上有命名內容的複本,請強制降級來源域控制器,然後在確認裝載 Active Directory 資料庫和事務歷史記錄檔的驅動程式、韌體和實體磁碟驅動器的完整性之後重新升級。

    • 如果資料庫損毀,而且來源域控制器上沒有命名內容的複本存在,請還原最新的系統狀態。 使用 NTDSutil.exe 工具再次確認資料庫的完整性。 如果您仍然收到損毀訊息,請還原較舊的備份,直到您可以確認域控制器的完整性為止。

    • 如果資料庫仍然損毀,請還原最新的系統狀態備份,然後在命令提示字元中輸入:

      ntdsutil files recover
      

      再次使用 NTDSutil.exe 工具來確認資料庫的完整性。 如果資料庫通過完整性檢查,請執行磁碟分區的脫機重組。 如需詳細資訊,請 參閱如何執行 Active Directory 資料庫的離線重組

      若要執行資料庫的完整性檢查,請在命令提示字元中輸入下列命令,然後按 Enter,其中 database_name 是 Active Directory 資料庫的名稱:

      esentutl.exe /g database_name
      

      最後,使用 [正常啟動 Windows] 選項重新啟動計算機,然後從來源域控制器重試複寫至受影響的目的地域控制器。 如果資料庫未通過完整性檢查,就必須停止域控制器。 您可以使用 Active Directory 移轉工具 (ADMT) 來移轉物件。 您也可以使用 Ldifde.exe 和 Csvde.exe 工具來匯出您將匯入至新目的地域控制器的物件。

      如需如何使用 Ldifde.exe 和 Csvde.exe 工具的詳細資訊,請參閱 大容量導入和導出至 Active Directory 的逐步指南

  10. 如果這些步驟失敗,且復寫錯誤持續發生,請將域控制器降級、確認實體磁碟驅動器的完整性,以及裝載 Ntds.dit 檔案和磁碟子系統的磁碟區,然後再次升級域控制器。 使用相同的計算機名稱。

  11. 使用 ntdsutil files compact 命令來執行 Active Directory 資料庫的離線重組。 如需詳細資訊,請 參閱執行 Active Directory 資料庫 的離線重組

  12. 在命令提示字元中,輸入下列命令,然後按 Enter 鍵:

    ntdsutil "semantic database analysis" "go"
    

    注意事項

    此範例中的引號是使用單一命令行自變數執行語意資料庫分析命令的必要專案。

    如果回報錯誤, type ntdsutil go fixup,然後按 Enter。

    注意事項

    語意資料庫命令不會在Active Directory 資料庫上執行遺失修復,例如 Windows Server 2003 Service Pack 1 Ntdsutil File Repair 或 Esentutl /p 命令。

    協力廠商資訊免責聲明

    本文提及的協力廠商產品是由與 Microsoft 無關的獨立廠商所製造。 Microsoft 不以默示或其他方式,提供與這些產品的效能或可靠性有關的擔保。

資料收集

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