如何排查 Sysvol 和 DFS 副本 (replica) 集上的journal_wrap错误

本文讨论如何排查 Sysvol 和 DFS 副本 (replica) 集上的journal_wrap错误。

注意

本文适用于 Microsoft Windows 2000。 请注意,对 Windows 2000 的支持已于 2010 年 7 月 13 日结束。 有关Microsoft 支持部门生命周期策略的详细信息,请参阅以下 Microsoft 网站:Microsoft 支持部门生命周期策略

适用于: Windows 2000
原始 KB 编号: 292438

摘要

文件复制服务 (FRS) 是一种多线程多主复制引擎,可替换 3.x 和 4.0 版本的 Microsoft Windows NT 中的 LMREPL (LanMan 复制) 服务。 Windows 2000 域控制器和服务器使用 FRS 为 Windows 2000 以及位于系统卷 (Sysvol) 的早期客户端复制系统策略和登录脚本。

FRS 还可以在托管同一容错分布式文件系统的 Windows 2000 服务器之间复制内容 (DFS) 根副本或子节点副本。

本文介绍 FRS 如何使用和依赖 NTFS 文件系统的 USN 更改日志。

更多信息

USN 日志是固定大小的日志,记录 NTFS 5.0 格式分区上发生的所有更改。 只要 FRS 正在运行,NTFRS 就监视 FRS 复制目录中的关闭文件的 NTFS USN 日志文件。

如果关闭 FRS 时发生的足够数量的更改,导致在启动期间 FRS 记录的最后一个 USN 更改不再存在于 USN 日志中,则会发生日记包装错误。 风险在于,在关闭服务时,可能会更改 FRS 复制树的文件和文件夹,并且 USN 日记中没有更改记录。 为了防止数据不一致,FRS 断言为日记包装状态。

若要副本 (replica) 设置成员对 FRS 执行维护,管理员可以长时间停止 FRS 服务。 在这种情况下,管理员可能无法意识到潜在影响。 此外,错误条件可能会导致 FRS 服务关闭,这会导致日志换行错误。 在大型副本 (replica) 集中,副本 (replica) 成员在权威还原期间可能会遇到以下错误, (BURFLAGS=D4) :

journal_wrap_error

若要恢复,必须使用非授权还原 (BURFLAGS=D2) 重新初始化受影响的副本 (replica) 成员,以便从现有入站伙伴同步文件。 对于大型副本 (replica) 集,这种重新初始化可能非常耗时。

请考虑计算机在以下系统版本上运行 Ntfrs.exe 文件版本的方案:

  • Windows 2000 (2195 二进制)
  • Windows 2000 Service Pack 1 (SP1)
  • SP1 修补程序 (WINSE 内部版本 5298)

在这些情况下,必须手动调用非授权还原过程。 为此,必须在Windows NT注册表中设置 BURFLAGS=D2。

对于使用 Windows 2000 Service Pack 2 (SP2) 或 Windows 2000 SP2 修补程序 (WINSE 11773) 的 Ntfrs.exe 文件版本的 Windows 2000 计算机,服务会在检测到journal_wrap_error时执行编程非授权还原。

默认情况下,Windows 2000 Service Pack 3 (SP3) 和 Windows 2000 SP3 修补程序中的 Ntfrs.exe 文件版本不会执行自动非授权还原 (,例如,SP3 将内容保留为 2195,SP1 在检测到日记换行错误时将上下文保留到位) 。 当以下注册表子项中的“启用日记包装自动还原”注册表项设置为 1 时,可将 SP3 版本的 NTFRS 配置为类似于 SP2: HKLM\System\Ccs\Services\Ntfrs\Parameters

重要

我们不建议使用此注册表设置,并且不应在 Windows 2000 的 Service Pack 3 版本之后使用 Windows 版本。 对 DFS 或 SYSVOL 副本 (replica) 集的 FRS 成员执行非授权还原的建议方法是使用 FRS BurFlags 注册表值。 有关如何使用 BurFlags 注册表值的详细信息,请单击下面的文章编号以查看 Microsoft 知识库中的文章:290762使用 BurFlags 注册表项重新初始化文件复制服务副本 (replica) 集

以下是减少日志换行错误的合适选项:

  • 将 FRS 复制的内容放在不太繁忙的卷上。
  • 使 FRS 服务保持运行状态。
  • 在关闭服务时,避免对 FRS 复制的内容进行更改。
  • 增加 USN 日记大小。

FRS 是一项服务,必须始终在 Windows 域控制器和 FRS 复制的 DFS 集的成员上运行。

如果增大 USN 日记大小,因此增加了日志在“换行”之前日志可以保留的更改数,这可以减少 USN 日记帐换行的可能性。 可以通过设置以下注册表项来更改 USN 日记大小: HKLM\System\CCS\Services\NTFRS\Parameters\"Ntfs Journal size in MB" (REG_DWORD)

有效设置的范围从 8 MB 到 128 MB (MB) 。 默认值为 32 MB。 此设置适用于承载 FRS 副本 (replica) 树的所有卷。 必须停止并重启 NTFRS 服务,才能增加 USN 日志大小。 但是,若要减小 USN 日记大小,必须重新格式化包含 FRS 复制内容的所有卷。

可以使用以下公式估计给定 USN 日志文件可以容纳的更改数: 日记大小 / ( (60 字节 + (文件名长度) ) * 2) 此公式中的数字“2”源于每个文件更改的两个日记条目:1 个用于打开,1 个用于关闭。 将日志大小除以每次更改的大小,以确定在遇到日志换行错误之前可能发生的大致更改数。 如果假定文件名采用“8.3”文件格式,则这映射到大约 200,000 个文件和/或 32 MB 日志文件的目录。 如果使用长文件名,更改次数会更少。

在 Windows 2000 Service Pack 2 中,有效设置范围为 8 MB 到 128 MB,默认值为 32 MB。 在 Windows 2000 Service Pack 3 中,有效设置范围为 4 MB 到 10,000 MB,默认值为 512 MB。 这些设置适用于托管 FRS 副本 (replica) 树的所有卷。

作为准则,Microsoft 建议你为每 100,000 个由该卷上的复制管理的文件配置 128 MB 的日志。

有关详细信息,请单击以下文章编号以查看 Microsoft 知识库中的文章:

290762使用 BurFlags 注册表项重新初始化文件复制服务副本 (replica) 集