症状

在正在运行 Windows Server 2003 和 Windows Server 2008 中,Windows Server 2008 R2 的域控制器 (DC),您可能会遇到下列症状︰

  • 服务器运行的速度比预期每隔几个小时的慢。

  • 在服务器停止响应每隔几个小时。

此问题只持续几分钟,然后消失。

注意:如果您使用性能监视器 (Perfmon.exe) 监视的域控制器,您发现 CPU 使用率和磁盘 I/O 是非常高时则会出现此问题。


注意:如果启用根据 KB314980 垃圾收集事件日志记录时,您发现垃圾收集进程运行时出现此问题。但是,逻辑删除对象不会删除。


发生此问题时,目录服务日志中添加一个或多个下列事件︰

事件类型: 错误

来源︰ NTDS ISAM

事件类别: (14)

事件 ID: 623

日期︰ < 日期 >

时间︰ < 时间 >

用户: 不适用

计算机︰ < 计算机名 >

说明︰ NTDS (432) NTDSA︰ 此实例 (0) 版本存储已达到其最大大小的 < 数量 >。很可能长时间运行的事务是导致版本存储的清理,从而导致建立的大小。更新将被拒绝,直至完全提交或回滚长时间运行的事务。

可能长时间运行的事务︰

会话 Id: < 标识 >

会话上下文︰ < 上下文 > 会话上下文 ThreadId: < 标识 > 清理︰ 1

事件类型: 错误

事件源︰ NTDS 常规

事件类别︰ 内部处理

事件 ID: 1519年

日期︰ < 日期 >

时间︰ < 时间 >

用户: NT AUTHORITY\LOCAL SERVICE

计算机︰ < 计算机名 >

说明︰ 内部错误︰ Active Directory 无法执行操作,因为数据库已耗尽版本存储。


其他数据内部 ID: 2080490

事件类型: 错误

来源︰ NTDS 复制

事件类别︰ 复制

事件 ID: 1479年

说明︰ Active Directory 无法接收从以下源域控制器的更改更新本地域控制器上的以下对象。活动目录没有足够存储要应用的更改的数据库版本。

对象︰ < 对象 DN >

对象的 GUID: < 对象 GUID >

源域控制器︰ < 基于 DC GUID 的 DNS 名称 >

用户操作

重新启动此域控制器。如果这没有解决问题,增加数据库版本存储区的大小。如果被放入大量的数值,对象或值的大小是非常大,降低将来更改的大小。

附加数据

错误值︰ 8573 数据库在版本存储之外。

原因

此问题是由于有许多不一致的对象或引用在 Active Directory 中的幻像。这些对象的DELTIME属性设置。但是,这些对象的isDeleted属性为 NULL。DELTIME属性,因为 garbagecollector 在其数据库扫描中包含这些对象。因此,不能删除这些对象。很多不一致的对象会导致版本存储空间最多使用垃圾收集过程。

逻辑删除对象在垃圾收集过程中发生此问题。垃圾回收过程中的逻辑删除清理代码将更新这些不一致的对象的 DELTIME,因为它认为这些引用幻像。在此状态下,逻辑删除清理代码将生成一个数据库事务对于这些更新和许多连续的对象。因此,该交易记录的大小超出了版本存储区的大小。

垃圾回收器将这视为致命错误并停止。需要清理任何数据库记录将不来看待,为示例逻辑删除到期的删除。过程是在下次运行垃圾回收器进行重试。因此下, 一次的尝试也可能失败。



这些不一致的对象并不容易确定,与 DELTIME 是内部数据库的列中。他们不会出现这种情况下用户界面或在数据库导出的对象。如果您怀疑您受到该问题,但您想要为正数,应用此修复程序将帮助您,我们建议您联系 Microsoft 客户技术支持,调查受影响的数据库的状态。

此外,这些事件可能会导致 bytoo 许多参考幻像。这些数据库记录是单向对象链接 (即不具有任何下列) 的占位符中的目标对象被删除并从数据库中删除该逻辑删除。但是,引用不会更改。这些引用必须被清理。通过删除属性值或更改为一个有效的对象的引用,您可以执行此操作。在此类中的一个示例属性为"秘书"特性。



Werecommend 您与 Microsoft 客户技术支持,以帮助您识别并删除这些引用幻像。

解决方案

Windows Server 2003 的热修补程序现在是可用的。如果您遇到此问题,Windows Server 2008 或 Windows Server 2008 R2 正在运行的计算机上,您可以按照替代方法部分中提供的步骤。建议您与 Microsoft 客户技术支持联系以获得进一步的帮助。

修补程序信息

可以从 Microsoft 获得受支持的修复程序。然而,此修补程序仅用于解决本文中描述的问题。此修复程序仅适用于遇到本文中描述的问题的系统。此修补程序可能会接受进一步的测试。因此,如果这个问题没有对您造成严重的影响,我们建议您等待包含此修复程序的下一个软件更新。

如果此修复程序可供下载,则在此知识库文章的顶部会出现“修补程序下载可用”部分。如果未显示此部分,请与 Microsoft 客户服务和支持部门联系以获取此修复程序。

注意:如果出现其他问题或需要任何故障诊断时,您可能需要创建单独的服务请求。对于不符合此特定的修补程序的其他支持问题和事项将照常收取费用。有关 Microsoft 客户服务和支持电话号码或创建单独的服务请求的完整列表,请访问下面的 Microsoft 网站︰

http://support.microsoft.com/contactus/?ws=support注意:"提供修补程序下载"窗体显示获取此修复程序的语言。如果看不到您的语言,则修补程序没有那种语言的版本。

系统必备组件

若要应用此修补程序,您必须运行 Windows 2003 Service Pack 2 (SP2)。另外,必须安装 Active Directory。有关如何获取 Windows Server 2003 service pack 或 Windows XP 专业 x64 版服务包的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章︰

889100如何获取最新的 service pack,Windows Server 2003

重启要求

应用此修补程序后,不需要重新启动计算机。

修补程序替换信息

此修补程序不替代以前发布的修补程序。

安装说明

安装此修复程序后,请按照下列步骤。

  1. 将 DC 重新启动到目录服务还原模式。

  2. 以管理员身份登录。

  3. 打开命令提示符。

  4. 在命令提示符处,键入以下命令,并每个命令之后按 enter 键︰

    ntdsutil

    语法数据库分析

    转到链接地址信息

  5. 执行该命令之后,您发现一个文件"dsdit.dmp.x"从其执行 NTDSUTIL 列出已更正的所有对象的文件夹中。"x"的语法数据库分析执行数,请检查最新的文件。

  6. 以正常模式重新启动计算机。

文件信息

此修复程序的英语 (美国) 版本将安装具有下表中列出的属性的文件。这些文件的日期和时间以协调世界时 (UTC) 列出。您的本地计算机上这些文件的日期和时间以您的本地时间加上当前夏令时 (DST) 偏差显示。此外,当您对文件执行某些操作时,日期和时间可能会更改。

Windows Server 2003 文件信息说明
  • 除了这些表中列出的文件,此修补程序还将签名相关的安全目录文件 (KB编号.cat) 安装与 Microsoft 的数字签名。

对于所有受支持的基于 x86 的 Windows Server 2003 SP2 的版本


文件名称

文件版本

文件大小

日期

时间

平台

Ntdsutil.exe

5.2.3790.4650

312,832

15-Jan-2010

12:42

x86

对于所有受支持的基于 x64 的 Windows Server 2003 SP2 版本


文件名称

文件版本

文件大小

日期

时间

平台

SP 要求

服务分支

Ntdsutil.exe

5.2.3790.4650

503,296

15-Jan-2010

15:14

x64

SP2

不适用

Wntdsutil.exe

5.2.3790.4650

312,832

15-Jan-2010

15:14

x86

SP2

对于所有受支持的基于 IA-64 的版本的 Windows Server 2003 SP2


文件名称

文件版本

文件大小

日期

时间

平台

SP 要求

服务分支

Ntdsutil.exe

5.2.3790.4650

807,424

15-Jan-2010

15:14

IA-64

SP2

不适用

Wntdsutil.exe

5.2.3790.4650

312,832

15-Jan-2010

15:14

x86

SP2

解决方法

若要变通解决此问题,请通过更改以下注册表项的值增加版本存储的大小︰


位置︰ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters

名称︰ EDB 最大版本页面 (通过最小的增量)
类型︰ REG_DWORD
值︰ < 值 >
注意:设置的值是将预留 16 KB 内存块 (或 64 位处理器上的 32 KB 内存块) 的数量。例如︰
9600 = ~ 150 MB 32 位,~ 600 MB 64-位
12800 = ~ 200 MB 32-位,~ 800 MB 64-位
16000 = ~ 250 MB 32-位,~ 1000 MB 64-位
19200 = ~ 300 MB 32-位,~ 1200 MB 64-位


(注意,计算机上的本机指针的大小在 32 位 Cpu、 64 位 Cpu 上的 8 个字节的 (4 个字节) 也是计算版本存储区大小的一个因素。因此,有效地使用 64 位 CPU 和操作系统 quadruples 版本存储的默认大小。)


注意:不能设置为任意高的值,尤其是在 x86 操作系统上。您可能会用尽其他任务 LSASS 进程空间中的内存。

注意:"EDB 最大版本页面 (通过最小的增量)"的值设置为任何值小于 6400 将不起作用。6400 是默认值和最小值。

我们建议您实现所需的增量为 50 MB 的值。启用垃圾回收处理的值应该为其他受影响的域控制器尝试的基础值。如果的值为"19200"(302 MB),Werecommend 您与 Microsoft 客户支持服务的帮助时,垃圾回收器不会未成功运行。


只是一个临时的方法是提高版本存储的大小。它使垃圾集合代码传递这些不一致的对象。但是,在逻辑删除生存期之后, 或对象再次被垃圾收集器扫描的作用域中,则可能发生此问题。

状态

Microsoft 已经确认这是“适用于”一节中列出的 Microsoft 产品中的问题。

详细信息

执行权威性还原之后,可能会发生此问题。与 100000 个受影响的对象或多个数据库时出现问题。可能主动解决部分修复受影响的数据库中运行该过程,也可以使用它反应性时您会遇到症状部分中的版本存储错误。


Active Directory 数据库垃圾收集过程有关的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章︰

198793的 Active Directory 数据库垃圾收集进程

有关如何启用垃圾收集日志记录级别的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章︰

314980如何在 Windows Server 2003 和 Windows 2000 服务器中配置 Active Directory 诊断事件日志记录


有关如何启用垃圾收集日志记录级别的详细信息,请访问下面的网站︰

如何启用垃圾收集日志记录级别
有关软件更新术语的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

用于描述 Microsoft 软件更新的标准术语的824684说明

需要更多帮助?

扩展你的技能
了解培训
抢先获得新功能
加入 Microsoft 内部人员

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?

谢谢您的反馈!

×