手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>服务器技术>Mail服务器>列表

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

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
导读:

本文从数据库基本原理的角度入手,通过对Exchange Server Store模块的分析,来揭示Exchange Server邮件存储系统的工作原理和维护技巧。文章适合有一定Exchange Server管理经验的专业IT人员阅读,目的是使读者在维护Exchange Server邮件系统时,能够做到知其然,更知其所以然。

Information Store和Extensible Storage Engine的层次关系

众所周知,在Exchange Server中,Information Store (简称IS)Service是至关重要的。这个服务控制了对邮箱和公共文档夹数据库的操作请求。

更进一步的来看,事实上Exchange Server的数据库系统是由名为Extensible Storage Engine(简称ESE)的数据库引擎来管理的。这个ESE引擎是微软专门为保存非关系型数据而研发的,在微软的很多系统中都有应用:例如,AD的数据库(ntds.dit文档)、Windows DHCP、Windows WINS、SRS等,后台都是由ESE数据库来提供支持的。 www.bitsCN.com



我们知道,Exchange Server的数据库由edb文档、stm文档和众多的log文档组成。在这些文档内部,微软使用了名为“B 树”的内部数据结构,ESE引擎的任务之一,就是当Information Store服务请求访问数据库的时候,把这些请求转化成对内部数据结构的读写访问。B 树的特点是能够对存储在磁盘上的数据提供快速的访问能力。微软选用B 树作为ESE后台结构的一个原因,就是尽可能提高访问数据时的I/O性能。这些B 树的结构对于Exchange Server Store服务来说是透明的,Store只需要把请求发给ESE即可,ESE会对这些数据结构进行操作。

另外,作为一个数据库系统,ESE有责任提供事务(Transaction)级别操作的支持,并维护整个数据库的完整性和一致性。对于现代数据库系统,当我们提到事务时,一般用ACID这样的缩写来描述事务的特点:

中国.网管联盟


我们会在后面的篇幅中周详的讨论Exchange Server和ESE是怎样实现上述的需要的。

对于Information Store Service来说,ESE封装了对数据库操作的任何细节,IS只要根据ESE提供的接口进行调用既可。在Exchange Server 2000中,IS服务对应的进程是store.exe,每一个Storage Group会在store.exe进程中产生一个ESE引擎的实例。




Exchange Server 2000/2003 存储系统的新特点

在微软发布Exchange Server 2000时,Exchange Server的存储系统得到了很大的更新和改进。

从ESE引擎的角度来看,ESE的版本由5.5中的ESE97升级为ESE98,并且在如下方面得到了改进:

1.I/O性能得到进一步的优化和提高
2.对日志文档增加了计算校验和的操作,进一步降低了数据库出错的可能性
3.提高了ESEUtil等维护工具的速度

相比幕后的ESE引擎,Information Store方面的更新更加引人注意,例如:

1.在每台Server上提供多个Storage Group和Store的支持,这是区别于5.5的最大特征之一

bitsCN.nET中国网管博客


2.数据库中stm流文档格式的引入,提高了操作Internet邮件的性能
3.Web Storage System的引入,用户能够使用多种协议访问数据库

EDB文档和STM文档的关系

在Exchange Server 5.5中,数据库只有扩展名为edb的文档。在Exchange Server 5.5发布的时候,微软的重点还是企业内部的邮件传输系统,当时主推的协议是MAPI协议,这是微软的私有邮件协议,edb格式的数据库为此协议作了专门的优化。因此,Exchange Server 5.5为了支持Internet标准的SMTP邮件格式,必须在每次处理Internet邮件时将其转化为edb能够识别的格式,这样做带来的巨大的性能损失。



在Exchange Server 2000中,微软加大了对Internet标准协议SMTP的支持力度。因此,适用于Internet格式邮件的存储就应运而生:这就是stm文档。

MAPI格式的邮件是基于微软的RPC和二进制标准的,而Internet格式的邮件是由纯文本的邮件头和经过MIME编码的字符流组成的。这两者的特性就决定他们无法共存在一种数据库结构的文档中。 中国网管联盟

因此,在Exchange Server 2000中,微软分别使用edb文档和stm文档保存这两种格式的邮件,并在edb和stm文档之间建立了关联和引用。对于用户来说,他的邮箱内容实际上是由跨越了edb和stm文档中的内容一起组成的。值得一提的是,edb文档中除了实际的信件信息以外,还保存了每个用户的邮箱结构、每一个文档夹的内容列表和视图等信息。这是区别于stm中只保存字符流的地方。

我们分下面几种情况讨论edb和stm文档的使用:

1.用户使用Outlook 以MAPI协议的方式和发送和访问邮件
2.用户使用 SMTP/POP3等Internet协议访问Exchange Server。

情景一:

当邮件从MAPI协议的客户端(通常是Microsoft Office中的Outlook)提交到数据库后,邮件内容被保存在edb文档中。

当用户通过MAPI协议的客户端对邮箱中的邮件进行读取访问时,假如请求的邮件是保存在edb文档中的,那么信件被直接打开后返回给用户。假如被请求的信件保存在stm文档中(此信件是SMTP格式的),那么,Exchange Server数据库引擎首先会做一个转换,把stm文档中的数据格式转换成MAPI能够识别的格式,然后再发送给客户端。这个过程称之为“On-demand Conversion”。 bitsCN.Com

情景二:

用户使用SMTP/POP3客户端(如Outlook Express, FoxMail等)跟邮箱连接。当SMTP协议向Exchange Server提交邮件时,邮件的内容被保存在stm文档中。前面提到过,edb文档中包含了用户邮箱的文档夹和信件内容列表,因此,当邮件被保存到stm文档后,数据库引擎把这封邮件的一些重要信息(通常是邮件头中的内容和信件在stm文档中的位置)提取出来,保存到edb文档,这个过程称之为“Property Promotion”。正是有了这个过程,用户才能够得到信箱内容的完整列表,MAPI客户端需要访问位于stm文档中的邮件时,由此能够得到stm文档中信件的正确保存位置。当用户使用POP3协议来读取邮件时,假如被访问的邮件位于edb文档中,同样,一个从MAPI到Internet格式的转化(“ style="CURSOR: hand" align=absMiddle border=0>

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

热点关注
IDC资讯 虚拟主机 域名注册 托管租用 vps主机 智能建站
网站运营 建站经验 策划盈利 搜索优化 网站推广 免费资源
网站联盟 联盟新闻 联盟介绍 联盟点评 网赚技巧
行业资讯 业界动态 搜索引擎 网络游戏 门户动态 电子商务 广告传媒
网络编程 Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术 Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷 Internet Explorer
网页制作 FrontPages Dreamweaver Javascript css photoshop fireworks Flash
程序设计 Java技术 C/C++ VB delphi
网络知识 网络协议 网络安全 网络管理 组网方案 Cisco技术
操作系统 Win2000 WinXP Win2003 Mac OS Linux FreeBSD
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 价格总览 | 资讯中心 | 友情链接 | 网站地图 | 招贤纳士 | RSS