做过旧版Exchange向Exchange 2010迁移的项目的朋友可能遇到过迁移后数据库变大几倍的情况,比如原来Exchange 2003里的数据库是10G,迁移到Exchange 2010后就变成了30G了,什么原因呢?
我个人认为很有可能是旧版Exchange使用的是Single Instance Storage (SIS)方式,什么是SIS,举个例子,当一封邮件有5个收件人,在数据库中只有一条记录,并通过指针来指向各个收件人。收件人通过这个指针建立的联系来查看邮件。即使其中一个收件人从自己邮箱中删除这封邮件,这封邮件的记录还在数据库中保留,除非他4个用户也彻底删除这封邮件。下面这个KB有相关介绍:
移动邮箱时交换单实例存储和存储其效果
http://support.microsoft.com/kb/175481当初使用这个存储方式的主要原因是出于节省数据库空间的考虑。而随着存储成本的降低,Exchange 2010则已经放弃了这个使用多年的存储架构,也就是放弃了SIS。也就是说,这封邮件会简单的复制多份到对应的收件人的邮箱中。所以,数据库增大了。
放弃SIS的另一个重要的原因是为了性能的考量。下面的文章详细介绍了什么Exchange 2010 放弃了SIS:
Dude, Where's My Single Instance?
http://msexchangeteam.com/archive/2010/02/22/454051.aspx