ID evento DFSR 2213 in Windows Server 2008 R2
Questo articolo descrive un problema che attiva l'ID evento 2213 in Windows 2008 o Windows 2012.
Si applica a: Windows Server 2008 R2 Service Pack 1
Numero KB originale: 2846759
Riepilogo
Microsoft ha introdotto nuove funzionalità per il servizio Replica DFS (DFSR) per Windows Server 2008 R2 tramite hotfix 2663685. Dopo aver installato l'hotfix 2663685 o una versione successiva di Dfsrs.exe in Windows Server 2008 R2, il servizio DFSR non esegue più il ripristino automatico del database ESE (Extensible Storage Engine) dopo l'arresto dirty del database. Al contrario, quando viene attivato il nuovo comportamento dfsr, l'ID evento 2213 viene registrato nel log DFSR. Un amministratore DFSR deve riprendere manualmente la replica dopo il rilevamento di un arresto dirty da parte di DFSR.
Windows Server 2012 presenta questo comportamento per impostazione predefinita.
Il servizio DFSR gestisce un database ESE per volume nei volumi che ospitano una cartella replicata. DFSR usa questo database per archiviare i metadati relativi a ogni file e cartella nella cartella replicata. L'integrità del database deve essere mantenuta per assicurarsi che il servizio continui a funzionare correttamente.
Quando DFSR riceve una notifica che indica che il servizio deve essere arrestato, inizia a eseguire il commit di tutte le modifiche in sospeso nel database ESE. L'arresto dirty in DFSR si verifica quando il servizio DFSR non può eseguire il commit di tutte le modifiche in sospeso nel database DSFR ESE prima dell'arresto del servizio DFSR. Durante l'avvio, il servizio DFSR controlla l'integrità del database.
Il ripristino dell'arresto dirty può causare backlog di grandi dimensioni e questi, a loro volta, possono causare conflitti di replica. In alcuni casi, prima del rilascio della correzione nell'hotfix 2780453 , il file vincente potrebbe non essere la versione eseguita dall'utente finale. L'aggiornamento per arrestare la replica durante l'arresto dirty è stato progettato come una protezione che consente agli amministratori di eseguire il backup dei dati per acquisire i delta dopo l'esecuzione dell'ultimo backup prima della ripresa della replica.
Dopo aver installato l'hotfix 2780453, non è più necessario sospendere la replica durante un arresto dirty. La correzione da hotfix 2780453 è inclusa in tutti i supporti predefiniti di Windows 2012.
Procedure consigliate
Procedure consigliate per il ripristino automatico in base al ruolo del server, al sistema operativo e al livello di patch:
Ruolo | Windows Server 2008 R2 | Windows Server 2008 R2 con KB 2780453 installato | Windows Server 2012 |
---|---|---|---|
DC | Attivato | Attivato | Attivato |
Nodo cluster | Attivato | Attivato | Attivato |
Server DFSR scrivibile | Disattivato | Attivato | Attivato |
Server DFSR di sola lettura | Attivato | Attivato | Attivato |
Disabilitare la funzionalità Arresta replica in Ripristino automatico
Per fare in modo che DFSR esegua il ripristino automatico quando viene rilevato un arresto del database dirty, modificare il valore del Registro di sistema seguente dopo l'installazione dell'hotfix 2780453 in Windows Server 2008 R2. È possibile distribuire questa modifica in tutte le versioni di Windows Server 2012. Se il valore non esiste, è necessario crearlo.
- Chiave:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\DFSR\Parameters
- Valore: StopReplicationOnAutoRecovery
- Tipo: Dword
- Dati: 0
Riprendere la replica dopo la registrazione dell'evento 2213
Dopo la registrazione dell'evento 2213, un amministratore deve eseguire un comando WMIC per riprendere la replica. Le specifiche del comando vengono fornite nel testo dell'ID evento 2213.
Passaggio 1: Procedura di ripristino per l'ID evento 2213 connesso al server DFSR
Eseguire il backup dei file in tutte le cartelle replicate nel volume. In caso contrario, potrebbe verificarsi una perdita di dati a causa di una risoluzione imprevista dei conflitti durante il ripristino delle cartelle replicate.
Per riprendere la replica per questo volume, usare il
ResumeReplication
metodo WMI dellaDfsrVolumeConfig
classe . Ad esempio, da un prompt dei comandi con privilegi elevati eseguire il comando seguente:
wmic /namespace:\\root\microsoftdfs path dfsrVolumeConfig where volumeGuid="E18D8280-2379-11E2-A5A0-806E6F6E6963" call ResumeReplication
Passaggio 2: Copiare il comando WMIC dal passaggio 2 nei passaggi di ripristino dell'ID evento 2213 e incollarlo in un prompt dei comandi con privilegi elevati
Quando il comando viene eseguito correttamente, restituisce i risultati seguenti:
wmic /namespace:\\root\microsoftdfs pathdfsrVolumeConfig where volumeGuid="F1CF316E-6A40-11E2-A826-00155D41C919" call ResumeReplication
Executing(file://ww2008r2dc1/root/microsoftdfs:DfsrVolumeConfig.VolumeGuid=%22F1CF316E-6A40-11E2-A826-00155D41C919%22)-%3EResumeReplication()">\WW2008R2DC1\root\microsoftdfs:DfsrVolumeConfig.VolumeGuid="F1CF316E-6A40-11E2-A826-00155D41C919")->ResumeReplication()
L'esecuzione del metodo ha avuto esito positivo. Parametri out:istanza di __PARAMETERS{ ReturnValue = 0;};
Per gli utenti di PowerShell, è necessario aggiungere virgolette singole al comando WMIC per eseguirlo da PowerShell, come indicato di seguito:
wmic /namespace:\\root\microsoftdfs pathdfsrVolumeConfig where 'volumeGuid="F1CF316E-6A40-11E2-A826-00155D41C919"' call ResumeReplication
Passaggio 3: Verificare se gli ID evento 2212 e 2214 sono stati registrati
Controllare se gli ID evento 2212 e 2214 sono stati registrati nel server in cui è stato eseguito il comando di replica di ripresa. Nota aggiuntiva sul ripristino se è necessario reinizializzare una cartella replicata (o eseguire la sincronizzazione iniziale) dopo un arresto dirty, seguire questa procedura:
- Disabilitare la cartella replicata.
- Abilitare la replica usando la procedura descritta nei passaggi di ripristino precedenti per l'ID evento 2213 connesso alla sezione del server DFSR .
- Abilitare la cartella replicata.
Se si disabilita e si abilita la cartella replicata prima di eseguire il comando WMIC, la sincronizzazione iniziale non si verifica perché gestione volumi è offline.
Passaggi per ridurre le probabilità di un arresto sporco
In Windows, un servizio ha 30 secondi per essere arrestato dopo aver ricevuto una notifica di arresto. Dopo 30 secondi, Service Control Manager forza l'arresto del servizio. Per quanto riguarda il servizio DFSR, un server hub occupato potrebbe richiedere più di 30 secondi per eseguire il commit delle modifiche in sospeso nel database. Se il servizio DFSR non esegue il commit di tutte le modifiche nei 30 secondi assegnati da Gestione controllo servizi, il servizio viene chiuso forzatamente e viene attivato un ripristino di arresto dirty.
Anche le interruzioni dell'alimentazione o qualsiasi altro riavvio rigido di un server DFSR possono attivare un ripristino di arresto dirty. Per ridurre le probabilità di un arresto dirty, assicurarsi che i server DFSR siano connessi a un ups (Uninterruptible Power Supply) per consentire l'arresto normale.
Estendere i tempi di arresto del servizio
Nei server DFSR che richiedono più di 30 secondi per l'arresto, è possibile usare il valore WaitToKillServiceTimeout per estendere il periodo di tempo consentito per l'arresto di tutti i servizi.
Un server DSFR che richiede più tempo per l'arresto registra in genere gli eventi 2212 e 2214 nella maggior parte dei riavvii o riavvii del servizio. In alternativa, se il ripristino automatico da un arresto dirty è abilitato, l'evento 2213 viene connesso a ogni riavvio o riavvio del server del servizio DFSR.
- Percorso:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
- Valore: WaitToKillServiceTimeout
- Tipo: Stringa
- Dati: 300000
Questo valore è espresso in millisecondi. In questo esempio vengono visualizzati cinque minuti di tempo di arresto. Il valore può essere aumentato o ridotto in base alle esigenze. Questo valore influisce su tutti i servizi, non solo su DFSR. È consigliabile impostare questo valore sul valore più basso che offre ancora a DFSR il tempo sufficiente per l'arresto pulito. Usare il processo seguente per determinare per quanto tempo il servizio DFSR deve essere arrestato:
Aggiungere il valore del Registro di sistema WaitToKillServiceTimeout con un'impostazione di 300000 millisecondi (5 minuti). Riavviare il server per abilitare l'impostazione.
Importante
Vedere la nota sull'installazione di 2549760 nella sezione Note seguenti su WaitToKillServiceTimeOut .
Monitorare i riavvii successivi del server per gli eventi DFSR 1006 (DFSR si arresta) e 1008 (DFSR arrestato). Si noti il tempo trascorso tra gli eventi 1006 e 1008.
Modificare il tempo consentito per l'arresto modificando il valore WaitToKillServiceTimeout in modo che rifletta più da vicino l'ora effettiva di arresto pulito di DSFR.
Note su WaitToKillServiceTimeOut
Il riavvio del server o il riavvio di DFSR più volte in una riga non fornirà un esempio adeguato del tempo necessario per l'arresto di DFSR. Per accumulare transazioni di database in sospeso, è necessario consentire l'esecuzione del tempo di esecuzione del servizio.
L'impostazione WaitToKillServiceTimeout ha un valore massimo di un'ora. Se l'impostazione supera un'ora, SCM ripristina l'impostazione predefinita di 30 secondi per l'arresto del servizio.
Per assicurarsi che SCM funzioni correttamente per quanto riguarda l'impostazione WaitToKillServiceTimeout, assicurarsi che l'hotfix 2549760 sia installato in Windows Server 2008 R2.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per