中国网络-ITPro俱乐部's Archiver

iwish 发表于 2007-12-23 23:34

如何删除 ExchangeServer 事务日志文件

察看本文应用于的产品
注意:这篇文章是由无人工介入的自动的机器翻译系统翻译完成。这些文章是微软为不懂英语的用户提供的, 以使他们能够理解这些文章的内容。微软不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的使用所引起的任何直接的, 或间接的可能的问题负责。
文章编号 : 240145
最后修改 : 2006年10月28日
修订 : 6.2
本文是对以下以前提供文章合并: 259751、 315196
要点 本文包含有关如何修改注册表。 一定要修改它之前备份注册表。 确保您知道在发生问题时如何还原注册表。 有关如何备份、 还原, 和修改注册表, 请单击下列文章编号以查看 Microsoft 知识库中相应
256986 ([url=http://support.microsoft.com/kb/256986/][color=#800080]http://support.microsoft.com/kb/256986/[/color][/url]) 对 MicrosoftWindows 注册表说明


本文还包含有关删除事务日志文件信息。 在最坏灾难方案, 您可能无法如果成为损坏数据库恢复所有数据没有日志文件。 事务日志文件提供高级别的恢复。 如果您无法完成完整备份因此, 应只执行过程是讨论作为最后手段在紧急情况本文。 完整备份永久删除提交日志自动备份它们后备份。
本页

概要

更多信息

手动删除事务日志文件所不需

数据库状态

存储组

日志文件

对于 ExchangeServer 5.5

对于 Exchange 2000 服务器并针对 Exchange Server 2003
概要
ExchangeServer 数据库事务日志记录对 ExchangeServer 数据库所有更改。 长期, 这些日志文件堆积并使所有可用磁盘空间如果它们不定期从硬盘删除。

Exchange 事务日志文件具有固定大小。 对于 Microsoft Exchange Server 2003 和所有早期版本的 Exchange 服务器, 该大小是 5MB 完全。 当事务日志已满, 事务日志重命名具有数字序列号, 并生成新当前日志。

当前事务日志是最近由 ExchangeServer 创建一个。 当前事务日志命名 Microsoft Exchange Server 5.5, 中始终为 Edb.log 。 在 MicrosoftExchange2000Server 和 Exchange Server 2003, 中当前日志命名为使用存储组前缀。 有关详细信息, 请参阅 ôStorage groupsö 部分。

通过以下方法之一 Exchange 自动删除不必要的日志文件: • 它们已被写入数据库文件后立即如果启用了循环日志, ExchangeServer 删除事务日志。 直到当前 Exx.log 文件对相关存储组此过程可能导致延迟一些空闲系统上或 Exchange Server 5.5 中 Edb.log 文件已满并对重。 以加快新日志文件创建和自动删除过程, 带有 5 - megabyte (MB) 附件的电子邮件发送自己。

注意 默认情况下, Exchange Server 5.5 中启用循环日志记录。 在 Exchange2000Server 或 Exchange Server 2003 中默认, 不启用循环日志记录。
• 如果禁用循环记录, ExchangeServer 删除多余日志之后完全或增量联机备份存储组中的所有数据库执行。
请有关 Exchange 日志机制原理以及如何更改, 它有关单击下列文章编号, 查看 Microsoft 知识库文章中文章:
147524 ([url=http://support.microsoft.com/kb/147524/][color=#0000ff]http://support.microsoft.com/kb/147524/[/color][/url]) 如何循环记录影响使用事务日志
258470 ([url=http://support.microsoft.com/kb/258470/][color=#0000ff]http://support.microsoft.com/kb/258470/[/color][/url]) 如何修改循环记录设置
如果下列条件之一为真, 事务日志文件会增加在数: 直到硬盘空间耗尽• 备份程序不删除事务日志文件。
• 备份程序已停止运行。
• 事务日志文件都不清除通过其他方法。
有时可能需要手动删除事务日志文件如果您有运行出的硬盘空间。 或者, 您可能偶尔有要手动删除事务日志文件如果预计特定存储组中运行完全或增量联机备份的所有数据库之前的硬盘空间不足。 如果删除日志包含数据, 已尚未写入数据库文件, 数据库不再会 mountable 一个异常停止后。 因此, 您必须确定哪个日志是安全要删除手动删除任何 ExchangeServer 事务日志文件之前。

注意 对于目的是本文, " 删除 " 事务日志文件意味着将事务日志文件移动到其他位置可备份事务日志文件, 位置或者根据您要求删除, 存储,。 为了了本文, " 删除 " 事务日志文件指向的删除, 不允许您可以备份或还原该事务日志文件类型。
回到顶端

更多信息
手动删除事务日志文件所不需
要正确删除多余的事务日志文件, 请按照下列步骤:1. 停止所有存储组中数据库。
2. 验证状态的特定存储组中每个数据库文件。 有关如何验证状态的每个数据库文件, 请参阅 " 数据库状态 " 部分。
3. 执行下列操作之一:• 如果一个或多个数据库处于 Dirty 关机 或者 Inconsistent 状态, 决定哪些事务日志文件可被删除而不影响数据库一致性。 有关详细信息, 请参阅 " 日志文件 " 部分。
• 如果所有数据库都处于 干净关机 或 Consistent 状态, 可能删除所有事务日志文件除了为当前事务日志文件。 当所有数据库处于 干净关闭 " 状态删除当前日志文件会重置的日志文件序列。 这并不导致数据库无法启动。 但是, 重置的日志文件序列影响能够从以前备份数据库前滚如果情况发生。

4. 复制所有事务日志文件与要从事务日志硬盘上永久删除之前删除到其他位置。 您已成功完成完整联机备份存储组中的所有数据库之前执行不永久删除事务日志文件。
以下各节描述事务日志文件和 ExchangeServer 数据库之间关系。 部分还提供有关如何确定哪些日志文件是否安全地删除详细说明。
回到顶端

数据库状态
数据库如果已正确, 不关闭 ExchangeServer 数据库 " 附加 " 保持到其事务日志流。 这意味着并非所有数据从事务日志文件已已保护到数据库文件。 对数据库, 下次启动期间 ExchangeServer 检测此条件。 ExchangeServer 然后适用丢失数据于数据库文件。 如果没有日志文件包含此数据可, 数据库无法启动。

与其事务日志流当关闭 ExchangeServer 数据库正确, 数据库 " 分离 "。 当下次启动该数据库在此情况, 数据库不需要以前事务日志文件。 但是, 如果备份这些日志文件可能很有用或早期版本的数据库都要还原。 日志文件将用于从时间的备份将数据库前滚。 因此, 事务日志文件应不被永久删除直到确信将不要重播到旧版本的数据库它们。

手动删除任何事务日志文件, 之前应确定任何数据库使用特定事务日志文件的状态。 在此情况, 确定 " 附加 " 分离 " 状态的每个数据库使用特定事务日志文件。 您可以确定数据库是否已附加或分离由通过使用 Eseutil 实用程序的 /MH 命令开关检查数据库文件头。 在命令提示符 (例如, 运行以下命令: 其中 database _ name 是对与要检查数据库名称
eseutil/p /MH database _ name
例如, 要检查 邮箱存储 (Server 1) 数据库, 键入
邮箱存储 (Server 1) .edb ö eseutil/p /MH ô
注意 要通过使用 Eseutil 命令, 检查数据库的头数据库必须停止。

之后运行此命令, 检查出现头信息中 状态 值。 状态 值提供关于是否已被正确分离数据库以下信息:• 如果数据库已被正确分离, 状态值就为 干净关机 或者 Consistent , 根据版本是 Exchange 服务器正在运行。  
• 如果不具有已正确分离, 数据库状态值是 Dirty 关机 或 Inconsistent 。 这意味着部分现有事务日志文件包含未完成事务所需的数据库。 如果这时, 删除事务日志文件数据库无法启动再次除非您从备份还原数据库或者除非您通过使用命令 Eseutil 和 Isinteg 命令修复数据库。

有关如何修复 ExchangeServer 数据库, 请单击下列文章编号以查看 Microsoft 知识库中相应:
812357 ([url=http://support.microsoft.com/kb/812357/][color=#0000ff]http://support.microsoft.com/kb/812357/[/color][/url]) 如何通过在 Exchange Server 5.5、 Exchange2000Server, 中和 Exchange Server 2003 中使用 Eseutil / p 工具修复后维护 Exchange 数据库  
两个保留事务日志文件, 以防硬盘上存储事务日志文件已满占位符和保留硬盘空间还可充当。 这些保留事务日志文件被命名 Res 1 .log 和 Res 2 .log 。 如果事务日志文件所在硬盘上已满, Exchange 服务器将使用两保留事务日志文件来继续记录足够长以停止数据库干净。 当 Exchange 服务器无法创建其他事务日志文件由于日志磁盘已满, Res 2 .log 重命名, 下次日志是用作。 如果它是必需, 还会使用 Res 1 .log 。

有时容量的两个保留事务日志文件可能超过。 这会导致要停止在 Dirty 关机 或 Inconsistent 状态存储组中所有数据库。

警告 如果事务日志驱动器, 上运行的磁盘空间不足数据库可能无法干净关闭。 如果一个或多个数据库处于 Dirty 关机 或 Inconsistent 状态和如果删除所有事务日志文件才能释放磁盘空间, 影响存储组中没有数据库将被 mountable 没有被修复或还原再次。 必须不删除日志文件仍所需的一个或多个数据库。
回到顶端

存储组
ExchangeServer 数据库被组织到存储组。 存储组是一组数据库共享单个事务日志文件流。 在 Exchange Server 5.5, 有是单个 InformationStore 存储组包含到两个数据库文件。 这些两个数据库文件分别命名 Priv.edb 和 Pub.edb 为。 此外, Exchange Server 5.5 包含包含单个数据库文件, 名为 Dir.edb 单个目录服务存储组。

在 Exchange2000Server 和 Exchange Server 2003, 中没有没有目录服务存储组。 在 Exchange2000Server 和 Exchange Server 2003, 中有每个服务器可以到四 InformationStore 存储组。 每个存储组可以包含 1 到 5 个数据库。 对这些数据库名称是由管理员配置。

如果事务日志驱动器已满, 将被立即停止存储组中所有数据库。 任何数据库以存储组, 启动时检查存储组中所有数据库的状态。 任何需要事务日志文件重播一起执行对所有数据库首数据库可开始之前。 通常应用于存储组, 不到单个数据库中所有数据库事务日志文件重播操作和事件。

要点 您应该验证每个数据库文件是否处于 干净关机 或 Consistent 状态。 特定存储组中一个或多个数据库可能被正确分离即使是没有正确分离同一存储组中其他数据库。 执行不假定存储组中所有数据库都是处于 干净关闭 " 状态基于的第一个数据库, 您检查状态。

对于 Exchange Server 5.5, 注意 您必须检查单个 .edb 文件中通过使用 Eseutil 命令包含每个数据库。 用于 Exchange2000Server 和 Exchange Server 2003, 用于每个数据库分为两个文件。 两个文件是一个 .stm 文件和 .edb 文件。 通过使用 Eseutil 命令检查状态的 .stm 文件和 .edb 文件。
回到顶端

日志文件
要确定哪些事务日志文件所需的特定存储组, 中数据库请按照下列步骤。
对于 ExchangeServer 5.5
警告 如果正确修改注册表通过注册表编辑器或通过其他方法可能发生 Serious 问题。 这些问题可能需要重新安装操作系统。 Microsoft 不能保证能够解决这些问题而。 修改注册表需要您自担风险。1. 在 ExchangeServerAdministrator 程序, 查看对数据库工作路径。

数据库路径 属性是 服务器 服务器 对象上找到路径位置。 检查点文件 ( Edb.chk ) 位于此路径。 如果 Administrator 程序不可, 查看系统注册表中工作路径 运行注册表编辑器并展开以下注册表子项。

对于信息存储:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSExchangeIS\ParametersSystem\Working Directory
为目录:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MSExchangeDS\Parameters\DSA Working Directory
2. 在命令提示符处, 移动到工作路径文件夹。 通过使用 Eseutil 命令查看对 Edb.chk 文件头:
eseutil/p /mk edb.chk
注意屏幕输出是类似如下: Microsoft(R) Windows NT(TM) Server Database Utilities
Version 5.5
Copyright (C) Microsoft Corporation 1991-1998. All Rights Reserved.

Initiating FILE DUMP mode...
Checkpoint file: edb.chk

LastFullBackupCheckpoint (0,0,0)
Checkpoint (157,2860,500)    comment: Checkpoint is in log 157 decimal
FullBackup (90,8,10)
FullBackup time:1/15/1999 18:18:36
IncBackup (0,0,0)
IncBackup time:0/0/1900 0:0:0
. . .
                                                
检查点 行上三个数字表示日志文件生成编号、 扇区偏移到日志文件, 和到扇区字节偏移。 记下生成数。  
3. 将生成数转换为十六进制。 在本示例, 157 十进制转换为 9D 十六进制数。 ExchangeServer 日志文件编号使用五个十六进制数字。 例如, 命名日志文件可被为作为 Edb12345.log 。 日志数超出填充到五位用于前导零。 因此, 检查点日志文件以前示例中是 Edb0009d.log 。

注意 您可使用 科学 模式是 Windows 计算器要从十进制转换成十六进制。 启动计算器。 然后, 单击 视图 菜单上 科学 。 键入, 十进制数, 然后单击 Hex 。
4. 检查点日志和生成需要当数据库处于 Inconsistent 状态启动数据库检查点日志后所有日志。 您可能不到对应于检查点值, 计算日志文件。 如果检查点处于最新日志文件始终命名为 Edb.log , 这可能发生。 直到该日志达到完全和直到生成一个新日志, 文件名为当前日志不包括日志序列号。

您可以通过使用下列 Eseutil 命令查看日志文件头验证 Edb.log 文件的实际内部序列数:
eseutil/p Edb.log /ML
日志文件头 lGeneration 域反映实际序列号的日志文件。 您必须将 lGeneration 值转换为十六进制。
5. 您可以安全地删除所有编号日志小于检查点日志。 但是, 不要删除检查点日志本身。 在本示例, 您可以删除 Edb0009c.log Edb0009b.log , 以及等, 但不 Edb0009d.log 或当前日志。
请记住, 移动, 不删除, 日志文件。 您不必停止数据库服务来删除日志文件都超过检查点。
如果必须还原备份, 必须也还原如果要完全滚数据库备份后所创建的所有日志文件。 如果没有按顺序对日志, 符您能滚过去符。
对于 Exchange 2000 服务器并针对 Exchange Server 2003
1. 确定路径和文件名用于数据库, 的 .edb 和 .stm 文件使用 Exchange 系统管理器查看属性对话框中为每个数据库对象 数据库 选项卡。
2. 在命令提示符处, 移动到数据库文件的路径。
3. 运行以下 Eseutil 命令以查看对数据库文件头:
eseutil/p /mh database_file  
4. 检查数据库文件头中 日志必需 字段。 日志必需 字段列出要启动该数据库所需编号日志文件的范围。 如果范围是 0 - 0, 没有日志文件都需要启动该数据库。 这意味着数据库是处于 干净关机 或 Consistent 状态。

注意 要通过使用 Eseutil 命令, 检查数据库的头数据库必须停止。 当运行数据库然而, 在所有版本的 ExchangeServer, 您可能检查对检查点文件标题。 在检查检查点文件过程对于所有版本的 ExchangeServer 是相同, ôFor ExchangeServer 5.5ö 节所述。 查看检查点值可确定不必停止数据库删除哪些日志文件。 可能删除是旧比不包含检查点日志, 检查点日志和日志文件。
5. 如果正在运行的 ExchangeServer 不早于 Exchange Server 2003 Service Pack 1 (SP 1), 版本必须将十进制范围该 日志必需 字段以十六进制值中列出。 例如, 如果 日志必需 值是 28221 28217 û , 从 06E39 日志文件以 06E3D 都需要通过此数据库。 Exchange Server2003SP, 中对报表已增强 日志必需 字段十进制和十六进制值。

注意 您可使用 科学 模式是 Windows 计算器要从十进制转换成十六进制。 启动计算器, 并在 视图 菜单上单击 科学 。 键入, 十进制数, 然后单击 Hex 。

注意 在 Exchange Server 5.5, 日志文件命名 Edbxxxxx.log , 其中 " xxxxx " 是五位十六进制数字。 因为您只能有到四个存储组 Exchange 2000 服务器, Exchange Server 2003 与每个存储组有特定的日志文件集 " Edb " 前缀不显示在事务日志文件名。 Exchange 2000 服务器中并在 Exchange Server 2003, " Edb " 前缀是用 " E00, " " " " E02, " " E01, E03 " 替换 为恢复存储组, " Edb " 前缀将替换为 < A0 > R 00 < / A0 > " "。 在 Exchange 系统管理器在对特定存储组对象属性对话框的常规选项卡出现存储组日志文件名称前缀。 因此, 如果存储组前缀并 日志必需 项是否 28221 28217 &ucirc; " E01 " ( 0x06E39 是以 E0106E3D.log E0106E39.log 实际日志所需), &ucirc; 0x06E3D。

删除任何对该存储组日志之前应检查存储组中每个数据库 日志必需 值。  
您可安全删除都小于最低项用于任何数据库存储组中任意 日志必需 字段中所有编号日志文件。 请记住, 移动, 不删除, 日志文件。

注意 可能报告一个日志, 一系列的 日志必需 字段但无法找到相应编号日志文件。 例如, 的 日志必需 字段可能会报告各种 28221 - 28221, 但无法找到日志文件, 是编号 28221。 如果检查点处于最新日志文件可能发生此。 最近的日志文件始终命名为带有只存储组前缀。 例如, 命名最近的日志文件可能是为 E01.log。 直到该日志达到完全和直到生成一个新日志, 文件名为当前日志不包括日志序列号。

您可以通过使用下列 Eseutil 命令查看日志文件头验证实际内部序列号的当前日志文件:
eseutil/p /ML log_prefix .log
例如, 如果日志前缀是 E01 , 使用 eseutil/p /ML E01 .log . 日志文件头 lGeneration 域反映实际序列号的日志文件。

如果必须从备份, 还原 ExchangeServer 数据库并且如果要恢复 ExchangeServer 数据库而不丢失数据, 则还必须还原所有事务日志文件后所创建执行备份。 如果没有对事务日志, 序列中符您能滚过去该中断。 这时, 必须符后删除所有高编号日志。 这包括当前日志文件。

注意 即使如果存储组中所有数据库处于 干净关机 或 Consistent 状态, 您应无法删除最近的日志文件。 如果您删除最新日志文件, 新的日志文件集生成, 开头 0x000001 序列号。 此新的日志文件集从被滚使从以前备份 ExchangeServer 数据库。

有关如何修复 ExchangeServer 数据库, 请单击下列文章编号以查看 Microsoft 知识库中相应:
893083 ([url=http://support.microsoft.com/kb/893083/][color=#0000ff]http://support.microsoft.com/kb/893083/[/color][/url]) 对于 Exchange 信息存储上支持问题

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.