详析邮件服务器邮件存储和日志 |
发布时间: 2012/6/17 22:28:22 |
本文以数据库的基本原理为基础,分析了EXCHANGE SERVER的存储系统,并说明了各部分的作用。 一、IS服务和ESE的层次关系 IS服务是EXCHANGE服务器中重要的服务之一,它控制着对邮箱和PF的存储操作请求,EXCHANGE服务器的存储实际上是由ESE的数据库引擎来管理的。这个ESE引擎是微软专门为保存非关系型数据而开发的,目前在微软的很多产品中都有广泛的应用,如:AD数据库、DHCP、WINS、SRS等等。 EXCHANGE的数据库是由EDB文件、STM文件和LOG文件组成。在这些文件里,微软使用了“B+树”的内部数据结构。ESE的引擎的任务之一,就是当IS服务请求访问数据库的时候,把这些请求转化为对内部数据结构的读写访问。B+树的特点是能够对存储在硬盘上的数据提供快速访问能力。微软利用“B+树”作为ESE的后台结构的主要原因,就是尽可能的提高访问数据时I/O性能。当然,这些结构对于EXCHANGE STORE来说是透明的。 另外,作为一个数据库系统,ESE有责任提供事务级别的操作的支持,并维护数据库的完整性和一致性。对数据库系统而言,我们提到事务时,一般用ACID来描述事务的特点。 A--Atomic(原子的):事务必须是全或全无的操作,要么全部成功更新,要么全部不被更新 C--Consistent(一致的):一个成功提交的事务必须使数据库处于一个一致的状态。 I--Isolated(孤立的):所有未提交的更改都必须能够和其他事务孤立。 D--Durable(持久的):当事务一旦提交,所做的更改必须存储到稳定的介质上,防止系统失败导致的数据库不一致。(此点非常重要!!) 二、EXCHANGE 2000/2003存储系统的新特点 在EX5.5中,ESE的版本为ESE97,而在EX2000/2003里,ESE版本已经升级ESE98了。ESE引起在以下方面得到了改进: * I/O性能进一步提高和优化 * 对日志文件增加了计算校验操作 * 提高了ESEUTIL等工具的维护速度 而IS也在以下方面有了更新: * 在每个SERVER上提供多个SG支持 * 数据库STM文件格式的引入,提高了INTERNET邮件的性能 * WSS的引入,用户可以使用多种协议访问数据库 三、EDB和STM的关系 常有人问,EDB文件是数据库,那STM文件是做什么用的?可以删除吗? 在EX5.5里,只有EDB文件,因为在EX5.5发布时,微软主推的是内部 邮件系统,因此其主要协议为MAPI,这是微软的私有邮件西医,EDB文件是专门为此协议优化过的。因此在EX5.5中,为了支持INTERNET邮件,必须在每次处理INTERNET邮件时,做一个格式转换。这显然带来了性能的损失。 在EX2000里,微软加大了对INTERNET邮件的支持,这就是STM文件的来源。MAPI格式是RPC和二进制标准的,而STM是纯文本加上一些MIME编码格式,这样的区别使得它们不可能存储在同一数据库里。因此EX2000中,微软开始使用EDB和STM两个文件来分别保存两种格式的邮件。并且在两个文件之间建立了引用和关联。对于用户来说,它的邮箱实际上是跨越了EDB和STM文件共同组成的。另外,需要注意的是,EDB文件中还保留着用户的邮箱结构。所以EDB文件更加重要。那么EDB和STM是怎么协同工作的呢?我们以几个情景来分析之 本文出自:亿恩科技【www.enkj.com】 |