移动 Exchange 邮箱数据库时事务日志文件出现的问题

 

上一次修改主题: 2005-10-12

每个 Microsoft® Exchange 数据库都与事务日志文件流相关联。存储组中的所有数据库共享同一事务日志文件流。数据库可以脱离一个事务日志文件流,然后附加到另一个流上。将数据库从一个存储组移到另一个存储组时,就会出现这种改变。

当数据库文件处于异常关闭状态时,它们仍然会附加到存储组日志流。因此,若要将数据库移到新的存储组和日志流,必须先确保数据库文件处于干净关闭状态。

不能在同一存储组中混合放置来自不同流的事务日志。因此,移动数据库时,应当保留原始事务日志文件,并且仅传输处于干净关闭状态的数据库文件。

如果可行,则应该在移动文件之前在原始服务器上重播所有事务日志。如果需要将数据库文件移到不同于原始服务器的逻辑驱动器及文件夹路径,则必须在目标服务器上运行 Exchange 2000 Server Service Pack 3 或更高版本。

随 Exchange 2000 Server Service Pack 3 附带的 Exchange Server 数据库实用程序 (Eseutil.exe) 版本引入了 /D 开关,使用它可进行软恢复。通过此开关,管理员可以覆盖每个事务日志文件中定义的数据库路径。

在此 Service Pack 之前,使用 Eseutil.exe 进行事务日志重播时,要求数据库文件位于生成事务日志时其所在的同一逻辑路径位置中。之所以提出此要求,是因为事务日志存储其所属的数据库的位置,并期望数据库位于存储的路径中。

例如,如果生成一系列事务日志时数据库位于 C:\Databases,稍后又将数据库移到 D:\Databases,则后续事务日志重播会导致生成“找不到文件”错误。(事务日志重播过程仍将读取所有日志,然后该过程结束,但是不会将数据实际应用到任何报告了“找不到文件”错误的数据库。)

Exchange 2000 Service Pack 3 版本的 Eseutil.exe 提供了一个新的事务日志重播开关,通过它管理员可以覆盖已写入事务日志文件中的数据库路径。因此,无论数据库文件的当前位置在何处,事务日志重播都可以成功进行。

若要使用此新的 Eseutil.exe 功能,请按下列步骤执行操作:

  1. 将要恢复的数据库和要重播的所有事务日志文件复制到一个文件夹中。

  2. 打开命令窗口,然后将默认目录设置为包含所有数据库和事务日志文件的文件夹。

  3. 运行以下命令:
    C:\Program Files\Exchsrvr\Bin\Eseutil.exe /R Enn /D

    note注意:
    在上面的命令中,应该用存储组的日志前缀替换 Enn。日志前缀是存储组的事务日志文件名的前三个字符。例如:

    C:\Program Files\Exchsrvr\Bin\Eseutil.exe /R E00 /D
    从包含数据库和事务日志文件的文件夹运行此 Eseutil 命令,可以忽略完整的路径指定及其他命令行参数,从而简化了命令行。强烈建议您以这种方式运行 Eseutil。有关高级命令行参数的详细信息,请参阅 Eseutil 文档。

    note注意:
    如果不准备同时恢复存储组中的所有数据库,则可能需要在命令行中添加 /I 开关。/I 开关会指示 Eseutil.exe 在恢复期间忽略丢失的数据库文件。例如:C:\Program Files\Exchsrvr\Bin\Eseutil.exe?/R E00 /I /D

有关详细信息

有关移动 Exchange 邮箱数据库的详细信息,请参阅将 Exchange 邮箱数据库移动到另一个服务器或存储组

有关移动 Exchange 邮箱数据库时系统助理邮箱出现的问题的详细信息,请参阅移动 Exchange 邮箱数据库时系统助理邮箱出现的问题