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

深入剖析EXCHANGE SERVER的邮件存储和日志

来源:互联网 作者:west263.com 时间:2008-02-23
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!
本文以数据库的基本原理为基础,分析了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来说是透明的。 DL.bitsCN.com网管软件下载

另外,作为一个数据库系统,ESE有责任提供事务级别的操作的支持,并维护数据库的完整性和一致性。对数据库系统而言,我们提到事务时,一般用ACID来描述事务的特点。

A--Atomic(原子的):事务必须是全或全无的操作,要么全部成功更新,要么全部不被更新
C--Consistent(一致的):一个成功提交的事务必须使数据库处于一个一致的状态。
I--Isolated(孤立的):任何未提交的更改都必须能够和其他事务孤立。
D--Durable(持久的):当事务一旦提交,所做的更改必须存储到稳定的介质上,防止系统失败导致的数据库不一致。(此点很重要!!)

二、EXCHANGE 2000/2003存储系统的新特点

在EX5.5中,ESE的版本为ESE97,而在EX2000/2003里,ESE版本已升级ESE98了。ESE引起在以下方面得到了改进:
* I/O性能进一步提高和优化
* 对日志文档增加了计算校验操作
www.bitsCN.com

* 提高了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是怎么协同工作的呢?我们以几个情景来分析之。 BBS.bitsCN.com网管论坛

情景一:用户使用OUTLOOK(MAPI)发送接收邮件

在该情景下,用户将邮件通过MAPI协议提交给数据库,直接被保存EDB文档中。当用户通过MAPI访问邮箱里的邮件时,假如被访问的邮件在EDB里,直接返回,假如在STM里(如外来邮件),则执行转换,将STM转换为EDB文档格式,再返回用户。

情景二:用户使用标准SMTP/POP3/IMAP4等协议访问

用户使用非MAPI协议提交的邮件,内容保存在STM文档里,但是由于EDB里有邮箱结构,STM没有,因此系统会把邮件的重要信息提取出来,放在EDB里。当用户用MAPI提取邮件时,过程同上,当用户通过标准协议访问时,同样需要进行格式转换,转换为STM文档格式返回。

这些转换是在后台发生的。对用户来说是透明的。通过上面的描述,您会看到,这两个文档是紧密联系的缺一不可。所以,在任何时间我们都不要单独操作这两个文档,他们是个整体。同时也要注意的是,无论用户使用何方式访问邮箱,都需要向EDB文档请求邮箱结构信息,这是需要注意的。

四、LOG文档的重大作用

在论坛里经常会看到有人说我的硬盘怎么很快就没了,一看原来是日志文档搞的鬼,于是就有人删除日志文档,甚至使用循环日志来强制减少日志,甚至有人提出这样的疑问,日志到底有什么用?是不是多余的?那我们来看看日志的重大作用。 www_bitscn_com

对于一个SG来说,系统会产生一系列的日志,这些日志的扩展名为LOG,前缀一般是E00、E01……除了这些连续的日志文档外,更有一些特别的日志文档(res1.log,res2.log,e0x.chk),他们又有什么用呢?我们的管理员通常不喜欢备份这一操作,因此对这些日志是痛恨不已啊。那么微软在EXCHANGE数据库系统中引入日志的作用难道真的是多此一举吗?我们从以下几个方面来考察一下日志的作用:
1、作为一个企业级的邮件系统,必须要确保数据安全和完整。必须能够面对随时可能发生的意外灾难,把数据损失降低到最小。
2、必须提供高性能的邮件处理能力,对数据库中的邮件的事务操作在完成后必须马上(或是说立即)被记录在存储介质上(见前面的事务持久性说明)
3、灾难发生后,使用数据库备份恢复必须要返回到灾难发生前一刻的数据库状态(这是至关重要的!!)

现在我们来更进一步的看一下,当用户要修改邮箱中的内容时,被修改的内容首先被提取出来放到内存中,实际的修改是发生在内存里的,这是众所周知的,当修改完成后,这些内容必须被尽快写回存储介质,这样才表示一个事务成功完成了。 bitscn.com

从事务的描述中我们能够看到,事务是具备原子特性的,为了确保数据库的一致和完整,事务必须全部成功或全部失败,假如事务失败,则必须回滚到事务开始的状态。而当邮件在内存中修改完成后,此时事务并没有完成(为什么呢?)因为一旦系统崩溃,这些修改就丢失了。所以要确保事务修改完成,必须尽快将修改写回到

文章整理:西部数码--专业提供域名注册虚拟主机服务
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