为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 详析邮件服务器邮件存储和日志

详析邮件服务器邮件存储和日志

2018-03-25 7页 doc 21KB 16阅读

用户头像

is_037433

暂无简介

举报
详析邮件服务器邮件存储和日志详析邮件服务器邮件存储和日志 本文以数据库的基本原理为基础,分析了EXCHANGE SERVER的存储系统,并说明了各部份的作用。 1、IS服务以及ESE的层次瓜葛 IS服务是EXCHANGE服务器中首要的服务之1,它节制着对于邮箱以及PF的存储操作要求,EXCHANGE服务器的存储其实是由ESE的数据库引擎来管理的。这个ESE引擎是微软专门为保留非瓜葛型数据而开发的,目前在微软的良多产品中都有广泛的利用,如:AD数据库、DHCP、WINS、SRS等等。 EXCHANGE的数据库是由EDB文件、STM文件以及LOG文件...
详析邮件服务器邮件存储和日志
详析邮件服务器邮件存储和日志 本文以数据库的基本原理为基础,分析了EXCHANGE SERVER的存储系统,并说明了各部份的作用。 1、IS服务以及ESE的层次瓜葛 IS服务是EXCHANGE服务器中首要的服务之1,它节制着对于邮箱以及PF的存储操作要求,EXCHANGE服务器的存储其实是由ESE的数据库引擎来管理的。这个ESE引擎是微软专门为保留非瓜葛型数据而开发的,目前在微软的良多产品中都有广泛的利用,如:AD数据库、DHCP、WINS、SRS等等。 EXCHANGE的数据库是由EDB文件、STM文件以及LOG文件组成。在这些文件里,微软使用了“B+树”的内部数据结构。ESE的引擎的任务之1,就是当IS服务要求走访数据库的时候,把这些要求转化为对于内部数据结构的读写走访。B+树的特色是能够对于存储在硬盘上的数据提供快速走访能力。微软应用“B+树”作为ESE的后台结构的主要缘由,就是尽量的提高走访数据时I/O机能。固然,这些结构对于于EXCHANGE STORE来讲是透明的。 此外,作为1个数据库系统,ESE有责任提供事务级别的操作的支撑,并保护数据库的完全性以及1致性。对于数据库系统而言,咱们提到事务时,1般用ACID来描写事务的特色。 A--Atomic(原子的):事务必需是全或者全无的操作,要末全体胜利更新,要末全体不被更新 C--Consistent(1致的):1个胜利提交的事务必需使数据库处于1个1致的状况。 I--Isolated(孤立的):所有未提交的更改都必需能够以及其他事务孤立。 D--Durable(持久的):当事务1旦提交,所做的更改必需存储到不乱的介质上,避免系统失败致使的数据库不1致。(此点无比首要~~) 2、EXCHANGE 二000/二00三存储系统的新特色 在EX五.五中,ESE的版本为ESE九七,而在EX二000/二00三里,ESE版本已经经进级ESE九八了。ESE引发在下列方面患上到了改良: * I/O机能进1步提高以及优化 * 对于日志文件增添了计算校验操作 * 提高了ESEUTIL等工具的保护速度 而IS也在下列方面有了更新: * 在每一个SERVER上提供多个SG支撑 * 数据库STM文件格式的引入,提高了INTERNET邮件的机能 * WSS的引入,用户可使用多种协定走访数据库 3、EDB以及STM的瓜葛 常有人问,EDB文件是数据库,那STM文件是做甚么用的,可以删除了吗, 在EX五.五里,只有EDB文件,由于在EX五.五发布时,微软主推的是内部邮件系统,因而其主要协定为MAPI,这是微软的私有 邮件西医,EDB文件是专门为此协定优化过的。因而在EX五.五中,为了支撑INTERNET邮件,必需在每一次处理INTERNET邮件时,做1个格式转换。这显然带来了机能的损失。 在EX二000里,微软加大了对于INTERNET邮件的支撑,这就是STM文件的来源。MAPI格式是RPC以及2进制的,而STM是纯文本加之1些MIME编码格式,这样的区分使患上它们不可能存储在同1数据库里。因而EX二000中,微软开始使用EDB以及STM两个文件来分别保留两种格式的邮件。并且在两个文件之间树立了引用以及关联。对于于用户来讲,它的邮箱其实是逾越了EDB以及STM文件共同组成的。此外,需要注意的是,EDB文件中还保存着用户的邮箱结构。所以EDB文件更为首要。那末EDB以及STM是怎样协同工作的呢,咱们以几个情形来分析之。 情形1:用户使用OUTLOOK(MAPI)发送接管邮件 在该情形下,用户将邮件通过MAPI协定提交给数据库,直接被保留EDB文件中。当用户通过MAPI走访邮箱里的邮件时,如果被走访的邮件在EDB里,直接返回,如果在STM里(如外来邮件),则执行转换,将STM转换为EDB文件格式,再返回用户。 情形2:用户使用标准SMTP/POP三/IMAP四等协定走访 用户使用非MAPI协定提交的邮件,保留在STM文件里,然而因为EDB里有邮箱结构,STM没有,因而系统会把邮件的首要信息提掏出来,放在EDB里。当用户用MAPI提取邮件时,进程同上,当用户通过标准协定走访时,一样需要进行格式转换,转换为STM文件格式返回。 这些转换是在后台产生的。对于用户来讲是透明的。通过上面的描写,你会看到,这两个文件是紧密联络的缺1不可。所以,在任什么时候间咱们都不要单独操作这两个文件,它们是1个总体。同时也要注意的是,不管用户使用何方式走访邮箱,都需要向EDB文件要求邮箱结构信息,这是需要注意的。 4、LOG文件的重大作用 在论坛里时常会看到有人说我的硬盘怎样很快就没了,1看原来是日志文件弄的鬼,于是就有人删除了日志文件,乃至使用循环日志来强制减少日志,乃至有人提出这样的疑难,日志到底有甚么用,是否过剩的,那咱们来看看日志的重大作用。 对于于1个SG来讲,系统会发生1系列的日志,这些日志的扩大名为LOG,前缀1般是E00、E0一„„除了了这些连续的日志文件外,还有1些特殊的日志文件(res一.log,res二.log,e0x.chk))), 它们又有甚么用呢,咱们的管理员通常不喜欢备份这1操作,因而对于这些日志是痛恨不已经啊。那末微软在EXCHANGE数据库系统中引入日志的作用莫非真的是多此1举吗,咱们从下列几个方面来考察1下日志的作用: 一、作为1个企业级的邮件系统,必需要保证数据安全以及完全。必需能够面对于随时可能产生的意外灾害,把数据损失降低到最小。 二、必需提供高机能的邮件处理能力,对于数据库中的邮件的事务操作在完成后必需马上(或者是说当即)被在存储介质上(见前面的事务持久性说明) 三、灾害产生后,使用数据库备份恢复必需要返回到灾害产生前1刻的数据库状况(这是相当首要的~~) 现在咱们来更进1步的看1下,当用户要修改邮箱中的内容时,被修改的内容首先被提掏出来放到内存中,实际的修改是产生在内存里的,这是尽人皆知的,当修改完成后,这些内容必需被尽快写回存储介质,这样才表示1个事务胜利完成为了。 从事务的描写中咱们可以看到,事务是拥有原子特性的,为了保 证数据库的1致以及完全,事务必需全体胜利或者全体失败,如果事务失败,则必需回滚到事务开始的状况。而当邮件在内存中修改完成后,此时事务并无完成(为何呢,)由于1旦系统崩溃,这些修改就丢失了。所以要确保事务修改完成,必需尽快将修改写回到数据库里去(也就是硬盘上)。这也是事务的持久性请求。注意,咱们这里说的第1时间或者是尽快,是1个甚么样的概念。如果咱们直接修改EDB文件,因为EDB文件比较大,那末在硬盘上修改1个大文件,就 需要花费大量的时间在等待以及寻觅数据存储块上(见操作系统原理),当系统呈现高负载的忙碌状况时,这将是1个无比大的瓶颈。也就没法做到“尽快”了。那怎样办呢,所以数据库系统使用了日志,而日志通常很小(EXCHANGE的日志只有五MB),向这些文件写入修改结果是很快速的,因而当内存的修改完成后,这些结果就会当即写入日志中,以保证了事务的持久性。当做功写入日志后,该事务就胜利完成为了(现在在硬盘上了,不会由于当机丢失了)接下来,ESE引擎会在后台渐渐将这些日志里的修改记录写回真实的数据库里去(这对于用户来讲已经经不是那末首要了),这就是日志的第1个作用:确保事务在第1时间(尽量快的)保留到非易失 存储器上(提供了事务持久性支撑)。 依据上面的小视,咱们看到运行中的EXCHANGE数据库,是由3个部份组成的: * 内存中已经经完成处理尚无写会到日志里的内容(Dirt page) * 尚无写到数据库文件里的日志内容 * EDB以及STM数据库文件 对于于第1个部份,1旦掉电就回丢失的,是最不安全的。而对于于第2部份的内容,系统通过检查点文件(CHK)来标记哪些日志已经经被写入数据库了,而哪些尚无。CHK文件相似1个指针。咱们可以用“ESEUTIL /MK”来检查CHK文件里的内容,在该命令的输出中的checkpoint:0x8,26d1,29这样的东西就是检查点位置,它表示E0x0000八的日志的页面序号已经经被胜利写入数据库了。大家可以自己看看。。:) 前面提到过,EXCHANGE系统在呈现灾害时,应能恢复到灾害产生前的时刻的状况。这是无比首要的。但即便是最勤劳的管理员,也只能在指定的预定时间内做系统备份,而不可能时时刻刻的都在备份。那末在备份完成后到灾害产生以前的这段数据该如何维护呢,是否就任由它丢失呢,显然是不可能的。那谜底是甚么 呢,就是日志文件。前面咱们知道,任何对于数据库的更改都先写入日志里,再由日志写入数据库,这样咱们只要找到日志文件,就能够从新进行摹拟的操作来完成备份后的数据库文件的更改了,咱们举个例子来看看: 假定咱们在清晨三点完成为了1次FULLBACKUP,备份完成后,系统正常运行,到下昼四点的时候,系统骤然崩溃。管理员用清晨三点的数据恢复了数据库,那末从清晨三点到下昼四点这段时间的数据变更,就只能依赖于日志了。当完成数据库恢复后,系统会自动的跟踪到关联的日志文件,如果发现有比当前数据库还新的日志存在,系统就会自动的依照日志的顺序将更改写回到数据库中去。因而这样1来,从清晨三点到下昼四点的数据变更就被完全的恢复了。这就是日志的第2个作用:保证系统备份以及恢复的完全性。固然条件是没有使用循环日志~~(看到了吧,使用循环日志的危害是至关大的,比起你的数据来讲,多做几回备份不是没成心义的吧, 说到这里,有人可能要问,如果数据库以及日志同时破坏,如何办,谜底是:尽可能防止这样的情况产生。首先数据库破坏的概率要大于日志,此外,微软建议将数据库以及日志分别存储在不同的磁盘上,要是这样还会同时坏,那就没有办法了,呵呵。。对于于管理员对于日志文件的埋怨,公道的解决法子是按期做备份。 启用循环日志是不正确的做法,当启用循环日志后,1旦系统产生灾害恢复,将有可能不能将系统恢复到灾害产生时的状况,磁盘以及数据谁更首要,管理员自己要斟酌斟酌了。 5、ESE与IS服务的启动以及关闭 ESE引擎在加载数据库文件时,会去检查数据库文件的标志。这个标志保存了上次关闭数据库的状况,当状况为正常关闭说,系统将直接加载该数据库,当数据库标志为非正常关闭时,系统将先进行1个软恢复进程(你可以在事件里看到它),然后再加载。 那末,正常关闭以及非正常关闭有甚么区分呢,1个正常关闭的数据库,表示所有的日志信息都已经经正确的写入数据库了。反之1个非正常关闭的数据库,则表示至少有1部份数据未能正确的从日志写入数据库。要注意的是,非正常关闭的数据库其实不等于已经经被损坏的数据库。只表示有数据没有提交到数据库文件。 使用ESEUTIL/MH命令可以看到数据库的该状况,其中的STATE字段标记的就是这个状况,“CLEANSHUTDOWN”表示数据库正常关闭。当系统加载处于非正常关闭的数据库时,就会依据检查点文件肯定日志文件的位置,并做重放操作。当检查点文件丢失或 者破坏时,系统将从最先的日志文件开始处理。有的时候,系统不能自动的修复数据库,这时候咱们也能够用“ESEUTIL /R”命令手工的恢复处于非正常关闭状况的数据库。强烈举荐在系统异样关闭后执行此命令。在执行前最佳前肯定数据库文件的状况确切为非正常关闭,不要对于正常关闭的数据库执行该恢复命令~ 因而可知,EXCHANGE系统对于数据库有自我修复能力,能确保系统在产生意外后恢复正确的状况。但这其实不是说咱们可以随便的关闭系统,仍要UPS等必要的维护措施。 6、关于M盘 在EX二000里,有1个M盘的映照。这个映照只是提供开发人员通过API走访邮箱以及邮件用的。因而对于M盘的手工操作均可能带来数据库的损坏,请注意,此外,有1种观点认为备份了M盘就备份了邮件,这是绝对于过错的。M盘尽管是数据库的映照,但已经经去掉了良多的关联以及内在联络。因而备份M盘是不能恢复数据库的。所有的EXCHANGE管理员必需按规定当真的备份系统状况以及SG。切不可偷懒哦。 看了上面的描写,你还认为日志文件是过剩的吗,EXCHANGE管理员,赶紧取缔循环日志,树立健全备份轨制吧,为了你的前程, 学会备份操作吧。
/
本文档为【详析邮件服务器邮件存储和日志】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索