У нас есть два сервера Server 2008 R2, работающих под управлением DFS-R (названные dfs01
и dfs02
) в домене 2008 R2.
Сегодня я нашел файлы на сервере dfs01
не может быть воспроизведен на dfs02
. Итак, я использовал команду
dfsrdiag backlog /rgname:<group> /rfname:<folder> /sendingmember:dfs01/receivingmember:dfs02
проверить отставание. После выполнения команды я получаю следующую ошибку:
Не удалось выполнить метод GetVersionVector. Err: -2147217406 <0x80041002> операция не удалась.
Как я могу это решить?
Это происходит после установки исправления 2663685 http://support.microsoft.com/kb/2663685
Он изменяет поведение после «грязного» выключения DFSR, так что автоматический перезапуск больше не происходит, вместо этого он остается выключенным, позволяя вам делать любые резервные копии, которые могут вам понадобиться, а затем вы запускаете команду WMI в соответствии со статьей, чтобы перезапустить его.
Предупреждение: применение этого исправления в кластере означает, что оно не очень доступно, так как при переключении на резерв DFSR будет отключен на узле. Вы можете настроить это с помощью параметра реестра. Лично я собираюсь отменить это исправление во всем нашем поместье, так как это больше проблем, чем оно того стоит, DFSR падает и не возвращается в сеть, пока мы не приедем в понедельник, а отставания просто растут и растут.
Самый простой способ снова запустить это приложение - зайти в средство просмотра событий и перейти к Applications and Services Log > DFS Replication
. Ищите событие 2213:
Там находится точная команда, которую вам нужно запустить.
Кроме того, чтобы вернуть DFS-R к исходным настройкам, запустить это:
wmic /namespace:\\root\microsoftdfs path dfsrmachineconfig set StopReplicationOnAutoRecovery=FALSE
Я столкнулся с подобной проблемой, но исправление 2663685 не было моей проблемой. В моем случае dfsrdiag будет работать с некоторыми из моих реплицированных папок, но не со всеми. Реплицированные папки были распределены по разным дискам.
Короче говоря, DFSR не будет обрабатывать реплицированную папку из-за поврежденной базы данных. Вы можете убедиться, что диск отсутствует с помощью этой команды. В нем должны быть перечислены все диски, на которых есть папки DFSR.
wmic /namespace:\\root\microsoftdfs path dfsrvolumeinfo get volumepath, VolumeGuid
У меня отсутствовал один из томов DFSR. Вероятно, он все еще будет указан в конфигурации, поэтому вы можете проверить с помощью этой команды, если не уверены, что какие-либо из них отсутствуют.
wmic /namespace:\\root\microsoftdfs\ path dfsrVolumeConfig get *
Также проверьте C: \ Windows \ debug \ dfsr * .log на наличие других сообщений о том, что диск не готов или не может прочитать серийные номера.
Чтобы решить эту проблему, мне пришлось остановить DFSR и удалить / переименовать базу данных. Затем он начал синхронизацию, и через некоторое время после перестройки команды наконец заработали.
Также журналы DFSR могут быть подробными и по умолчанию ограничены до 1000 файлов журналов. Пожалуйста, измените уровень журнала на что-нибудь нормальное, потому что как только вы достигнете 1000 DFSR, просто остановится.
wmic /namespace:\\root\microsoftdfs path dfsrmachineconfig set debuglogseverity=3
Поскольку он действительно работает с другим томом, чем D, я бы предположил, что он связан с томом D, и переформатировал этот том (или просто удалил и воссоздал том) или навсегда переместил реплику на другой том. Если что-то действительно не так с самим DFSR, он не будет работать независимо от реплики или тома.
В нашем случае на одном из томов на одном из серверов закончилось место на диске. К счастью, это была виртуальная машина, поэтому я просто расширил ее, перезапустил DFS, и все было хорошо. Я прочитал этот пост и покопался в статьях базы знаний и взломах реестра, прежде чем искать простое решение. Бритва Оккама снова побеждает.