Active directory 複寫事件 IDs 2108 和1084會在 Active Directory 網域服務的輸入複寫期間發生

本文提供一項問題的解決方案,讓您在 Active Directory 網域服務 (AD DS) 發生入站複寫時,取得事件 IDs 2108 和1084。

原始產品版本:   Windows Server 2016,Windows Server 2012 R2
原始 KB 編號:   837932

徵狀

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

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

物件: CN =<cn path>

物件 GUID: <objectguid>

來源目錄服務: NTDSA._msdcs。<forst root DNS domain name>

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

在下一個排程複寫時會再次嘗試此作業。

使用者動作:

如果此狀況似乎與低系統資源相關,請重新開機本機電腦 (例如,低實體或虛擬記憶體) 。

其他資料:

錯誤值: <error code><error string>

注意

  • ,然後在 [錯誤值] 文字中, <error code> <error string> 代表顯示在記錄專案中的實際值。
  • 自 Windows 2000 Server 以來已記錄事件1804。

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

事件識別碼2108:此事件包含先前已記錄之1084事件的修復程式。 此訊息指出此複寫目的地上的 Active Directory 網域服務資料庫一致性的特定問題。 將複製的變更套用至下列物件時,發生資料庫錯誤。 資料庫包含未預期的內容,以防進行變更。

注意

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

原因

當網域控制站無法寫入 Active Directory 資料庫的本機複本的事務性變更時,就會發生這些事件。

解決方案

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

  1. 請確定主控 Active Directory 資料庫的磁片上有足夠的可用磁碟空間,然後再試一次。 請遵循下列步驟來釋放額外的磁碟空間:

    1. 將不相關的檔案移至其他磁片區。

    2. 執行系統狀態備份。 此程式可減少交易記錄檔的大小。 如需詳細資訊,請參閱 如何使用備份功能,在 Windows Server 2003 中備份及還原資料

    3. 執行 Active Directory 的離線磁碟重組。 如需詳細資訊,請參閱 how to 執行 Active Directory 資料庫的離線整理

  2. 請確定主控 ntds.dit 檔案和交易記錄檔的實體磁片磁碟機未開啟 NTFS 檔案系統壓縮。 若要確認這一點,請以滑鼠右鍵按一下 [我的電腦] 中的磁片磁碟機號,然後確定未選取 [ 壓縮磁片磁碟機以節約磁碟空間 ] 核取方塊。

  3. 請確定主控 ntds.dit 檔的實體磁片磁碟機和交易記錄檔已特別從遠端和本機防毒程式中排除。 如需詳細資訊,請參閱防毒軟體檔。

  4. 若目的地的網域控制站包含通用類別目錄,且其中一個唯讀分割區發生錯誤,請使用下列其中一種方法來協助解決問題:

    • 方法1:使用 Repadmin.exe 工具的 rehost 選項來 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. 在 [ Default-First-Site-Name \ 伺服器] \ domain_controller_name \ [NTDS 設定] 子樹中尋找。
      3. 以滑鼠右鍵按一下 [ NTDS 設定],然後按一下 [ 屬性]。
      4. 按一下以清除 [ 通用類別目錄 ] 核取方塊,然後按一下 [確定]
    • 方法 3

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

  5. 使用協力廠商公用程式(如 FileMon 實用程式)來判斷程式或使用者是否正在存取 Active Directory 資料庫、交易記錄檔或 Edp .tmp 檔案。 如果檔案存取活動存在,請停止負責該活動的服務。 如需 FileMon 公用程式的詳細資訊,請參閱 FileMon For Windows v. 7.04

  6. 判斷問題是否與目的地網域控制站上之 Active Directory 物件的父代相關。 若要執行此動作,請依照下列步驟執行:

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

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

    3. 強制安全性描述項產生器在同時存在於來源和目的地網域控制站上的資料庫中重新建立物件容器 ancestry。 若要執行此動作,請依照下列步驟執行:

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

      2. 按一下 [ 開始],按一下 [ 執行],輸入 Ldp,然後按一下 [確定]

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

        注意

        您將透過埠389進行 Active Directory 的連線。

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

      5. 在 [ 流覽] 功能表上,按一下 [ 修改]。 [ DN ] 文字方塊保留空白。 在 [ 屬性 ] 文字方塊中,輸入 FixUpInheritance。 在 [] 文字方塊中按一下 [是]

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

      7. 按一下 [ 輸入 ] 以填入 專案清單 區域。

        注意

        專案清單 區域中, [Add] fixupinheritance: yes 隨即出現。

      8. 按一下 [執行]

        注意

        右窗格現在會顯示 已修改 的狀態,安全性描述項產生器便會啟動。 安全性描述器傳播程式的執行時間取決於 Active Directory 資料庫的大小。 當 NTDS 效能物件中的 DS 安全性傳播事件 計數器傳回零時,就會完成此程式。

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

  7. 在來源網域控制站上,于 repadmin /showmeta distinguished_name_path 命令提示字元處輸入,然後查看事件1084中所參照之辨別名稱路徑的物件中繼資料。 在目的地網域控制站上重複此步驟。 尋找不一致的值,包括(但不限於)下列各項:

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

    不正確的值可能會指出主控物件的資料庫頁面發生問題。

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

    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 「設定目錄服務還原模式密碼」命令。

    如需目錄服務還原模式的詳細資訊,請參閱 啟動以 Windows 或 SBS 為基礎的網域控制站時,出現「目錄服務無法啟動」的錯誤訊息

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

  9. 重新開機來源網域控制站,然後按 F8 啟動目錄服務還原模式。 在命令提示字元中輸入 ntdsutil files integrity ,然後按 enter 鍵。

    注意

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

    • 如果 Ntdsutil 工具報告資料庫已損毀,且您在來源網域控制站上有命名內容的複本,請強制進行來源網域控制站的降級,然後在驗證主控 Active Directory 資料庫及交易記錄檔的物理磁片磁碟機完整性後,重新升級來源網域控制站。

    • 如果資料庫損毀,且來源網域控制站上沒有任何命名內容的複本,請還原最新的系統狀態。 使用 NTDSutil.exe 工具來確認資料庫的完整性。 若仍收到損毀訊息,請還原舊的備份,直到您可以確認網域控制站的完整性。

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

      ntdsutil files recover
      

      使用 NTDSutil.exe 工具重新確認資料庫的完整性。 如果資料庫通過完整性檢查,請執行磁碟分割的離線磁碟重組。 如需詳細資訊,請參閱 how to 執行 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 檔案壓縮命令,以執行 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 檔案修復或命令)上執行損損修復 Esentutl /p

    協力廠商資訊免責聲明

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