天降贤淑男漫画番外篇:浅谈Exchange Server邮件存储系统-原理篇(1)
来源:百度文库 编辑:中财网 时间:2024/05/04 19:16:52
本文从数据库基本原理的角度入手,通过对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数据库来提供支持的。 我们知道,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的最大特征之一 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”。情景二:用户使用SMTP/POP3客户端(如Outlook Express, FoxMail等)跟邮箱连接。当SMTP协议向Exchange Server提交邮件时,邮件的内容被保存在stm文件中。前面提到过,edb文件中包含了用户邮箱的文件夹和信件内容列表,因此,当邮件被保存到stm 文件后,数据库引擎把这封邮件的一些重要信息(通常是邮件头中的内容和信件在stm文件中的位置)提取出来,保存到edb文件,这个过程称之为 “Property Promotion”。正是有了这个过程,用户才可以得到信箱内容的完整列表,MAPI客户端需要访问位于stm文件中的邮件时,由此能够得到stm文件中信件的正确保存位置。当用户使用POP3协议来读取邮件时,如果被访问的邮件位于edb文件中,同样,一个从MAPI到Internet格式的转化(“ On-demand Conversion”)也会在后台悄悄的发生。 通过上面的描述,我们知道在实际的Exchange Server环境中,这两个文件是紧密关联的。在任何时候都不要单独的操作这两个文件,要始终把他们视为一个整体。edb文件中包含了每一个邮箱的内容列表(store tables),当客户端需要得到文件夹的内容时,都必须向edb文件发出请求。两种格式的文件,对两种类型的协议分别提供了支持,有效的减少了不必要的格式转换的发生。文章出处http://bbs.5dmail.net(中文名称:5dmail邮件资讯网)
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xuhuojun/archive/2008/06/30/2598946.aspx
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xuhuojun/archive/2008/06/30/2598946.aspx
Exchange Server
EXCHANGE SERVER
请问如何设置exchange server 2003中的邮件服务器?
请问如何设置exchange server 2003中的邮件服务器?
如何把同一域中的一个Exchange server的帐户及邮件导入至另一个Exchange server中?
exchange server 2003 与windows server 2003的邮件服务器的优缺点是什么?
Exchange server 2000是什么?
Exchange Server 的问题
Exchange Server 2003
Exchange Server 2003概念
请问在windows 2000 server中可不可以设exchange邮件服务
怎样设置Exchange Server 2003可以接收外网的邮件?
Exchange邮件服务器问题
microsoft exchange server不可用
Exchange Server 2003安装 问题
microsoft exchange server的问题
ourlook联不上Microsoft Exchange Server
如何导出exchange中的邮件
Exchange 无法对外发出邮件
exchange邮件延时的问题
提供sms server,ISA server ,Exchange Server等技术支持
安装Exchange Server 2003出现的问题?
请问怎样部署Microsoft Exchange Server 2003?
foxmail 是否支持microsoft exchange server,急!!