I was asked a question yesterday that I didn’t know the answer to, so I put some feelers out and found the answer. The final reference doc is this one (http://technet.microsoft.com/en-us/library/aa998379.aspx)
What is new to me is 2. below. I didn’t realise that when a backup is running, data is still accepted and written to the edb. I thought the data stayed in memory as well as the logs. As they say, every day is a school day!
Basically, when you start a Full Exchange 2003 Backup the following happens
- The backup agent establishes communication and initializes a backup with the MSExchangeIS service on the target Exchange server. (In Exchange 5.5, the backup was established with the Microsoft Exchange System Attendant (MSExchangeSA) service process.)
- The checkpoint is frozen. New changes will still be accepted and written to the database files, but the checkpoint will not move again until the backup ends.
- The first log that must be copied to tape with the backup is recorded in the database header in the Current Full Backup section. This might not be the current checkpoint log, depending on the backup status of other databases in the storage group.
- Copying the database files to tape begins. Page changes made to the database during backup that cannot be reconstructed fully from the log files are not flushed to the disk during backup.
If you run Eseutil /MH on a database that has been restored from an online backup, but on which recovery has not yet run, you will see the mini header information displayed as the Patch Current Full Backup section.
The current Enn.log file is forced to roll over immediately after all database files have been copied to tape. This happens regardless of how full the log is.
The reason that the log is forced to roll over is that log files cannot be backed up while they are open. The log needs to be on tape, because it contains operations applicable to the databases that were just backed up. Therefore, the log is closed so that it can be appended to the tape. You will never see a log file called Enn.log in an online backup set. Only closed, numbered log files are backed up.
- The range of logs needed to reliably recover the backup are copied to tape. These will include at least all the logs starting from the frozen checkpoint up through the log that was just forced to close.
- Log files that no database in the storage group needs to roll forward beyond the backup logs are truncated (deleted from disk). The headers of all the databases in a storage group keep track of the last backup time for each database, and also which logs were required. If any database in a storage group is dismounted, its header will not be read and Exchange will make no calculations about which log files can be safely deleted.
- There are two factors that affect which log files will be truncated after a backup:
- Databases can be backed up individually.
- Not all databases in the storage group may be mounted at the time the backup occurs.
If you back up some databases but not others in a storage group, only the transaction logs not needed by the database least recently backed up will be truncated. This means that if you never back up one particular database in a storage group, no transaction logs will ever be deleted. If you have two databases in a storage group, and you back up one of them on Tuesday and the other on Thursday, the Thursday backup will truncate logs only up to Tuesday. If you then back up the Tuesday database on Friday, the logs from Thursday will be truncated.
- The Previous Full Backup section of the database header is updated to reflect the time and log range of the backup that just completed.