关于Exchange循环日志和备份
来源:asp之家 时间:2010-02-22 19:11:00
很多Exchange管理员都碰到一个头痛的问题:日志文件霸占磁盘空间。
磁盘空间是有限的;但是Exchange只要在运行,日志文件的产生就是无限的,虽然每个只有5M大小,但是日志文件的产量很惊人的,大部分的磁盘空间都被日志文件霸占了;微软在设计Exchange的时候,提供了一个“启用循环日志”功能,启用这个功能后,系统只会产生5个5M大小的日志文件,循环更替使用,日志文件霸占磁盘空间的问题是被解决了,不过从这一刻开始,你就向上帝祈求吧,祈求你的Exchange数据库在你的任职期间一路平安。如果有个三长两短,mount不上去的时候,你就找个地方哭吧!因为你有一段时间内的邮件丢了。
我之这样肯定说丢了邮件是因为:
第一,我就不相信你有做到时时备份;
第二,除非你很幸运,你上次备份到现在,你的Exchange没有处理过一封邮件。
第三,数据库修复或恢复是需要日志文件的,你那5个循环日志能帮你多少?
就凭借以上三个原因,我绝对是举双手双脚建议你关闭“循环日志”功能的。
依据一、我自己的教训与经验;
依据二、微软官方对Exchange数据库的说明。
具体的原因,就请你看下面的内容,以下内容是根据微软官方资料说明以及自己对Exchange Server的管理经验整理出来的,供各位参考,以便更清楚的认识Exchange Server的存储系统,以及各部分的作用。
一、IS服务和ESE的层次关系
IS服务我们一定很了解了,它是Exchange服务器中重要的服务之一,它控制着对MS(Mail Store)和PF(public Folder)的存储操作请求,如果这个服务没有启动,Exchange服务器就是名存实亡。我们也知道,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(持久的):当事务一旦提交,所做的更改必须存储到稳定的介质上,防止系统失败导致的数据库不一致。(此点非常重要!)
Atomic这个词,我查字典是“原子的;原子能的;极微的”解释,好像这里用这样翻译很不大对劲,感觉解释为“绝对的”比较好懂,^0^寡人英国拉屎比较烂!
二、EXCHANGE 2000/2003存储系统的新特点
在EX5.5中,ESE的版本为ESE97,而在EX2000/2003里,ESE版本已经升级ESE98了。ESE引起在以下方面得到了改进:
* I/O性能进一步提高和优化;
* 对日志文件增加了计算校验操作;
* 提高了ESEUTIL等工具的维护速度;
而IS也在以下方面有了更新:
* 在每个SERVER上提供最多5个SG(Storage Group)支持;
* 数据库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是怎么协同工作的呢?我们以几个情景来分析之。
情景一:用户使用OUTLOOK(MAPI)发送接收邮件
在该情景下,用户将邮件通过MAPI协议提交给数据库,直接被保存EDB文件中。当用户通过MAPI访问邮箱里的邮件时,如果被访问的邮件在EDB里,直接返回,如果在STM里(如外来邮件),则执行转换,将STM转换为EDB文件格式,再返回用户。
情景二:用户使用标准SMTP/POP3/IMAP4等协议访问
用户使用非MAPI协议提交的邮件,内容保存在STM文件里,但是由于EDB里有邮箱结构,STM没有,因此系统会把邮件的重要信息提取出来,放在EDB里。当用户用MAPI提取邮件时,过程同上,当用户通过标准协议访问时,同样需要进行格式转换,转换为STM文件格式返回。
这些转换是在后台发生的。对用户来说是透明的。通过上面的描述,你会看到,这两个文件是紧密联系的缺一不可。所以,在任何时间我们都不要单独操作这两个文件,它们是一个整体。同时也要注意的是,无论用户使用何方式访问邮箱,都需要向EDB文件请求邮箱结构信息,这是需要注意的。
看完上面两个情景解释,你对默认的“priv1.edb”、“priv1.stm”两个数据文件应该有区分和了解吧?!寡人刚接触Exchange的时候对这两个文件的区别也很感冒!