All databases have internal structures that must be maintained in some way, and the Exchange Server Store is no different. Because Exchange is designed to be highly available with as little downtime as possible, the Store performs as many maintenance operations as possible as online background tasks. These tasks are performed each night to ensure logical consistency within the mailbox and public store databases and to remove unwanted data. Let's review the tasks that the Store undertakes in nightly background maintenance to see why some of these tasks are so important to the efficient operation of an Exchange server.
Night Moves
As Table 1 shows, the Store performs 11 background maintenance tasks each night. If the Store can't complete all the tasks during the allocated time, it finishes the last running task and records where processing stopped so that it can pick up from that point in the next maintenance period. Actually, the Store executes the first 10 tasks listed in Table 1, then calls the Extensible Storage Engine (ESE) database engine to perform the last task: Store defragmentation. The Store must complete at least one of the 10 tasks before calling ESE. In concept, this division of tasks between the Store and ESE is similar to the way in which the Isinteg and Eseutil utilities operate; Isinteg works with the structure of tables and indexes into which the Store assembles raw database pages, and Eseutil deals with database pages, at a lower level. . . .