Ex2003学习(七),数据库和数据库碎片整理

Exchange2003数据库文件包含了:检查点文件,日志文件,数据库文件,stm文件,公用文件夹存储,tmp.edb,res1.log和res2.log(用来保留10M的预留空间),其中Tmp.edb:这是用于处理事务的临时工作区,Tmp.edb包含临时信息,当存储组中的所有存储被卸除或者ExchangeInformationStore服务停止时,将删除这些临时信息。

image

在Exchange2003企业版最多可以创建4个存储组,每个存储组可以创建4个邮箱存储和一个公用文件夹存储,他们共享一组Exchange日志(因为他们的日志文件都指向了同一个位置)。如下图所示

image

存储组的日志指向了D:\MDBDATA

image

当我要修改邮箱中的内容时,被修改的内容首先被读取出来放到内存中,然后写入日志文件,最后日志文件再写入数据库,随着我们操作的增加日志文件也开发疯涨,数据库文件也逐渐变大。对于日志文件大量消耗硬盘空间,唯一合理的解决办法是:定期的做针对StorageGroup的全备份或增量备份。因为ExchangeServer会在全备份或增量备份完成后把这次备份之前产生的Log文件全部删除。很多管理员手动的删除日志文件,或者启动“循环日志”来减少对硬盘空间的消耗,这都是不正确的做法。残缺不全的日志文件会使系统在进行备份恢复的时候无法还原到最近的状态。如果你的系统是一周做一次全备份,而你碰巧又在备份后删除了一些日志文件,那么你就有可能在需要恢复的时候丢失备份以后的数据。记住,数据总是比磁盘空间更宝贵。

具体概述请查看链接:http://www.51cto.com/html/2005/1206/13190.htm(讲述了数据为什么先写入日志再写入数据库和日志恢复数据库重要性)

image

Exchange数据库碎片整理:分为在线整理和离线整理。在线整理通过查询活动目录来确定store中是否有被删除的邮箱,物理的删除所有超过保留时间的邮件和邮箱,执行在线碎片整理。在线整理可以回收数据库的空间(比如原来数据库大小为10G,然后回收了1G,数据库本身的大小不变,但是有1G空间可以再次使用)。在线整理Exchange服务器会根据设置自动进行,在整理期间用户仍然可以访问,离线整理需要我们先把数据库卸载(dismount)然后进行手动碎片整理。每天在线整理完数据库都会产生一个应用日志,日志ID1221

image

下图为在线整理日志文件,事件ID:1221,显示当前数据库有1M可用空间

image

下图为安装完Exchange后默认设置的在线整理时间(凌晨的1点到5点)

image

离线碎片整理:什么时候进行离线碎片整理?上面我们知道查看应用程序日志ID1221可以知道数据库有多少空白空间可以使用,假设你现在的数据库大小为10GB,然后查看日志ID1221发现有7GB的空间可以使用,其实这7GB空间不是坏事,因为这个7GB空间会再次被利用,直到用完了这可用的7GB空间后,数据库才会继续变大,但是个人感觉这个比例太大,你可以考虑离线碎片整理,整理后数据库会变小,此外如果你的硬盘空间已经不够用了,那么你也可以考虑离线碎片整理,来改变数据库大小。有的朋友要问了为什么会有这么多的空白空间呢?比如你以前公司有100个邮箱,现在删除了50个邮箱,这些邮箱被删除了,原本应该数据库空间应该立即减小,但是因为数据库文件被Exchange进程锁定,在锁定的过程中,数据库大小是不会改变的,所以在线整理也只不过把可用空间进行释放,而不能改变数据库的大小,而离线整理因为卸载了数据库,所以可以改变数据库的大小。

在进行离线碎片整理之前,对所操作的Store进行全备份,对数据库进行碎片整理时所需的可用磁盘空间等于要处理的数据库大小的110%。

离线碎片整理方法:首先卸载邮箱存储

image

卸载此存储将导致所有用户都无法访问它,选择:“是”

image

卸载中

image

卸载完成后视图

image

接下我们要使用命令eseutil加上参数对指定的数据库进行离线碎片整理,eseutil是安装完Exchange的一个工具在bin目录下,所有我们要先进入bin目录

image

输入eseutil/dd:\MDBDATA\priv1.edb/td:\MDBDATA\priv-new.edb/o/p参数说明:/d(表示要对数据库进行碎片整理)后面跟上要整理的数据库路径,/t(表示不对于现在的数据库直接进行整理,而是对数据库进行复制后再整理生成一个新的数据库,我起名为priv-new.edb),/O,/P(意思是不对数据库进行直接装载)

image

整理中

image

我的数据库很小13秒就ok了

image

生成了新的priv-new.edb和priv-new.STM文件(因为STM文件是跟数据库息息相关的,所以自动生成了STM文件)

image

在把新的数据库文件Mount之前,需要确保其完整性,我们要执行如下的命令eseutil/gd:\MDBDATA\priv―new.edb/sd:\MDBDATA\priv-new.STM参数说明:/g(表示对数据库进行一致性检查),/s(设置流文件名,即/S后加上STM文件的位置)

image

然后把文件改名。把旧的edb文件和stm文件从d:\MDBDATA文件夹中移走。把执行过碎片整理的临时文件改为同旧的edb文件和stm文件相同的名字。然后Mount数据库。如下图,我把旧的移动到了桌面,然后把priv-new改名为了priv1.edb,然后装载成功了

image

注意:如果Mount数据库失败,最快的恢复办法就是把旧的edb文件和stm文件再复制到mdbdata文件夹。碎片整理过程中,旧的edb文件和stm文件没有被更改,即使碎片整理失败,也可以恢复到defrag之前的状态。

参考链接http://wenku.baidu.com/view/6a0abd2b4b73f242336c5f7f.html(该链接说明了如何进行碎片整理)

参考链接:http://blog.tianya.cn/blogger/post_show.asp?BlogID=335311&PostID=8992016(该链接说明了参数的各项含义)

最后我也是看视频然后参考资料,如果以上有不对的地方还请各位博友指出,不甚感激!

你可能感兴趣的:(target,blank,碎片整理,数据库文件)