Событие 2213 DFSR: Восстановление репликации на сервере (WMI ResumeReplication)
Механика работы базы данных DFSR и причины сбоя
Событие Event ID 2213 в журнале DFS Replication означает, что служба DFSR обнаружила неожиданное отключение базы данных (Dirty Shutdown) для определенного тома. База данных DFSR (хранится в System Volume Information\DFSR) использует движок ESE (Extensible Storage Engine / Jet DB). Если сервер теряет питание, падает в BSOD или служба DFSR принудительно завершается, транзакции в базу не успевают записаться. Для предотвращения повреждения данных и конфликтов (USN Journal mismatch), DFSR автоматически приостанавливает репликацию для этого тома. Бизнес-риски: рассинхронизация папок SYSVOL (политики GPO перестают применяться на клиентах) или критическая остановка обмена файлами между филиалами.
Симптоматика остановки репликации
| Симптом | Event ID | Критичность |
|---|---|---|
| Служба ожидает команды восстановления | 2213 | Средняя (требует ручного вмешательства WMI). |
| Окончание восстановления базы данных | 2212 / 2214 | Информационные (база успешно собрана). |
| Критическое повреждение базы DFSR | 2104 / 2004 | Высокая (требуется пересоздание БД, Initial Sync). |
Алгоритм возобновления репликации (ResumeReplication)
Сценарий 1: Штатное возобновление через WMI (Командная строка)
В тексте самого события 2213 в Event Viewer уже содержится готовая команда для возобновления. Вам нужно скопировать её и выполнить в командной строке с правами администратора.
Пример команды из события (GUID будет вашим)
wmic /namespace:\\root\microsoftdfs path dfsrVolumeConfig where volumeGuid="100B1A2C-D234-456E-890F-1234567890AB" call ResumeReplicationУспешный вывод покажет ReturnValue = 0. После этого в журнале появятся события 2212 и 2214, подтверждающие успешное монтирование БД и старт репликации.
Сценарий 2: Выполнение через PowerShell (Альтернатива)
Если WMIC недоступен или выдает ошибку парсинга, используйте современные командлеты PowerShell.
Получение объекта и вызов метода ResumeReplication
$DFSR = Get-WmiObject -Namespace "root\microsoftdfs" -Class DfsrVolumeConfig -Filter "VolumeGuid='ВАШ-GUID-ИЗ-СОБЫТИЯ'"
$DFSR.ResumeReplication()Сценарий 3: Если база повреждена (Авторитетное восстановление)
Если после команды появляются ошибки коррупции базы (Event 2104), потребуется очистка БД. Для папок обмена файлами придется удалить папку DFSR из System Volume Information. Для SYSVOL (на Контроллере домена) потребуется процедура неавторитетного (D4) или авторитетного (D2) восстановления SYSVOL через ADSI Edit.
Типовые ошибки администраторов
- Игнорирование события 2213: Репликация сама НЕ восстановится. Без выполнения команды сервер будет находиться в подвешенном состоянии месяцами, накапливая отставание (backlog).
- Перезагрузка сервера вместо выполнения WMI: Перезагрузка не сбрасывает статус Dirty Shutdown.
Хрупкость DFSR — известная проблема при плохих каналах связи. Инженеры ITSTM проведут траблшутинг DFSR/FRS, настроят Staging-квоты и переведут вашу инфраструктуру на стабильные архитектурные решения.
Частые вопросы (FAQ)
Почему DFSR просто не восстановит БД автоматически?
Microsoft специально сделала этот процесс ручным начиная с Windows Server 2012. Автоматическое восстановление при больших базах данных приводило к потере данных и конфликтам репликации. Остановка дает администратору шанс сделать бекап.
Как найти правильный VolumeGuid, если в событии его не видно?
Выполните в PowerShell команду: Get-WmiObject -Namespace root\microsoftdfs -Class DfsrVolumeConfig | Select VolumeGuid, VolumePath. Она покажет, какой GUID соответствует какому диску (например, C: или D:).
Что такое Staging quota и влияет ли она на это?
Staging folder — это кэш, где файлы подготавливаются (сжимаются) перед отправкой. Если квота слишком мала, DFSR постоянно удаляет и создает файлы в кэше. Это не вызывает 2213 напрямую, но сильно тормозит репликацию и нагружает базу (Jet DB).
Как проверить, что репликация пошла?
Используйте команду: dfsprop /test:reference /dfspath:\\domain.local\sysvol (для SYSVOL) или создайте тестовый текстовый файл на одном сервере и проверьте его появление на другом.