本文介绍重启 Windows Server 2008 后收到 DFS 复制事件 2212 和 DFSR 停止的问题。 稍后,事件 2214 记录在 DFS 复制日志中。
原始 KB 数: 977518
现象
在运行 Windows Server 2008 的服务器上重启分布式文件系统复制(DFSR)服务或重启服务器时,可能会在 DFS 复制日志中记录以下事件:
日志名称:DFS 复制
来源:DFSR
事件 ID:2212
任务类别:无
级别: 警告
关键字:经典
用户:无
计算机:MyDfsrMember.contoso.com
说明:
DFS 复制服务检测到卷 Drive_Letter意外关闭。 如果服务异常(例如电源丢失)或卷上发生错误,则可能会出现这种情况。 该服务已自动启动恢复过程。 如果服务确定数据库无法可靠地恢复,该服务将重新生成数据库。 不需要任何用户操作。
经过一段时间后,DFSR 会记录事件 ID 2214。 此事件指示数据库恢复过程已完成。 在数据库恢复期间,复制性能会降低。
原因
出现此问题的原因是服务控制管理器(SCM)使用默认超时值 20 秒来停止服务。 在某些复杂的 DFSR 实现中,此超时值可能太短,并且 DFSR 在关闭相应的数据库之前停止。 在服务重启时,DFSR 会检测此情况并执行数据库恢复。
解决方法
若要解决此问题,可以通过添加以下注册表值来更改 SCM 使用的默认超时值:
值名称 WaitToKillServiceTimeout
数据类型REG_SZ
字符串 20000 毫秒(默认值)
若要指定等待时间,请执行以下步骤:
- 依次单击“开始”、“运行”,键入
regedit,然后单击“确定”。 - 找到并单击注册表中的以下键:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control - 在 “编辑” 菜单上,指向 “新建”,然后单击“ 字符串值”。
- 键入 WaitToKillServiceTimeout,然后按 Enter。
- 在 “编辑 ”菜单上,单击“ 修改”。
- 键入 60000,然后单击“ 确定”。
- 退出注册表编辑器。
- 重新启动服务器。
如果时间间隔不是 60 秒,可以将 WaitToKillServiceTimeout 注册表值的值设置为 DFSR 事件日志中以下两个事件之间的时间差异(以毫秒为单位):
- 1006 - DFS 复制服务正在停止。
- 1008 - DFS 复制服务已停止。
确保安装 KB 2549760以确保 WaitToKillServiceTimeout 注册表值的性能正确
2549760 WaitToKillServiceTimeout 注册表值在 Windows 7 或 Windows Server 2008 R2 中不起作用