浅谈Exchange Server邮件存储系统-原理篇(3)

在这个过程中,Event Log中会有如下的记录
Event Type: Information Event Source: ESE98 Event Category: Logging and Recovery Event ID: 301 Date: 10/17/2001 Time: 5:52:11 AM User: N/A Computer: <server_name></server_name> Description: Information Store (XXXX) The database engine has begun replaying logfile ../../E0014553.log.
我们也可以针对已经“Dis-mount”的并且是处在“Inconsistent”的数据库手工地进行“Soft Recovery”。 具体的命令是“eseutil /r”,后跟数据库文件的路径。(推荐在掉电重启以后执行此命令,可以先运行eseutil /mh确定数据库状态,如果是“Inconsistent”,再执行此命令) 由此我们可以发现,Exchange Server有能力对未正常关闭的数据库进行“自我修复”。因此,ESE确保了即使在突然掉电的情况下,数据库仍然能够处在一个可恢复的状态,并且会在重启服务以后自动完成状态检测和恢复。 M盘的来龙去脉 在Exchange Server 2000发布时,微软提出了“Web Storage System”的概念,其核心就是提供多种途径来访问Exchange Server的数据库。这些途径包括 文件系统/IFS --Http WebDAV --ExOLEDB/ ADO --CDO 其中,提供文件系统服务的IFS技术是引起争议比较多的一个模块。在安装Exchange Server 2000后,系统会出现一个M盘。这个M盘,就是由微软通过IFS(Installable File System)技术实现的一个数据库到文件系统的映射。开发人员可以通过标准的文件操作API(如CreateFile, OpenFile等)来访问Exchange Server的邮箱和邮件。 打开M盘,你可以看到一个以你当前域名命名的文件夹。在这个文件加下面,你会看到一个包含了所有邮箱的文件夹,名为MBX。MBX下面,是以用户的姓名来命名的邮箱文件夹,在每个文件夹下面,都可以看到Inbox、 Outbox等邮箱的内容。每一封信件,都是以扩展名为EML的文件来表示的。 ExIFS使用了一个名为//./BackOfficeStorage的特殊共享名称来指向数据库文件。你可以在命令行中运行“Dir //./BackOfficeStorage/domain.con/MBX”,这个命令的实行结果跟直接使用M盘作为盘符是一样的。 我们可以通过修改注册表的方式所来改变Exchange Server所映射的盘符。
HLKM/System/CurrentControlSet/Services/ExIFS/Parameters Name: DriveLetter Data Type: REG_SZ Value: Drive letter for IFS (盘符,不需要跟冒号)
在更改注册表以后,需要重启Information Store Service使更改生效。 我们也可以使用如下的命令行工具来改变M盘的映射:
Subst X: //./BackOfficeStorage 注释:把Exchange Store映射到X盘 Subst /d M: 注释:删除对M盘的映射
如果我们移除了M盘,我们还是可以通过//./BackOfficeStorage这个共享名字来访问Exchange Server的数据库。 ExIFS在Windows中是作为一个隐藏的服务来运行的。下面的注册表键值定义了这个服务的参数:
HLKM/System/CurrentControlSet/Services/ExIFS/Parameters
由于这是一个隐藏的服务,因此我们没有办法通过Service控制面板来对这个服务进行控制。但是我们可以通过命令行来做到:
NET Start ExIFS 注释:启动服务 NET Stop ExIFS 注释:停止服务

下面这张图表示了ExIFS的架构。

浅谈Exchange Server邮件存储系统-原理篇(3)

ExIFS是使用运行在Windows内核模式的ExIFS.sys驱动程序来实现的。 我们知道,文件系统和Exchange Server的store是两个完全不同的体系结构。文件系统中的文件只包含比较少的属性,而保存在Store中的邮件,有其特定的属性,并且,在 Store中,邮件之间还有非常复杂的关联关系(跟邮箱的关系,邮箱文件夹的视图等)。因此,M中以EML形式存在的文件(邮件),只是反映了邮件所有属性和关系的一个子集。一些对于M盘的不适当操作,往往会破坏数据库内部的关系,造成数据库损坏。比较典型的例子是,防病毒软件扫描M盘,发现“嫌疑病毒” 并予以清除。根据微软技术支持部门的统计,这是造成Exchange Server Store数据库损坏的主要原因之一。因为防病毒软件在清除病毒文件(EML文件)时,采取“野蛮施工”手段,往往会破坏数据库内部的关联和邮件结构,进而造成数据库文件内部结构的损坏。 另一个针对ExIFS的错误观点是:管理员认为对M进行备份即可保存Exchange Server的状态和所有数据。这是完全不正确的。M盘只是数据库内容在文件系统上的一个映射,M中所保存的“文件”,归根结底还是数据库中保存的邮件。由于映射到M盘,数据库中的邮件关联和关系都被去掉了,备份M盘,是没有办法恢复数据库的所有信息。

文章来源http://bbs.5dmail.net (中文名称:5Dmail邮件资讯网)

你可能感兴趣的:(Exchange)