Om du tar bort Active Directory-objekt som har många länkar uppstår replikeringsfel

Den här artikeln innehåller en lösning på ett problem som uppstår när du tar bort Active Directory-objekt som innehåller många vidarebefordrade länkar.

Gäller för: Windows Server 2012 R2
Ursprungligt KB-nummer: 3149779

Sammanfattning

Den här artikeln beskriver ett problem som uppstår när du tar bort Active Directory-objekt som innehåller många vidarebefordrade länkar. Här är några vanliga exempel:

  • Gruppmedlemskap (medlemsattributet)
  • Centrala autentiseringsuppgifter för användare (attributet ms-PKI-AccountCredentials)
  • Skrivskyddade domänkontrollanter (RODC) exponerade användarlänkar (attributet mds-revealedusers)

Antalet länkar där du börjar se problem kan vara så lågt som 50 000. På ett enda objekt kan det finnas flera miljoner länkar.

Registernyckeln som beskrivs i den här artikeln bör endast tillämpas på domänkontrollanter (DCs) och LDS-servrar (Lightweight Directory Services) som har det problem som beskrivs i avsnittet "Symptom". Det här problemet uppstår troligen på Windows Server 2012, Windows Server 2012 R2 och Windows Server 2016 domänkontrollanter. Genom att följa de rekommendationer som ges här kan du minska Active Directory-replikeringsprestandan men öka tillförlitligheten för korrekt bearbetning av borttagningen av sådana stora objekt.

Symptom

När du tar bort Active Directory-objekt som innehåller många länkar framåt kan replikeringsfel uppstå. Du kan till exempel ta bort grupper med stora medlemskapsuppsättningar, eller så degradera och sedan ta bort RODC-datorkonton som har många länkar till användarkonton som har sina lösenord exponerade på RODC.

Följande villkor är de nyckelindikatorer som den här lösningen gäller för problemet:

  • Skogens funktionsnivå är Windows Server 2003 eller senare version av Windows Server, så replikering av länkvärde används.

  • Händelse 2094 (replikeringsfördröjning) inträffar flera gånger och refererar till samma borttagna objekt.

  • Händelser 1083 och 1955 (skrivkonflikt) loggas i närheten av loggningen av händelsen 2094 som refererar till samma borttagna objekt.

  • Den berörda domänkontrollanten (DC) kan också rapportera att versionsarkivet är slut (händelse-ID 623). Överbelastning av versionsarkivet sker inte alltid i det här scenariot. Andra faktorer som ökar sannolikheten för överbelastning av versionslager är en hög ändringshastighet för Active Directory-objekt, både lokala och replikerade, samt andra tidskrävande åtgärder, till exempel djupa frågor.

  • Active Directory-replikeringen misslyckas med fel 8409, felet "Ett databasfel har inträffat" eller andra händelser som anger relaterade statuskoder som anges i följande tabell:

    Hex Decimala Symbolisk Vänlig
    000020D9 8409 ERROR_DS_DATABASE_ERROR Ett databasfel har uppstått

    Om Papperskorgen i Active Directory är aktiverad kan replikeringsfelen inte inträffa under 60 till 180 dagar (livslängden för borttaget objekt) efter att objektet har tagits bort. Problemen uppstår när objektet övergår från den borttagna statusen till den återvunna statusen.

Händelseloggposter

När problemet uppstår loggas följande händelser:

Loggnamn: Katalogtjänst
Källa: Microsoft-Windows-ActiveDirectory_DomainService
Händelse-ID: 2094
Uppgiftskategori: Replikering
Nivå: Varning
Nyckelord: Klassisk
Beskrivning/ kontroller: prestandavarning: replikeringen försenades när ändringar tillämpades på följande objekt. Om det här meddelandet inträffar ofta indikerar det att replikeringen sker långsamt och att servern kan ha svårt att hålla jämna steg med ändringarna.
Objekt-DN: <objektnamn>
Objekt-GUID: <objekt-GUID>
Partitions-DN: DC=contoso,DC=com
Server: xxxx-xxxx-xxxx-xxxx-xxxxxxx._msdcs.contoso.com
Förfluten tid (sek): 11
Användaråtgärd
En vanlig orsak till den här fördröjningen är att det här objektet är särskilt stort, antingen i storleken på dess värden eller i antalet värden. Du bör först överväga om programmet kan ändras för att minska mängden data som lagras på objektet eller antalet värden. Om det här är en stor grupp eller distributionslista kan du överväga att höja skogens funktionsnivå till Windows Server 2003 eller senare, eftersom detta gör att replikeringen kan fungera effektivare. Du bör utvärdera om serverplattformen ger tillräcklig prestanda när det gäller minne och bearbetningskraft. Slutligen kanske du vill överväga att justera Active Directory Domain Services-databasen genom att flytta databasen och loggarna till separata diskpartitioner.
Om du vill ändra varningsgränsen inkluderas registernyckeln nedan. Värdet noll inaktiverar kontrollen.
Ytterligare data
Varningsgräns (sek): 10
Begränsa registernyckel: System\CurrentControlSet\Services\NTDS\Parameters\Replicator maximum wait for update object (seks)
Loggnamn: Katalogtjänst
Källa: Microsoft-Windows-ActiveDirectory_DomainService
Händelse-ID: 1083
Uppgiftskategori: Replikering
Nivå: Varning
Nyckelord: Klassisk
Beskrivning:
Active Directory Domain Services kunde inte uppdatera följande objekt med ändringar som togs emot från katalogtjänsten på följande nätverksadress eftersom Active Directory Domain Services var upptagen med att bearbeta information.
Objekt: <objektnamn>
Nätverksadress: xxxxx-xxxx-xxxx-xxxx-xxxxxxx._msdcs.contoso.com
Den här åtgärden kommer att försökas igen senare.
Loggnamn: Katalogtjänst
Källa: Microsoft-Windows-ActiveDirectory_DomainService
Händelse-ID: 1955
Uppgiftskategori: Replikering
Nivå: Information
Nyckelord: Klassisk
Användare: ANONYM INLOGGNING
Beskrivning: Active Directory Domain Services påträffade en skrivkonflikt när replikerade ändringar tillämpades på följande objekt.
Objekt: <objektnamn>
Tid i sekunder: 48
Händelseloggposter som föregår den här posten anger om uppdateringen accepterades eller inte.
En skrivkonflikt kan orsakas av samtidiga ändringar i samma objekt eller samtidiga ändringar av andra objekt som har attribut som refererar till det här objektet. Detta inträffar ofta när objektet representerar en stor grupp med många medlemmar och skogens funktionsnivå är inställd på Windows 2000. Den här konflikten utlöste ytterligare återförsök av uppdateringen. Om systemet verkar långsamt kan det bero på att replikeringen av dessa ändringar sker.
Användaråtgärd
Använd mindre grupper för den här åtgärden eller höj skogens funktionsnivå till Windows Server 2003.

Mer information

När du tar bort ett Active Directory-objekt som har ett exceptionellt stort antal framåt- och bakåtlänkar tas som standard 10 000 länkar bort åt gången. Under den här tiden, om andra trådar uppdaterar målobjekten för dessa länkar, pausas länkborttagningstransaktionen tills objekten är tillgängliga igen. Den här avstängningen kan göra att hela borttagningstransaktionen tar lång tid att slutföra. Under den här tiden hålls andra replikeringsuppgifter kvar av den här långvariga aktiviteten. Du kanske till exempel märker att lösenord och uppdateringar av gruppmedlemskap inte fortsätter i hela skogen.

Medan den här uppdateringen väntar kan administratörer se skrivkonflikter och transaktionsfelhändelser. När ytterligare objekt bearbetas genom replikering allokeras dessutom allt fler versionslager eftersom den väntande stora transaktionen inte släpper det allokerade versionsarkivet förrän borttagningstransaktionen har slutförts. Detta kan orsaka versionslagringsfel och replikeringsvarningar.

Obs!

  • Skräpinsamling är inte relaterat till bearbetning av länkborttagningar för gruppmedlemskap.
  • Att minska TSL är inte en giltig metod för att påskynda länkborttagningar.
  • Det äldre värdet för batchstorleken för länkprocessen är 1 000 i versioner före Windows Server 2008 R2. I senare versioner ökas batchstorleken till 10 000 för att förbättra prestanda för borttagning i skogar där papperskorgen är aktiverad.
  • Kontrollera värdena för parametern Links process batch size (Batchstorlek ). Om det inte är ett standardvärde anger du tillbaka värdet till standardvärdet eller ett ännu mindre värde, till exempel 1 000 eller 100.

Mindre värden minskar användningen av versionsarkivet genom att ta bort ett mindre antal objekt per borttagning, vilket minskar den totala tiden för att utföra en enda borttagningstransaktion. Detta har den positiva sidoeffekten av att minska versionslagringen och tidsfönstret för skrivkonflikter medan du ökar den tid som krävs för att korrekt återspegla gruppmedlemskapet i katalogen.

Active Directory-tjänster söker efter följande registernyckel.

För AD DS:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\Links process batch size

För AD LDS:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<adam instance>\Parameters\Links process batch size
Typ: DWORD
Minsta värde: 100
Maxvärde: 10000

Det här värdet åsidosätter standardvärdet 10 000 som antalet atomlänkar som ska bearbetas samtidigt. Du behöver inte starta om NTDS- eller LDS-instanstjänsten, eller starta om datorn för att göra inställningen effektiv.

Efter varje atomisk åtgärd släpps motsvarande versionsarkiv. Versionsarkivet hämtas endast under nästa atomära åtgärd som fortsätter att bearbeta samma objekt. Du kanske har andra tankar om att tacka nej till länken batchstorlek med en stor grad. Du kan kombinera den med en ökning av ESE-versionsarkivet. Om du kanske av en anledning har ökat versionsarkivet kan du välja att öka versionsarkivet lite mer eller inte minska batchstorleksvärdet för länkprocessen så mycket.

Mer information finns i följande artiklar:

Lösning

Du kan undvika det här problemet genom att ange värdet för Batchstorleken för länkprocessen som är lägre än 10 000. Detta minskar risken för att en objektåtkomstkollision inträffar. På så sätt gör du replikeringsprocessen för borttagning av stora objekt mer tillförlitlig. Det tar nu längre tid att slutföra hela transaktionen. Detta hjälper dig också att undvika uttömning av versionslager.

Datainsamling

Om du behöver hjälp från Microsofts support rekommenderar vi att du samlar in informationen genom att följa stegen i Samla in information med hjälp av TSS för Active Directory-replikeringsproblem.

Referenser

Mer information finns i följande artiklar: