了解 Exchange 2010 页清零

 

适用于: Exchange Server 2010 SP2, Exchange Server 2010 SP3

上一次修改主题: 2016-11-28

默认情况下,大多数存储系统(文件系统和数据库)在删除数据时不会覆盖实际数据。这些系统会删除指向数据的指针,并将支持数据的页和块添加到可用列表。当重用这些页和块时,最终会删除数据。数据清零是一种机制,可对删除的数据写入零或二进制模式,以尝试使数据更加难以恢复。采取此操作是出于安全原因。数据清零在存储系统重用页和块之前进行。

Exchange 2010 SP1 中的页清零

在 Exchange Server 2010 的 Service Pack 1 (SP1) 中,默认情况下会打开页清零。没有机制可以禁用它。页清零操作会记录在事务日志文件中,从而以相似方式对数据库的所有副本进行页清零。也就是说,在活动数据库上对某个页清零会导致在被动数据库使用页清零日志记录重播事务日志之后,在被动数据库上对该页清零。没有机制可供可扩展存储引擎 (ESE) 用于使重复利用清零的页优先于分配新空间。分配顺序空间分配的表会有意跳过碎片化或清零的页,以便使用新的或空闲的顺序页。此方法可减少服务器的数据库 I/O 占用。

在 Exchange 2010 SP1 中,对数据库页清零的改进有助于在服务器执行清零功能时,减少对服务器的性能影响。关键改进包括:

  • 优化了存储和网络容量   可扩展存储引擎 (ESE) 会将页清零记录写入事务日志文件而不是记录整个页映像。此方法可减少日志写入 I/O、尽可能降低日志的容量占用,并降低将日志从主动副本装入被动副本的带宽要求。

  • 优化了数据库磁盘 I/O   在以前版本的 Exchange 2010 中,页清零只在备份或计划维护过程(如果进行了配置)中进行,并且会导致大量的数据库磁盘 I/O。在 Exchange 2010 SP1 中,默认情况下会进行页清零,并且主要在事务时间进行。对于大多数情况,清零在硬删除之后立即进行。此设计使数据库可以利用引擎的检查点深度功能,这可确保脏页在缓存中保持一段特定时间,因此在临近关闭时间进行的其他页更新不会导致更多数据库写入 I/O。得益于此设计,页清零不会产生显著数据库 I/O 影响,这便是为何默认情况下会启用该功能的原因所在。

ESE 数据库中的页清零实现

ESE 数据库使用页作为其存储单位,并且实现了页清零。ESE 页清零会对硬删除的记录一次性写入二进制模式。页清零模式特定于 ESE 引擎操作,对于运行时操作和维护操作有所不同。下表列出对应于特定运行时操作的填充模式。

每个 ESE 运行时操作的页清零填充模式

ESE 运行时操作 填充模式

替换

R

记录/长数值删除

D

释放的页空间

H

下表列出对应于在 ESE 后台数据库维护期间进行的特定操作的填充模式。

每个 ESE 后台数据库维护操作的页清零填充模式

ESE 后台数据库维护操作 填充模式

记录删除

D

长数值删除

L

部分使用的页的释放页空间

Z

未使用的页的释放页空间

U

后台数据库维护

后台数据库维护在默认情况下会进行配置,其是在后台对数据库持续进行校验和检查与扫描的过程。其主要功能是对数据库页进行校验和检查,不过也会在 Exchange 2010 存储崩溃后处理清理操作(清理由于崩溃而未进行的空间和清零记录及页)。对于每个数据库,后台数据库维护每秒大约处理 5 MB。如果需要优先及时进行页清零,则可以减少数据库大小,以确保在较短时间段(例如 24 小时)内针对崩溃恢复情况进行页清零。有关详细信息,请参阅新增的 Exchange 核心存储功能

后台数据库维护是一个持续的过程,因此没有事件与其开始和完成关联。可以使用以下性能计数器跟踪后台数据库维护完成的进度:

  • MSExchange 数据库 =>实例->数据库维护持续时间:此性能计数器指示自针对给定数据库上次完成维护以来经过的秒数。

ESE 数据库页清零的过程

下表讨论数据库删除方案以及页清零功能的执行时间。

ESE 后台数据库维护操作

数据库删除方案 对数据库数据清零的 ESE 过程和时间范围
  • 方案 1:禁用单个项目恢复,用户在“可恢复的项目”文件夹中清除项目。

  • 方案 2:禁用单个项目恢复,“可恢复的项目”保留期设置为零。

  • 方案 3:启用单个项目恢复,项目基于删除的项目保留期而过期。

一个异步线程对删除的数据写入二进制模式。此操作在数毫秒的记录删除过程中发生。如果存储过程崩溃,而异步清零工作仍未完成(或由于版本存储增长而取消了版本存储清理),则当后台数据库维护 (24x7) 处理该部分数据库时会完成清零。有关后台数据库维护的详细信息,请参阅新增的 Exchange 核心存储功能

视图方案:Outlook/Outlook Web Access 文件夹视图(例如会话视图)中的项目过期

当后台数据库维护 (24x7) 处理此部分数据库时会进行数据清零。

移动邮箱/删除邮箱方案:删除源邮箱(转储程序中的已删除邮箱过期)

当后台数据库维护 (24x7) 处理此部分数据库时会进行数据清零。

监视页清零行为

可以使用以下 ESE 性能计数器度量和监视页清零功能:

  • MSExchange 数据库->数据库维护清零的页:此性能计数器指示自调用性能计数器以来,由数据库引擎清零的页数。

  • MSExchange 数据库->数据库维护清零的页/秒:此性能计数器指示数据库引擎对页进行清零的速率。

注释注意:
若要了解如何启用这些计数器,请参阅如何启用扩展的 ESE 性能计数器

页清零是一种数据库维护功能,因此,与运行时事务的页清零和由于后台数据库维护导致的页清零相关的性能信息,都会包括在这些计数器中。

Exchange 2010 邮箱数据和页清零

只有邮箱数据库文件 (.edb) 具有针对页清零的设置。以下 Exchange 2010 邮箱数据类型没有针对页清零的设置:

  • 邮箱数据库事务日志 (.log)

    当删除事务日志(由于通过备份或循环日志记录而截断)时,没有过程可用于对支持日志文件的 NTFS 文件系统中的块进行清零。NTFS 可能会很快对新创建的日志重复利用该可用空间,但是无法保证会发生此情况。

  • 内容索引编录文件

    Exchange 2010 将 Exchange 搜索 (MSExchangeSearch) 用于搜索索引功能。搜索索引编录由存储在与邮箱数据库文件相同的卷上的几十个文件组成。当从邮箱数据库中硬删除邮件时,不会立即删除搜索编录中的关联内容。当 MS Search 将许多小编录文件卷影(或主合并)到单个较大文件中时,会进行内容删除。主合并完成后,会删除较小的编录文件。没有过程可用于对备份删除的编录文件的块进行清零。若要确保编录文件完全清零,请使用以下过程:

    1. 在受影响的服务器上停止 MSExchangeSearch 和 Microsoft Search (MSSearch) 进程。

    2. 删除每个受影响的数据库的编录目录(在所有副本上)。

    3. 重新启动 MSExchangeSearch 和 MSSearch 进程。

    4. 使用 NTFS 块清零工具对释放的块清零。

    注释注意:
    删除内容索引编录文件会严重影响 Exchange 2010 服务器上的客户端用户体验。Outlook Web App 和 Exchange ActiveSync 服务器搜索会中断,直至内容索引通过对每个数据库重新爬网来重建编录。此重建可能需要几天到几周来完成。

 © 2010 Microsoft Corporation。保留所有权利。