浅淡exchange server邮件存储系统 原理篇

合集下载

邮件系统架构和原理

邮件系统架构和原理

邮件系统架构和原理邮件系统架构和原理1. 概述•邮件系统是一种电子邮件传输和交换的基础设施•它包括邮件客户端、邮件服务器和网络通信协议•邮件系统的关键目标是可靠地将邮件发送和接收到目标邮箱•邮件系统的架构和原理涉及多个环节,包括邮件协议、邮件服务器配置和通信流程等2. 邮件协议SMTP(Simple Mail Transfer Protocol)•SMTP是一种用于发送邮件的网络协议•它定义了邮件的传输规则和通信过程•SMTP使用TCP连接,通过25端口进行通信•发送邮件的过程包括身份验证、信封信息和邮件内容的传输POP3(Post Office Protocol version 3)•POP3是一种用于接收邮件的网络协议•它定义了如何从邮件服务器下载邮件到客户端的过程•POP3使用TCP连接,通过110端口进行通信•接收邮件的过程包括身份验证、邮件下载和删除等操作IMAP(Internet Message Access Protocol)•IMAP是一种用于接收和管理邮件的网络协议•它可以在多个客户端之间同步邮件状态和文件夹结构•IMAP使用TCP连接,通过143端口进行通信•接收和管理邮件的过程包括身份验证、邮件同步和文件夹操作等3. 邮件服务器配置邮件传输代理(MTA)•MTA用于转发和传递邮件,负责邮件的路由和分发•常见的MTA软件包括Sendmail、Postfix和Exim等•MTA之间通过SMTP协议进行邮件的传输•MTA还可以进行反垃圾邮件、反病毒和安全过滤等处理邮件投递代理(MDA)•MDA用于将传入的邮件存储到用户的邮箱中•MDA负责接收SMTP传输的邮件,并将其存储到相应的用户邮箱中•常见的MDA软件包括Dovecot、Cyrus和Courier等•MDA提供了POP3和IMAP等协议,供用户通过邮件客户端访问邮箱邮件客户端配置•邮件客户端用于用户与邮件服务器进行交互•邮件客户端需要配置邮件服务器的地址、端口和身份验证信息•常见的邮件客户端软件包括Outlook、Thunderbird和Apple Mail等•邮件客户端通过POP3或IMAP协议下载邮件,并通过SMTP协议发送邮件4. 通信流程1.发送邮件流程:–邮件客户端连接邮件服务器的SMTP端口–客户端进行身份验证,验证通过后发送EHLO指令标识自己–客户端发送MAIL FROM和RCPT TO指令设置邮件的发件人和收件人–客户端通过DATA指令开始发送邮件内容–服务器接收邮件内容并进行存储和转发–客户端发送QUIT指令断开连接2.接收邮件流程:–邮件客户端连接邮件服务器的POP3或IMAP端口–客户端进行身份验证,验证通过后发送CAPA指令获取服务器支持的功能–客户端发送LIST指令获取邮箱中的邮件列表–客户端通过RETR指令下载指定序号的邮件内容–客户端进行邮件本地存储或其他操作–客户端发送DELE指令删除已下载的邮件–客户端发送QUIT指令断开连接5. 总结•邮件系统架构和原理涉及邮件协议、服务器配置和通信流程等多个方面•SMTP、POP3和IMAP是常用的邮件协议,分别用于发送和接收邮件•邮件服务器通过MTA和MDA完成邮件的路由、投递和存储•邮件客户端通过配置邮件服务器信息进行邮件的访问和操作•了解邮件系统的架构和原理有助于更好地理解邮件传输和交换的过程。

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

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

深入剖析EXCHANGESERVER的邮件存储和日志本文以数据库的基本原理为基础,分析了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了。

邮箱服务的原理

邮箱服务的原理

邮箱服务的原理邮箱服务是许多人在日常生活中使用的服务,它可以让人们通过互联网发送和接收电子邮件。

邮箱服务的原理可以分为三个方面:邮件传输协议、网际电子邮件架构和邮件服务器的管理。

1. 邮件传输协议邮件传输协议(Mail Transfer Protocol,简称MTP)是指一种用于在计算机之间传输邮件的协议。

它规定了如何将邮件从发送方的计算机传输到接收方的计算机。

邮件的发送方首先需要连接到一个邮件服务器。

这个服务器负责将邮件传输给接收方的服务器。

发送方会将邮件的标题、内容和附件信息等发送给邮件服务器。

邮件服务器会根据邮件地址找到接收方的服务器并将邮件传输过去。

对于这个过程中的每一个交互,MTP都会定义一个特定的命令格式和数据结构,以保证邮件的正确传输。

2. 网际电子邮件架构网际电子邮件架构(Internet Message Architecture)是指一种复杂的客户端/服务器系统,用于在计算机间传输邮件。

它包括多个组件,如邮件客户端、邮件服务器、域名系统(DNS)和路由器等。

邮件客户端是指用户用于发送和接收邮件的应用程序,如Outlook、Gmail等。

邮件服务器则是一组运行邮件传输协议的计算机,它们负责接收并转发邮件。

DNS则负责将邮件地址转换为IP地址,以便正确连接到邮件服务器。

最后,路由器则负责将邮件从发送方的计算机传输到邮件服务器,以及从邮件服务器传输到接收方的计算机。

3. 邮件服务器的管理邮件服务器的管理是指对运行邮件服务器所需的一切硬件和软件的管理。

它包括邮件服务器的安装、配置和维护等。

邮件服务器需要存储大量的邮件数据,因此需要足够的硬盘空间。

同时,邮件服务器还需要足够的内存和处理器能力以确保快速响应。

邮件服务器还需要进行适当的配置,以确保安全性和可靠性。

例如,防火墙、加密和备份都可以提高邮件服务器的安全性和可靠性。

邮件服务器的维护包括监视服务器性能、检查邮件数据库、检查和更新软件等,这些都有助于保持服务器运行的稳定性和可靠性。

ExchangeServer邮件存储标准系统技巧篇

ExchangeServer邮件存储标准系统技巧篇

浅谈Exchange Server邮件存储系统---技巧篇作者/喻勇导读:在了解了Exchange Server Store的工作方式和特点以后,我们接下来介绍一些邮件存储系统的管理技巧。

管理员在掌握了原理以后会对这些技巧有更深刻地认识,在实际工作中做到胸有成竹、游刃有余。

Exchange存储系统软硬件的选择和设计我们首先来看一下如何为Exchange Server的数据库文件和Log文件选择适当的磁盘硬件。

根据上一期的文章中所阐述的Log文件对数据库恢复的作用,我们得知,当数据库损坏时,通过还原磁带上的备份和利用系统现有的日志文件,可以把数据库恢复到发生问题之前的一个状态。

因此,数据库文件和日志文件需要存放在不同的物理磁盘之上,以防止磁盘硬件故障导致数据库和日志同时损坏。

微软的文档中明确的指出,在存在有效备份的前提之下,数据库或日志两者中的任何一个发生损坏,都是可以恢复的。

但是如果数据库和日志同时损坏,就只能通过还原备份来恢复到备份时刻的状态了。

通常企业中重要的服务器存储系统一般都采用通过硬件系统来实现的RAID阵列。

常用的RAID系统有RAID 5和RAID 1。

这两种的系统特点如下:RAID 5:向阵列中的磁盘写数据,奇偶校验数据存放在阵列中的各个盘上,允许单个磁盘出错。

RAID 5也是以数据的校验位来保证数据的安全,但它不是以单独硬盘来存放数据的校验位,而是将数据段的校验位交互存放于各个硬盘上。

这样任何一个硬盘损坏,都可以根据其它硬盘上的校验位来重建损坏的数据。

硬盘的利用率为(n-1/n)%。

RAID1 把磁盘阵列中的硬盘分成相同的两组,互为镜像,当任一磁盘介质出现故障时,可以利用其镜像上的数据恢复,从而提高系统的容错能力。

对数据的操作仍采用分块后并行传输方式。

所以RAID 1不仅提高了读写速度,也加强系统的可靠性。

但其缺点是硬盘的利用率低,冗余度为50%。

从上述的特点来看,RAID 5偏重于数据的安全性;RAID 1(镜像磁盘)在数据的安全得到保障的前提之下,强调了读写速度。

Exchange学习笔记

Exchange学习笔记

Exchange系列课程学习笔记总的来说,Exchange分为三个大的模块:集成到AD模块、ESE存储模块和邮件传输模块。

服务器规划:磁盘系统:Exchange服务器的内存和硬盘必须满足性能要求,微软推荐如下图的规划:即操作系统+应用、页面文件和IIS日志、每个存储组的事务日志、存储的数据库各自占用一个RAID0+1的阵列;如果前端服务器的邮件收发量比较大,有必要为SMPT的队列也准备一个RAID0+1的阵列。

RAID 0+1 操作系统 c:盘RAID 0+1 页面文件 d:盘RAID 0+1 事务日志 E00RAID 0+1 事务日志 E01RAID 0+1 数据库内存:3~4G。

大于4G的内存没有意义!!!安装与卸载微软推荐Exchange Server不作为DC,而是作为成员服务器;管理Exchange可以在DC (PDC仿真器)上安装“Exchange system manger”或在Exchange Server上添加控制台的“活动目录用户与计算机”管理单元。

Exchange的安装所需要的配置安装向导:软件需求1. 在服务器上,安装Windows 2000 Server SP3 或更高版本、Windows 2000 Advanced Server SP3 或更高版本,或者Windows Server 2003。

2. 请确认服务器上安装并启用了NNTP、SMTP 和万维网服务。

如果运行的是Windows Server 2003,请确认已安装了。

3. 从Windows 光盘的Support 文件夹安装Windows 2000 SP3 或Windows 2003 版的Windows 支持工具。

确保所安装支持工具的版本与服务器的操作系统相匹配。

Windows 支持工具包括DCDiag(域控制器诊断)和NetDiag(网络连接测试程序)。

4. 运行DCDiag 测试网络连接和DNS 解析。

要运行DCDiag 工具,您的帐户必须拥有域管理员权限及本地计算机管理员权限。

邮件服务器工作原理

邮件服务器工作原理

邮件服务器工作原理随着互联网的发展,电子邮件已成为人们日常生活和工作中不可或缺的一部分。

而邮件服务器作为电子邮件的重要组成部分,扮演着将邮件从发送方传递至接收方的关键角色。

那么,邮件服务器的工作原理是怎样的呢?邮件服务器的工作流程可以分为两个部分:发送和接收。

在发送邮件时,用户需要通过邮箱客户端(如Outlook、Thunderbird等)或者网页邮箱(如Gmail、163等)向邮件服务器发送邮件。

而邮件服务器则需要完成以下几个步骤:1. 验证发件人身份:邮件服务器首先需要验证发件人的身份是否合法。

如果发件人身份验证失败,邮件服务器会拒绝发送邮件。

2. 解析收件人地址:邮件服务器需要解析收件人的地址,以便于确定邮件应该被传递到哪个服务器。

如果收件人地址无法解析,邮件服务器会退回邮件。

3. 进行DNS查询:邮件服务器会通过DNS查询来确定收件人的邮件服务器位置。

DNS查询会返回MX记录,指示邮件服务器将邮件发送到哪个IP地址。

4. 建立SMTP连接:邮件服务器会使用SMTP协议(Simple Mail Transfer Protocol,简单邮件传输协议)与收件人邮件服务器建立连接。

5. 发送邮件:一旦SMTP连接建立成功,邮件服务器就可以将邮件发送到收件人的邮件服务器。

收件人的邮件服务器会将邮件存储起来,并向收件人发送通知。

在接收邮件时,邮件服务器需要完成以下几个步骤:1. 监听新邮件:邮件服务器需要不断监听新邮件的到来。

2. 接收邮件:当有新邮件到来时,邮件服务器会从发件人的邮件服务器中接收邮件,并将其存储在本地的邮件库中。

3. 过滤邮件:邮件服务器会对新接收的邮件进行过滤,以便于判断是否是垃圾邮件。

如果是垃圾邮件,邮件服务器会将其拦截并删除。

4. 分发邮件:邮件服务器会将新接收的邮件分发到相应的收件人邮箱中。

总体来说,邮件服务器通过SMTP协议和DNS查询等技术,将邮件从发送方传递到接收方。

邮件服务器的基本工作原理

邮件服务器的基本工作原理

邮件服务器的基本工作原理
1)首先,当你将E-mail输入你的计算机开始发送时,计算机会将你的信件"打包",送到你所属服务商的邮件服务器(上图中发信的邮局即为"SMTP邮件服务器",收信的邮局即为"POP3邮件服务器")上,这就相当于我们平时将信件投入邮筒后,邮递员把信从邮筒中取出来并按照地区分类。

2)然后,邮件服务器根据你注明的收件人地址,按照当前网上传输的情况,寻找一条最不拥挤的路径,将信件传到下一个邮件服务器。

接着,这个服务器也如法炮制,将信件往下传送。

这样层层向下传递,最终到达用户手中。

3)最后,E-mail被送到用户服务商的服务器上,保存在服务器上的用户E-mail信箱中。

用户个人终端电脑通过与服务器的连接从其信箱中读取自己的E-mail。

邮件服务器提供了邮件系统的基本结构,包括邮件传输、邮件分发、邮件存储等功能,以确保邮件能够发送到Internet网络中的任意地方。

目前邮件服务器有两种不同的应用群体:ISP提供商和企事业单位。

Exchange原理和结构

Exchange原理和结构

浅谈Exchange Server邮件存储系统---原理篇作者/喻勇导读:本文从数据库基本原理的角度入手,通过对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数据库来提供支持的。

图-1 IS和ESE层次关系我们知道,Exchange Server的数据库由edb文件、stm文件和众多的log文件组成。

在这些文件内部,微软使用了名为“B+树”的内部数据结构,ESE引擎的任务之一,就是当Information Store服务请求访问数据库的时候,把这些请求转化成对内部数据结构的读写访问。

B+树的特点是能够对存储在磁盘上的数据提供快速的访问能力。

微软选用B+树作为ESE后台结构的一个原因,就是尽可能提高访问数据时的I/O性能。

这些B+树的结构对于Exchange Server Store服务来说是透明的,Store只需要把请求发给ESE即可,ESE会对这些数据结构进行操作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本文从数据库基本原理的角度入手,通过对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文件发出请求。

两种格式的文件,对两种类型的协议分别提供了支持,有效的减少了不必要的格式转换的发生。

Log文件的作用我们讨论Exchange Server的邮件存储,就不得不谈谈它的日志文件。

我不止一次的听到Exchange Server 的管理员抱怨:日至文件每天都在疯长,太消耗硬盘空间了。

我们来看看这些日志文件到底有些什么作用。

对于每一个Storage Group,Exchange Server会产生一系列与之对应的日志文件。

这些日志文件的大小为5M,扩展名为log,他们的前缀为E0x,其中x是日志文件所对应的Storage Group的编号[脚注:虽然在Storage Group的属性中有“Log File Prefix”这一个文本框,但实际上这是不能更改的。

]。

因此第一个Storage Group的日志文件前缀为E00,第二个的为E01,依次类推。

这样做的目的是当存在多个Storage Group时,可以避免管理员在维护的时候把日志文件”张冠李戴”。

另外,除了连续的Log文件,我们还能看到E0x.chk、Res1.log、 Res2.log等文件。

很多管理员都对日志文件非常的头疼,那么,微软在Exchange Server的数据库系统中引入Log文件的目的是什么呢?我们从以下几个方面来看:1.作为一个企业级的邮件数据库系统,必须做到数据安全和完整性的万无一失。

必须能够面对随时可能发生的崩溃和宕机,What happens if we crash? 要能够把数据的损失减少到最新程度。

2.必须提供高性能的邮件吞吐能力,对数据库中的邮件的事务操做在完成后必须马上被记录到存储介质上(事务的持久性)。

3.当灾难发生时,使用数据库的备份恢复必须要返回到灾难发生前一刻的数据库状态。

现在我们更进一步的来看一下,当我要修改邮箱中的内容时,被修改的内容首先被读取出来放到内存中。

实际的修改发生在内存中,当修改完成后,这些内容必须被写回存储介质,才能表示一个修改成功地完成了。

对于这样的修改过程,在数据库级别上,我们叫做一个“事务”。

我们知道,为了确保数据库的完整性和一致性,事务的操作是“原子级别”的。

如果一个事务成功,那么标志着他所作的改变被永久的保存下来了;如果一个事务失败,系统必须回到事务开始之前的状态。

当系统在内存中完成修改时,事务并没有完成。

如果这个时候宕机,数据库中保存的仍然是没有更改的内容。

那么,怎么样确保在内存中完成的修改能够在第一时间写入到数据库呢(以达到数据库事务持久性的要求)?注意,这里的要是第一时间,也就是越快越好。

如果我们直接向edb文件写入,无法做到最快,因为,edb 文件通常都很大,I/O系统在对大的文件进行随机写入操作时,会花费大量的时间在等待磁盘查找到合适的磁道和扇区,当系统繁忙时,这将会是一个瓶颈。

因此,数据库系统使用日志文件,当内存中的更改完成后,首先写入到日志文件中。

日志文件的尺寸很小,写入性能要远远优于庞大的edb文件。

在写入完成后,事务也随之成功的保存在存储介质上了。

Exchange Server 的数据库引擎会在后台把Log 文件中的内容写入到数据库中,因为此时事务操作已经完成,即使此时掉电或者宕机,也不会使完成的事务遗失。

这是日志文件的第一个作用:确保事务能够在第一时间保存到非易失存储介质上。

(提供持久性Durable支持)根据上面的描述,我们知道在运行中的Exchange Server数据库,是由三部分组成的--内存中已经完成修改但是还没有写入日志文件的内容(Dirt Page)。

相关文档
最新文档