关于Exchange循环日志和备份(2)
来源:asp之家 发布时间:2010-02-22 19:11:00
四、LOG文件的重大作用
前面提到过了,他是霸占磁盘空间的罪魁祸首,有些管理员一看日志文件很多的时候,于是开始删除日志文件,删到后来觉得烦琐了,于是就“启用循环日志”来减少烦琐的工作。我前面说了,你启用这个功能的话,你就可以向上帝祈求了...
很多刚接触Exchange的管理员会提出疑问:日志文件到底有什么用?是不是多余的?那我们来看看日志的重大作用。
对于一个SG来说,系统会产生一系列的日志,每个大小为5M,这些日志的扩展名为LOG,前缀一般是E00、E01……除了这些连续的日志文件外,还有一些特殊的日志文件(res1.log,res2.log,e0x.chk),它们又有什么用呢?如果对Exchange数据做完全备份(Full Backup)的话,备份后日志文件会自动删除的,然后重新产生。老实说,十个管理员有九个对备份工作都怕怕,因此对这些日志是痛恨不已啊。我自己也做系统管理,对数据备份这个麻烦的工作的确很感冒,但是说到最后:备份工作必须做!不得不做!话题好像扯远了,呵呵...
那么微软在Exchange数据库系统中引入日志到底有什么作用呢?我们从以下几个方面来考察一下日志的作用:
1、作为一个企业级的邮件系统,必须要保证数据安全和完整。必须能够面对随时可能发生的意外灾难,把数据损失降低到最小。
2、必须提供高性能的邮件处理能力,对数据库中的邮件的事务操作在完成后必须马上(或是说立即)被记录在存储介质上(见前面的事务持久性说明)
3、灾难发生后,使用数据库备份恢复必须要返回到灾难发生前一刻的数据库状态(这是至关重要的!)
现在我们来更进一步的看一下,当用户要修改邮箱中的内容时,被修改的内容首先被提取出来放到内存中,实际的修改是发生在内存里的,这是众所周知的,当修改完成后,这些内容必须被尽快写回存储介质,这样才表示一个事务成功完成了。
从事务的描述中我们可以看到,事务是具有Atomic特性的,为了保证数据库的一致和完整,事务必须全部成功或全部失败,如果事务失败,则必须回滚到事务开始的状态。而当邮件在内存中修改完成后,此时事务并没有完成,因为还没有写到磁盘上。一旦系统崩溃,这些修改就丢失了。所以要确保事务修改完成,必须尽快将修改写回到数据库里去(也就是硬盘上),这也是事务的持久性要求。
注意,这里说的第一时间或是尽快,是一个什么样的概念呢?如果我们直接修改EDB文件,由于EDB文件比较大,那么在硬盘上修改一个大文件,就需要花费大量的时间在等待和寻找数据存储块上(学过操作系统原理的人应该知道的),当系统出现高负载的繁忙状态时,这将是一个非常大的瓶颈,也就无法做到“尽快”了。那怎么办呢?所以数据库系统使用了日志文件,而日志文件只有5MB大小,向这些文件写入修改肯定是很快速的,因此当内存的修改完成后,这些结果就会立即写入日志中,以保证了事务的持久性。当成功写入日志后,该事务就成功完成了(现在在硬盘上了,不会因为当机丢失了)接下来,ESE引擎会在后台慢慢将这些日志里的修改记录写回真正的数据库里去(这对用户来说已经不是那么重要了,这时候可能你的邮件都已经到对方了),这就是日志的第一个作用:确保事务在第一时间(尽可能快的)保存到非易失存储器上(磁盘上),提供了事务持久性支持。我自己是变相的把他理解为邮件数据缓存的,不知道这样是否科学,呵呵!
根据上面的描述,我们看到运行中的Exchange数据库,是由三个部分组成的:
* 内存中已经完成处理还没有写会到日志里的内容(Dirt page)
* 还没有写到数据库文件里的日志内容
* EDB和STM数据库文件
对于第一个部分(内存中的),一旦掉电就会丢失的,是最不安全的。而对于第二部分的内容,系统通过检查点文件(CHK)来标记哪些日志已经被写入数据库了,而哪些还没有。CHK文件类似一个指针。我们可以用“ESEUTIL /MK”来检查CHK文件里的内容,在该命令的输出中的checkpoint:<0x8,26d1,29>这样的东西就是检查点位置,它表示E0x00008的日志的页面序号已经被成功写入数据库了。大家可以自己看看。。:)
前面提到过,Exchange系统在出现灾难时,应该能恢复到灾难发生前时刻的状态。这是非常重要的。我在最前面就说过了“我就不相信你有做到时时备份”,但即使是最勤快的管理员,也只能在指定的预定时间内做数据备份。那么在备份完成后到灾难发生之前的这段数据该如何保护呢?是不是就任由它丢失呢?显然是不可能的。那答案是什么呢?就是日志文件。从前面对日志功能的描述中知道,任何对数据库的更改都先写入日志里,再由日志写入数据库,这样我们只要找到日志文件,就可以重新进行模拟的操作来完成备份后的数据库文件的更改了,举个例子来看先:
假设我在凌晨3点完成了一次FULL BACKUP,备份完成后,系统正常运行,到下午4点的时候,系统突然崩溃。我用凌晨3点的数据恢复了数据库,那么从凌晨3点到下午4点这段时间的数据哪里去找呢?这个时候就只能依赖于日志了。当完成数据库恢复后,系统会自动的跟踪到关联的日志文件,如果发现有比当前数据库还新的日志存在,系统就会自动的按照日志的顺序将更改写回到数据库中去。因此这样一来,从凌晨3点到下午4点的数据变更就被完整的恢复了。这就是日志的第二个作用:保证系统备份和恢复的完整性。当然前提是没有使用循环日志!
看到了吧,启用循环日志的危害是多么的大啊?备份是多么的重要啊?...如果你看到这里还执迷不悟启用循环日志的话,寡人可就要骂你#%@¥*#%!@)$%^&*(%…
说到这里,有人可能要问,如果数据库和日志同时损坏,如何办?答案是:你赶紧去买体育彩票吧,呵呵!我在这里也只能说“尽量避免这样的情况发生”。首先日志文件损坏的几率要远远低于数据库;第二,微软建议将数据库和日志分别存储在不同的磁盘上;第三,我是绝对相信你的Exchange服务器用了RAID的!要是这样还会同时坏,那就去买体育彩票吧,呵呵...对于管理员对日志文件的抱怨,合理的解决方法是定期做备份,虽然麻烦,但是公司付薪水给你就是让你做这个事情的。寡人再强调一次:启用循环日志是冒险的做法,当启用循环日志后,一旦系统或者数据库发生灾难,想要恢复时,你就抱头后悔或者跺脚吧!磁盘和数据谁更重要,相信你这位做系统管理的,应该很清楚的。
猜你喜欢
- asp之家注:对于初次接触服务器的站长或网管朋友,相信一定都为PHP,mysql的配置烦扰过,因为配置这些确实很烦琐,他不像配置asp环境那
- 由中国互联网协会、中国投资网联合主办的2009WEBGAME与SNS社区运营大会于11月7日圆满闭幕,经过三个多月的游戏征集、系列生态采访和
- 简介:谷歌最新实时沟通平台Google Wave将对我们的互联网世界带来怎样的革新?过去一周,谷歌发出第一批公测邀请函,邀请用户体验其最新款
- B2B电子商务网站优化已经成为B2B网站网络营销策略中最基本的内容,一个整体优化状况不好的B2B电子商务平台,不仅用户发布的供求信息难为潜在
- 写点这些日子的心得吧。。。既然是一个团队,团队每个成员的想法也是非常重要的。凌晨了,睡不着,想了很多有关工作和生活的事儿。我记得以前有朋友问
- 非主流闪图一直是“美图秀秀[点击下载]”软件的重点功能之一,操作简单,动感十足,深受非主流一族的喜爱
- Godaddy主机用户怎样在现有的托管帐户里创建Google站长工具呢?操作如下:首先. 登陆你的Account Manager.其次. 在
- 百度地图推出地图移动版,首个Windows Mobile操作系统客户端于18日隆重上线(http://mo.baidu.com/map/)。
- 本期教程,笔者教大家如何添加UCenter管理员。一、分清概念UCenter后台登陆和Discuz!论坛登录账号混淆。UCenter后台初次
- 碰到CC攻击请把下面的代码放做成conn.asp,原理大家可以自己研究<% DimfsoObject DimtsObject dimf
- POP3(Post Office Protocol 3)即邮局协议的第3个版本,它规定怎样将个人计算机连接到互联网上的邮件服务器和下载电子邮
- 受ASP * 页的吸引,笔者决定用Dreamweaver做一个ASP格式的学校主页。然而,当笔者将Web服务器中Htm格式的网页换成新做的A
- 10月16日消息,据国外媒体报道,知名科技博客TechCrunch今天发表一篇文章,放出了Chrome OS系统的下载链接。有人下载了该文件
- Inside Facebook博客曾发布了一篇名为“我有25万名用户,但是那又怎样呢?”的帖子,其作者提到了一个在Facebook上拥有40
- 百度老总李彦宏在人前总是显得比较低调。在人们的印象当中,他并不擅长发表煽情演讲,也很少在媒体面前谈论自己的“长远目标&a
- 那为什么同样都是学SEO的,有的人就可以一个月赚好几万,有的人却只能赚个三五千呢?其实知识都是一样的知识,SEO的技术很多的seoer都懂,
- 如果我们不想让游客发表评论,减少网站非法信息的话,可以通过相关操作实现禁止1. 在点击后台系统设置 → 系统基本参数 → 添加新变量变量名为
- Google刚刚发布了一款名为Page Speed的Firefox/Firebug扩展。这是一款能帮助用户改善网站性能的工具。在运行它之后,
- 腾讯科技讯(乐天)5月21日消息,360公司今日宣布正式推出全球首款“木马防火墙”,宣称可有效解决传统安全软件查杀木马的滞后性缺陷,为网民减