症状
请考虑以下情形:
-
您可以通过使用 Windows PowerShell 或 Exchange 管理控制台激活 Microsoft Exchange Server 2010 Service Pack 3 (SP3) 数据库的被动副本。
-
没有问题,请卸载已装载的数据库和被动拷贝装载。
-
数据库复制状态变为现在是被动副本的初始化阶段的故障状态。此外,该数据库副本的状态消息显示失败。
发生此问题时,您收到一条错误消息,如下所示,当您运行Get MailboxDatabaseCopyStatus | fl 标识、 errormessage cmdlet 在 Exchange 管理外壳 (EMC);
Microsoft Exchange 复制服务在启动时检查DB\Server日志和数据库时遇到错误。错误︰ 文件检查失败:'路径\Exx.log' 的日志文件是生成数字 1;但是预期的生成为数字 2。
例如,您可能会收到以下错误消息︰
Microsoft Exchange 复制服务在启动时检查DB\Server日志和数据库时遇到错误。错误︰ 文件检查失败︰ 日志文件 'f:\logs\DB\Enn.log' 是代 2024;但是预期的代是 2004 年。
原因
如果包含的卷上启用 8.3 文件名创建格式,则事务日志在 Exchange Server 2010 SP3,这可能会导致无效的事务日志,数据库的激活过程中以 findfile 查询的一部分返回。这将导致数据库无效的序列中的事务日志生成编号,因为发送到故障状态。
由于此错误而发生数据丢失。
解决方案
若要解决此问题,请安装以下更新汇总:
Exchange Server 2010 Service Pack 3 的更新汇总 2 说明
解决方法
步骤 1︰ 确定 8.3 文件名创建格式的配置
若要确定是否已启用 8.3 文件名创建格式,请从提升的命令提示符处运行以下命令。(在这里,我们假设的事务日志文件位于驱动器 C)
fsutil 8dot3name query c:
预期的输出返回的内容是否已启用该 resemblbes 以下,8.3 文件名创建格式︰
The volume state is: 0 (8dot3 name creation is enabled).
The registry state is: 2(Per volume setting-the default).
Based on the above two settings, 8dot3 name creation is enabled on C:
或者,预期的输出可能会返回类似于以下︰
The volume state is: 0 (8dot3 name creation is enabled).
The registry state is: 0 (Per volume setting - the default).
Based on the above two settings, 8dot3 name creation is enabled on C:
这表明 C 有 8.3 文件名创建格式启用该驱动器。
请确保包含事务日志的卷上运行此命令。如果您使用装入点,也可以使用以下︰
fsutil 8dot3name query Volume{928842df-5a01-11de-a85c-806e6f6e6963}
您将需要替换了卷 GUID,以匹配您的卷 GUID。若要确定特定驱动器的卷 GUID,请运行以下命令︰
mountvol [Drive:]Path /L
根据您的需求,您可以设置 8.3 文件名创建格式要禁用所有的卷或卷的卷为基础,如步骤 3 所述。它是最重要的要确保包含事务日志的卷被禁用 8.3 文件名创建格式的。
第 2 步︰ 检查组策略禁用 8.3 文件名创建格式
尝试禁用 8.3 文件名创建格式之前,您应注意此设置,可以通过组策略控制。请检查以确定是否配置组策略以更改 Exchange 服务器上的以下注册表项︰
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\NtfsDisable8dot3NameCreation"=dword:00000002
如果通过组策略控制此设置,此设置删除 Exchange 服务器中,组策略设置,将 NtfsDisable8dot3NameCreation dword 值设置为2的值。这使得单个卷的更改。
注意:如果使用的值为0 ,则不能更改卷配置。
Fsutil 8dot3name命令有关的详细信息,请访问以下 Microsoft TechNet 网站︰
步骤 3︰ 更改 8.3 文件名创建格式
要禁用 8.3 文件名创建格式的所有卷,请运行以下命令︰
fsutil 8DOT3name set
如果您想禁用包含事务日志的单个卷上,运行以下命令︰
fsutil 8DOT3name set c: 1
注意:在此命令中, c是驱动器的包含事务日志的盘符。
或者,您可以在一个特定卷上运行。若要执行此操作,请运行以下命令︰
fsutil 8dot3name query Volume{928842df-5a01-11de-a85c-806e6f6e6963}
要禁用 8.3 文件名创建的卷的配置更改后,您可以验证该设置被禁用。若要执行此操作,请再次运行下面的命令︰
fsutil 8DOT3name query c:
这将导致所有新文件的创建或复制此卷无法生成 8DOT3 名称的文件的名称。然而,所有现有文件仍然包含 8DOT3 名称。因此,必须要解决这个问题。
步骤 4︰ 删除现有的事务日志的 8.3 名称
选项 1
首选的方法是在 Exchange 数据库上运行完全备份。这会导致事务日志被截断并删除了 8.3 名称的现有日志。包含 8.3 名称的所有事务日志被都截断后,数据库将不会发生故障。
选项 2
如果备份选项不可用,您必须处理的所有事务日志,以确保 8.3 名称会从这些文件的副本。若要执行此操作,请执行以下步骤:
-
它包含数据库的被动副本的服务器上,停止 Microsoft Exchange 复制服务。
-
在 Windows PowerShell,运行以下命令︰
stop-service msexchangerepl
-
在 Windows 资源管理器中,找到要在其中存储事务日志的文件夹。
-
选择类型 Enn*.log 的所有事务日志,然后将它们移到一个临时文件夹。请确保您移动 Enn*.log 类型的事务日志。应将移动任何其他文件类型。
-
将所有事务日志都移回其原始位置。在移动过程中,会删除 8.3 名称。
-
重复此过程,用于被动的所有数据库的所有事务日志。
-
重新启动 Microsoft Exchange 复制服务︰
start-service msexchangerepl
注意:应首先完成此步骤,为所有的数据库的被动副本。
-
移动到在其操作的事务日志的副本已装载 (活动的) 数据库的副本︰
Move-ActiveMailboxDatabase DB2 -ActivateOnServer MBX1 -MountDialOverride:None
-
停止该 Microsoft Exchange 复制服务,然后再次将事务日志移动到一个临时位置并再移回其原始位置。
-
启动 Microsoft Exchange 复制服务。现在,不应发生期间移动 activemailboxdatabase操作的数据库失败。
详细信息
其他常见症状的发生是在应用程序日志和 ExchangeHighAvailability 操作日志中。那里,事件显示类似于以下内容︰
若要确定是否有仍有 8.3 事务日志的名称,您可以在事务日志位置中的命令提示符处运行以下命令︰dir /x 如果事务日志仍包含 8.3 名称,您会看到类似于以下内容︰
04/10/2013 04:16 PM 1,048,576 E0C749~1.LOG E0000000118.log 04/10/2013 04:16 PM 1,048,576 E01D7D~1.LOG E0000000119.log 04/10/2013 04:16 PM 1,048,576 E00834~1.LOG E000000011A.log 04/10/2013 04:16 PM 1,048,576 E05DFF~1.LOG E000000011B.log 04/10/2013 04:16 PM 1,048,576 E06DCB~1.LOG E000000011C.log 04/10/2013 04:16 PM 1,048,576 E0F768~1.LOG E000000011D.log
注意:如果您看到的下一步到最后一列中的 E0F768~1.log 名,您仍然可以有 8.3 名称的事务日志。因此,当您尝试将活动数据库移动仍会有问题。