Applies to: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007
Topic Last Modified: 2009-05-26

The Volume Shadow Copy Service (VSS) in Windows Server 2008 is used by applications to back up and restore Microsoft Exchange Server 2007. VSS provides an infrastructure that enables third-party storage management programs, business programs, and hardware providers to cooperate in creating and managing shadow copies. Solutions based on this infrastructure can use shadow, or mirrored, copies to back up and restore one or more Exchange 2007 databases.

VSS coordinates communication between Requestors (backup applications), Writers (applications in Windows such as Exchange 2007), and Providers (system components, software components, or hardware components that create the shadow copies). To use VSS to back up Exchange 2007, a backup program must include an Exchange 2007-aware VSS Requestor. The Windows Server Backup program that is part of Windows Server 2008 does not include an Exchange-aware VSS Requestor.

However,Exchange 2007 Service Pack 2 (SP2) includes a new plug-in that enables you to make Volume Shadow Copy Service (VSS)-based backups of Exchange data using Windows Server Backup in Windows Server 2008. You can use Windows Server Backup to back up and restore your Exchange 2007 SP2 databases. A thorough understanding of what needs to be backed up, where to store backups, and how to restore backups is key to being an effective Exchange administrator. For more information about what needs to be backed up in Exchange 2007, see Using Windows Server Backup to Back Up and Restore Exchange Data.

Note:
The Windows Server Backup program does not support the Exchange 2007 Extensible Storage Engine streaming APIs. It cannot be used to take streaming ESE backups of Exchange 2007.

Exchange-aware VSS backups are supported for both active storage groups and passive storage groups. The Exchange passive copy backup solution is a VSS-only solution. This solution is implemented by the Exchange Replica VSS Writer that is part of the Replication service. Streaming backups are only supported from active storage groups. Therefore, you cannot use the streaming backup APIs to back up a replica database. To back up a replica database, a VSS-aware backup program must be used together with the VSS Requestor for the Exchange Writer.

Note:
The Windows Server Backup plug-in in Exchange 2007 SP2 does not support the Exchange Replica VSS Writer that is part of the Replication service; as a result, it cannot be used to backup passive copies of storage groups.

Exchange 2007 supports running two separate VSS backup operations against the same Exchange server. Also, the Exchange 2007 Writer lets you restore Exchange data to an alternative location. This includes the Recovery Storage Group. The Exchange 2007 Writer also lets you restore database files to a folder that is not associated with a storage group. Then, you can use the JET database engine to replay transaction log files into the database to bring the database to a consistent and mountable state.

Note:
In Microsoft Exchange Server 2003, you can use the streaming backup APIs to run two backups at the same time against two different storage groups. However, you cannot use VSS to perform these operations. In Exchange 2003, you cannot use VSS to back up a second storage group until after the backup for the first storage group finishes. Also, the Exchange 2003 Writer does not allow you to restore Exchange data to a path other than the original path.

To comply with Exchange 2007, VSS-based backup programs must meet these basic requirements:

These requirements help ensure the integrity and recoverability of shadow copy backups. If these requirements are not met, Microsoft Customer Service and Support (CSS) will consider the backup solution to be outside the Exchange VSS framework. In this case, Microsoft CSS cannot troubleshoot backup or restore issues. We recommend that you contact your backup solution vendor to verify that the backup program fulfills the requirements that are listed in this topic. For more details about these requirements, see "Exchange 2007 VSS Requirements" later in this topic.

Note:
The vendor of the third-party backup program is the primary support provider for any backup or recovery issue that you may experience. Microsoft CSS can help diagnose or troubleshoot issues that you may experience with Exchange databases or transaction log files. However, Microsoft CSS is limited to helping you recover the database files and transaction log files that are available in your Exchange environment.

For more information about how VSS-based solutions are supported by Microsoft CSS, see Microsoft Knowledge Base article 841696, Overview of the Microsoft third-party storage software solutions support policy.

For More Information

Exchange 2007 VSS Requirements

The following sections describe the Exchange 2007 requirements that any shadow copy backup programs must follow to help ensure the integrity and recoverability of Exchange databases. These sections list specific Application events that help indicate whether the backup programs meet Exchange requirements. Backup programs and the Exchange server may log other events that are associated with the backup and restore process. To verify compliance with Exchange VSS requirements, confirm that the events are logged during the backup and restore operations.

Currently, there is no certification program for any third-party backup solution running on Exchange. Compliance with VSS helps to ensure the integrity and recoverability of shadow copy backups. However, it does not guarantee the performance or reliability of the third-party solution.

The Exchange Writer Must Be Used to Back Up the Files

The Exchange database files, transaction log files, and checkpoint files must be backed up exclusively through the Exchange Writer. The following events are logged in the Application log if the Exchange Writer is used during shadow copy backups:

Event Type: Information

Event Source: ESE

Event Category: ShadowCopy

Event ID: 2005

User: N/A

Computer: ServerName.contoso.com

General: Information Store (2884) Shadow copy instance 5 starting. This will be a backup-type shadow copy.

Note:
In this event, backup type represents the kind of backup that you are performing. For example, backup type is Full, Copy, Incremental, or Differential.

Event Type: Information

Event Source: MSExchangeIS

Event Category: Exchange VSS Writer

Event ID: 9608

User: N/A

Computer: ServerName.contoso.com

General: Exchange VSS Writer (instance GUID) has prepared for Snapshot successfully.

Event Type: Information

Event Source: MSExchangeIS

Event Category: Exchange VSS Writer

Event ID: 9610

User: N/A

Computer: ServerName.contoso.com

General: Exchange VSS Writer (instance GUID) has frozen the storage group(s) successfully.

Event Type: Information

Event Source: MSExchangeIS

Event Category: Exchange VSS Writer

Event ID: 9612

User: N/A

Computer: ServerName.contoso.com

General: Exchange VSS Writer (instance GUID) has thawed the storage group(s) successfully.

The Backup Program Must Validate the Integrity of the Shadow Copy Backup Set

We recommend that the backup program validates the integrity of the shadow copy backup set before the backup program notifies Exchange that the backup has completed successfully. We recommend this for the following reason.

After a successful backup, Exchange performs the following two operations:

  • Exchange updates the headers of the backed up databases to indicate the last successful backup time.

  • Exchange truncates the transaction logs. In this scenario, Exchange removes the transaction log files that are no longer required to roll forward from the last successful backup.  

Therefore, if a backup program postpones integrity verification until after Exchange has performed these tasks, you must take special care to preserve the last verified backup together with copies of all the transaction log files that are required by that particular backup. Although the backup may have already been reported as successful to Exchange, you should not rely on the backup until after the backup program has successfully completed the integrity verification operation.

For more information about how to perform an integrity check and about how to determine which database files and transaction log files must be preserved, see "Integrity Verification for VSS Backups" later in this topic.

The Exchange Writer Must Be Used for Any Restore Operations to the Original Location

The Exchange Writer must be used exclusively for any restore operations that restore Exchange-related files to their original locations. The original location is an Exchange server that has the same server name and the same file path as the Exchange server from which the VSS backup was taken.

The Exchange Writer logs the following events in the Application log during a shadow copy restore operation:

Event Type: Information

Event Source: MSExchangeIS

Event Category: Exchange VSS Writer

Event ID: 9620

User: N/A

Computer: ServerName.contoso.com

General: Exchange VSS Writer (instance GUID) has processed pre-restore events successfully.

Event Type: Information

Event Source: MSExchangeIS

Event Category: Exchange VSS Writer

Event ID: 9618

User: N/A

Computer: ServerName.contoso.com

General: Exchange VSS Writer (instance GUID) has processed post-restore events successfully.

Integrity Verification for VSS Backups

When you use the Exchange streaming backup API to back up a database, each page in the database is read in turn, and the checksum integrity of each page is verified during the backup process. The checksum integrity of transaction log files is also verified before the transaction log files are backed up.

However, during a VSS backup, there is no opportunity for Exchange to read each database file and to verify the checksum integrity. Therefore, database and transaction log file integrity must be verified by the backup program. You can run the Eseutil command to perform these verification checks.

If you do not perform checksum-verification of VSS backups, a damaged page could remain undetected in the database. The damaged page could eventually become present in all available backups. The only way to recover from this scenario is to repair the database. Database repairs may require extensive downtime and result in some data loss. You will lose the data that is on each damaged database page.

However, if you verify that the last VSS backup contains all good pages, you can purge damaged pages from the database. To do this, restore the verified backup and roll the backup forward by using the transaction logs that were created after the good backup occurred. The downtime that is required for this operation is generally much less than for a database repair operation. Also, you can perform this kind of recovery operation without data loss. Therefore, you should not consider a VSS backup to be successful until all the files in the backup have been checksum-verified.

We recommend that you use the following two rules to verify backup integrity:

  • You must always retain an integrity-verified copy of the database files. An integrity-verified backup is one in which page checksum verification has completed on the database file(s) in the backup set.

  • You must back up all transaction log files that are required to recover the most recent integrity-verified database file. Additionally, you must verify the checksum-level integrity of the transaction log files.

The required transaction logs include, at a minimum, the inclusive range of log files that are listed in the Log Required field in the header of each database file that is contained in the last verified backup. If these log files are not available, the database will not be mountable after it is restored.

Important:
These requirements apply to the last integrity-verified backup and not to the most recent backup. Until the most recent backup has passed checksum verification, it is not considered to be a valid backup.

Optionally, you may also retain the additional transaction log files that are required to completely roll the database forward after you restore a database. These are all the transaction log files in an unbroken sequence, starting from the lowest Log Required file up to the most recently-created transaction log that has been purged from the Exchange server. Examples and explanations of these files appear below.

Preserving transaction log files beyond the ones that are listed in the Log Required range(s) is optional. However, it is only optional in the sense that retaining the log files is not strictly required to successfully restore and mount a backed up database. However, if you do not retain all the appropriate log files, restoring from backup will cause the loss of all changes in the database that occurred after the backup was taken.

We strongly recommend that you retain the transaction log files that are required to restore and mount a backed up database as well as all subsequent transaction log files that are required to roll the database forward.

To Determine Which Transaction Log Files Are Required

If an Exchange database is backed up while it is online, at least one transaction log file will always be backed up with it. This behavior occurs regardless of whether you use the streaming backup API or the VSS backup API.

After you restore an online backup, information from the transaction logs must be applied to the database. This operation is known as replaying the transaction log files. The Log Required field of each database header records the sequence (generation) numbers of the range of transaction log files that must be replayed into the database.

If the Log Required field displays 0-0, the database is mountable without having to replay any additional transaction log data. The only time that the Log Required value is 0-0 is after a database is brought into a clean-shutdown state. While a database is running, the Log Required field always records the range of transaction logs that have not yet been applied to the database. This range is updated continuously.

A database that is backed up in an online state always has a non-zero Log Required range. Therefore, the appropriate transaction log files must be backed up together with the database. If the log files are not available after you restore a database, the database will not be mountable. If you cannot obtain the required log files, you must perform a database repair operation. However, there is no guarantee that a database repair operation will be successful. Also, a database repair operation always results in some level of data loss, even if only the data in the missing log files is lost.

If you use the Exchange streaming backup API or the VSS backup API that is included with the Exchange Writer, the log files that are required to mount a database are automatically backed up with the database. If you replay only the log files that are specified in the Log Required field, the database will be restored to the point where the backup finished. If you want to roll the database forward past that point, you must also play the log files that were generated after the backup finished.

To completely roll the database forward from any particular backup, you must retain all the log files in an unbroken sequence, starting from the lowest log in the Log Required range up to the most recently generated log file in the database's storage group. If any log in this series is missing or damaged, you can only roll forward up to the point of the last good log file before the missing or damaged file.

Therefore, to experience no data loss when you recover from a backup, you must retain good copies of all the transaction log files going forward from the last verified good database backup.

Transaction Log Truncation

If transaction log files are not removed from an Exchange server, the log files accumulate until they fill all the available disk space. Therefore, both the streaming and VSS backup APIs support pruning transaction log files after the completion of a Normal backup or an Incremental backup. Log files that are older than those needed to recover the most recent backup are automatically deleted from the server after the backup program informs Exchange that the backup operation has completed successfully.

With the streaming API, checksum verification of the database is performed during the backup process. By the time the backup operation completes, the whole database and the required log files have been checked for physical integrity. With the VSS API, checksum verification cannot be performed as part of the actual backup process. The backup program vendor must verify the physical integrity of the database independently from the backup process. This verification can be performed by using the Eseutil command either before the backup operation or after the program informs Exchange that the backup has completed.

  • If checksum verification is performed before the backup completes and if a problem is found in the backup set, Exchange is signaled that the backup was unsuccessful. This action stops Exchange from truncating transaction log files from the server.

  • If checksum verification is postponed until after signaling the completion of a backup, Exchange deletes older log files from the server. Some of these log files may be required to roll forward from an earlier good backup. If you have not already made copies of these log files, you may not be able to roll forward completely.

We recommend that checksum verification be performed on a VSS backup before the backup program informs Exchange that the backup is complete. If checksum verification is postponed until after the backup has completed, the backup program must retain copies of all the transaction log files that are truncated, unless it is not important that you cannot roll forward Exchange completely.

In most cases, all the transaction log files that are required to roll a VSS backup forward are available in the set of log files that were saved with the previous backup together with the log files that are saved with the current backup. However, when you select a backup solution, you should verify that this is the case.

Restoring Unverified Backups

You may have to restore a database from a backup before checksum verification has been performed on the backup. In this scenario, we recommend that you restore the database from an earlier verified backup, and then roll that backup forward. This is preferred to relying on an unverified backup.

However, you may have a service level agreement that requires you to restore data more quickly than can be performed from earlier backups. In this scenario, restoring from an unverified backup may be a better option as long as you retain a previous verified backup together with all the log files that are required to roll forward completely from the previous backup. This lets you roll forward from a known good backup if you discover that the unverified backup is damaged.

Checking Snapshot Consistency

The VSS requestor must verify snapshot consistency. Also, verification of snapshot consistency is a requirement for a backup solution to be supported by the Exchange team. Exchange 2007 supports the following two methods to check snapshot consistency:

  • The CHKSGFILES API

  • The Eseutil command-line tool

For more information about how to verify snapshot consistency by using the CHKSGFILES API, see Validating Backup Integrity By Using CHKSGFILES.

For more information about how to verify snapshot consistency by using the Eseutil command-line tool, see Validating Backup Integrity By Using Eseutil.

Troubleshooting the Volume Shadow Copy Service

By default, VSS is installed with Windows Server 2008. The service is set to a Manual startup type. The service starts if a backup program (the Requestor) can use the VSS Writer or Writers.

You can use the following items to help troubleshoot an issue that you may experience with Exchange 2007 VSS backups:

  • Event log information

  • VSSADMIN commands

  • Diagnostic logging

  • The Exchange Extra tool

  • The BETest tool

Event Log Information

The following steps describe the Exchange 2007 backup process that occurs when you use VSS together with the corresponding events that are logged. Examine the events that are logged during the backup operation to help determine which component is failing.

Step 1: Database Preparation
  1. The backup program, also known as the agent, runs a scheduled job.

  2. The VSS Requestor in the backup program submits a request to VSS to prepare the selected Exchange storage groups for a snapshot backup.

  3. VSS signals the Exchange VSS Writer to prepare for a snapshot backup.

The following table lists the series of events that are logged in the Application log for every backup instance that is started.

Event ID Event Type Event Source General

9604

Information

MSExchangeIS

Exchange VSS Writer has successfully collected the metadata document in preparation for backup or restore.

9818

Information

MSExchangeIS

Exchange VSS Writer (instance 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56) has been called for "EcPrepareSGForBackup."

Data:

0000: 54 68 69 72 64 20 53 74 Third St

0008: 6f 72 61 67 65 20 47 72 orage Gr oup.

9811

Information

MSExchangeIS

Exchange VSS Writer (instance 56) has successfully prepared the database engine for a full or copy backup of storage group 'Third Storage Group'. The following 1 databases are mounted and will be backed up:

Third Storage Group

Data:

0000: 46 75 6c 6c 00 Full.

9606

Information

MSExchangeIS

Exchange VSS Writer (instance 097f686a-7ffb-4903-935f-1b1b1a0d3a27) has prepared for backup successfully.

9818

Information

MSExchangeIS

Exchange VSS Writer (instance 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56) has been called for "CVssIExchWriter::OnPrepareSnapshot".

9608

Information

MSExchangeIS

Exchange VSS Writer (instance 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56) has prepared for Snapshot successfully.

2005

Information

ESE

Information Store (2256) Shadow copy instance 56 starting. This will be a Full shadow copy.

Step 2: Database Snapshot

After the Exchange Writer reports to VSS that the backup preparation is complete, the following actions occur:

  1. The Exchange Writer freezes the appropriate Exchange databases. In this scenario, Exchange performs the following operations.

    • Exchange prohibits administrative actions against the particular storage group.

    • Exchange checks volume dependencies for the storage group.

    • Exchange suspends all write operations to the appropriate database files and transaction log files.

      Note:
      Exchange still allows Read access to the database files and transaction log files.
  2. When Exchange starts the operation to freeze the Exchange database files and transaction log files, Exchange starts a worker thread to keep track of how long it takes to create the snapshot copy of the database. The copy process is not permitted to take longer than 10 seconds.

The whole snapshot copy process may not exceed 70 seconds. This includes all the operations that occur in the "Step 2: Database Snapshot" process. If the whole process exceeds 70 seconds, the worker thread times out. If a time-out occurs, Exchange stops the backup job and unfreezes the Exchange storage groups. Then, Exchange continues typical operations.

The following table lists the series of events that are logged in the Application log during the snapshot operation.

Event ID Event Type Event Source General

2001

Information

MSExchangeIS

MSExchangeIS (2256) Third Storage Group: Shadow copy instance 56 freeze started.

9818

Information

MSExchangeIS

Exchange VSS Writer (instance 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56) has been called for "CVssIExchWriter::OnFreeze".

9610

Information

MSExchangeIS

Exchange VSS Writer (instance 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56) has frozen the storage group(s) successfully.

9818

Information

MSExchangeIS

Exchange VSS Writer (instance 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56) has been called for "CVssIExchWriter::OnThaw"

2003

Information

ESE

Information Store (2256) Shadow copy instance 56 freeze ended.

9612

Information

MSExchangeIS

Exchange VSS Writer (instance 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56) has thawed the storage group(s) successfully.

9818

Information

MSExchangeIS

Exchange VSS Writer (instance 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56) has been called for "CVssIExchWriter::OnPostSnapshot"

Step 3: Shadow Copy Verification

The VSS Requestor in the backup program verifies the health of the shadow copy. Then, the program informs Exchange whether the backup was successful. This action signals the completion of the backup operation. The OnBackupComplete() method is used to reset the backupInProgress flag.

The following table lists the series of events that are logged in the Application log during the completion of the backup:

Event ID Event Type Event Source General

9818

Information

MSExchangeIS

Exchange VSS Writer (instance 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56) has been called for "CVssIExchWriter::OnBackupComplete".

9818

Information

MSExchangeIS

Exchange VSS Writer (instance 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56) has been called for "EcSGBackupComplete".

Data:

0000: 54 68 69 72 64 20 53 74 Third Storage Group.

9780

Information

MSExchangeIS

Exchange VSS Writer (instance 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56) has successfully completed the full or incremental backup of storage group 'Third Storage Group'.

2006

Information

ESE

Information Store (2256) Shadow copy instance 56 completed successfully.

9616

Information

MSExchangeIS

Exchange VSS Writer (instance 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56) has processed the backup completion event successfully.

When the backup operation exits, the Exchange Writer calls the OnBackupShutdown() method. This method is used to perform operations that are required when a backup program exits after the backup job is finished.

If a fatal error has occurred, the OnBackupShutdown() method sets the Exchange Writer status to Failed.

The following table lists the series of events that are logged in the Application log during a BackupShutdown event.

Event ID Event Type Event Source General

9818

Information

MSExchangeIS

Exchange VSS Writer (instance 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56) has been called for "CVssIExchWriter::OnBackupShutdown".

9648

Information

MSExchangeIS

Exchange VSS Writer (instance 097f686a-7ffb-4903-935f-1b1b1a0d3a27:56) has processed the backup shutdown event successfully.

The following two function calls occur during a backup failure:

  • CVssIExchWriter::OnAbort()

    This method indicates that a shadow copy operation has ended prematurely. The Exchange Writer uses this method to clean up the Exchange Writer and to tell the JET database to thaw (release) the information store. Also, the Exchange Writer uses this method to tell the JET database that the snapshot was stopped.

  • CVssIExchWriter::EcBackupCleanup()

    If the backup has failed, Exchange uses this method to perform post-backup failure cleanup operations. Exchange uses this method to tell the JET database that the snapshot has failed. Also, Exchange uses this method to tell the information store that the snapshot has failed.

Step 4: Transaction Log Truncation

At the end of a successful backup, Exchange performs the following operations:

  • Exchange truncates the transaction log files.

    Note:
    If you do not perform an Exchange backup but instead take a snapshot backup of a volume that contains Exchange database files, the backup is handled in the same manner as for an Exchange backup. However, in this scenario, the backup is considered to be a Copy backup, and no transaction log truncation occurs.
  • Exchange updates the database headers with the appropriate Log Required field information.

  • Exchange clears the backup in progress status.

  • Exchange records the time of the last backup for the appropriate databases.

VSSADMIN Commands

You can use the VSS administrative command-line tool (VSSADMIN) to obtain information about the Writers and Providers that are registered with VSS.

To obtain information about VSS Writers, follow these steps:

  1. On the Exchange server, click Start, click Run, type cmd, and then click OK.

  2. At the command prompt, type vssadmin list writers, and then press ENTER.

    Examine the results that are returned to locate the Exchange Writer results. The Exchange Writer should be in a stable state. The following results are returned when the Exchange Writer is in a stable state:

    Writer name: 'Microsoft Exchange Writer'

    Writer Id: {76fe1ac4-15f7-4bcd987e-8e1acb462fb7}

    Writer Instance Id: {977637c2-fcdd-463e-b1f8-a9a5d603a2e8}

    State: [1] Stable

    Last error: No error

    If the State value is anything other than Stable, restart the Microsoft Exchange Information Store service. Results that resemble the following are returned when the Exchange Writer is in a failed state:

    Writer name: 'Microsoft Exchange Writer'

    Writer Id: {76fe1ac4-15f7-4bcd987e-8e1acb462fb7}

    Writer Instance Id: {977637c2-fcdd-463e-b1f8-a9a5d603a2e8}

    State: [14] Failed

    Last error: Retryable error

  3. To obtain information about the registered VSS Providers, type vssadmin list providers at the command prompt. The following results should appear:

    Provider name: 'Microsoft Software Shadow Copy provider 1.0'

    Provider type: System

    Provider Id: {b5946137-7b9f-4925-af80-51abd60b20d5}

    Version: 1.0.0.7

    By default, only the Microsoft Software Shadow Copy provider is listed. However, if a third-party backup program is installed, other providers may be listed.

Note:
For more information about the commands that are available, type vssadmin /? at the command prompt.

Diagnostic Logging

If you suspect that the issue that you experience is caused by an issue with the Exchange Writer, enable diagnostic logging for the Exchange Writer. To do this, follow these steps:

  1. Start the Exchange Management Shell.

  2. Run the following command:

    Copy Code
    get-eventloglevel | where-object {$_.identity -like "*Exchange Writer*"} | set-eventloglevel -level expert 
    
  3. To verify the logging level for the Exchange Writer, run the following command:

    Copy Code
    get-eventloglevel | where-object {$_.identity -like "*Exchange Writer*"}
    
  4. To restore the diagnostic logging level to its default level, run the following command:

    Copy Code
    get-eventloglevel | where-object {$_.identity -like "*Exchange Writer*"} | set-eventloglevel -level Lowest
    

The Exchange 2007 Extra Tool

You can use the Troubleshooting Assistant (Extra) tool that is included with Exchange 2007 to trace the Exchange Writer. To do this, follow these steps:

  1. On the Exchange server, click Start, click Run, type extra, and then click OK.

  2. If you have not run the program previously, click Join the Microsoft Customer Experience Improvement Program, or click I don't want to join the program at this time.

  3. In the task pane, click Select a task.

  4. On the Troubleshooting Task Selection screen, click Trace Control.

  5. If you receive the following message, click OK:

    This server does not have the module needed for interpreting traces. Proceed only if this is being done under the direct supervision of a qualified Exchange support engineer.

  6. Note the path that is displayed in the Select trace file location box.

  7. Click Set manual trace tags.

  8. In the Components to Trace list, click Store, but do not click to select the Store check box.

  9. In the Trace Tags list, click to select the tagVSS check box.

  10. Click Start Tracing.

The BETest Tool

You can use the BETest tool to help determine whether an issue is caused by a third-party VSS Requestor.

The BETest tool is a test Requestor that you can use to test the Exchange VSS Writer. The BETest tool uses the Microsoft VSS API to communicate with and to test the Exchange Writer. The BETest tool can perform many of the tasks that a typical VSS Requestor performs. You can use the BETest tool to take a VSS backup of an Exchange storage group. BETest can take a VSS snapshot of an active database or a replica database on an Exchange 2007 server.

To obtain this tool, download and install the VSS SDK, version 7.2. To obtain this SDK, see Volume Shadow Copy Service SDK 7.2.

The following path is the default installation location for the i386 version of BETest:

C:\Program Files (x86)\Microsoft\VSSSDK72\TestApps\betest\obj\i386

Note:
An AMD64 version of BETest is also available. Before you run BETest, move to the directory that contains the appropriate operating system version.

To use BETest, follow these steps:

  1. Open a command prompt, and then move to the appropriate directory for your operating system. For example, move to the C:\Program Files (x86)\Microsoft\VSSSDK72\TestApps\betest\obj\amd64 directory.

  2. Verify which VSS Writers are available. To do this, type betest.exe >AvailableWriters.txt.

  3. Create a Components.txt file for use with BETest. To do this, follow these steps:

    1. Open the AvailableWriters.txt file by using a text editor, such as Notepad.

    2. Locate the Microsoft Exchange Writer section. In Notepad, press F3, type Microsoft Exchange Writer in the Find what box, and then click Find Next.

    3. Use the information that appears in the WriterName = Microsoft Exchange Writer section to populate a Components.txt file. This file has the following format:

      "<WriterIdGUID>": "<component-logical-path>" {"target" # "new target", ...}, ..."<component-logical-path>" : "<subcomponent-logical-path>,...";

      In this file, <component-logical-path> represents the LogicalPath entry, the LogicalPath entry together with the component GUID, or, if no LogicalPath value exists, only the component GUID. The component GUID represents a particular storage group. For example, the <component-logical-path> entry might be "Microsoft Exchange Server\Microsoft Information Store\ServerName\000dd565-c4e8-4f58-a8b1-2e29eee4f5c0."

      The following is a sample Components.txt file:

      "{76fe1ac4-15f7-4bcd-987e-8e1acb462fb7}":"Microsoft Exchange Server\Microsoft Information Store\ServerName\999dd565-c4e8-4f58-a8b1-2e29eee4f5c0";

      In this example, the first GUID is that of the Exchange Writer. You cannot modify this GUID. The second GUID belongs to a particular storage group. You can specify the storage group that you want to run the command against by specifying the GUID of the appropriate storage group. To obtain the GUID for a particular storage group, run the Get-StorageGroup '<StorageGroupName>' | fl GUID cmdlet.

      Exchange only supports streaming backups against active storage groups. Therefore, to back up a passive storage group, you must use a VSS backup. If you have an Exchange Continuous Cluster Replication (CCR) cluster or if you want to back up the replica copy from a server that is enabled for Local Continuous Replication (LCR), the Components.txt file must resemble one of the following examples.

      For a CCR passive copy

      "{76fe1ac4-15f7-4bcd-987e-8e1acb462fb7}":"Microsoft Exchange Server\Microsoft Information Store\Replica\<Clustered Mailbox Server Name>\<Storage Group GUID>";

      For an LCR passive copy

      "{76fe1ac4-15f7-4bcd-987e-8e1acb462fb7}":"Microsoft Exchange Server\Microsoft Information Store\Replica\<Server Name>\<Storage Group GUID>";

  4. After you create the Components.txt file, run the following command to back up the storage group:

    Copy Code
    BETEST.exe /B /E /T 1 /S output.XML /C components.txt /D c:\betest > output.txt
    
    Note:
    This command creates the backup in the C:\Betest directory. You can also run this command without the /E option.
  5. If you receive an error message when you run the command, a problem exists with the Exchange Writer. To help troubleshoot the issue, examine the contents of the Output.txt file that was created when you ran the command in step 4.

Best Practices

The following list contains some of the recommended best practices to troubleshoot VSS backup issues:

  • Verify that you have installed the latest Windows service packs and the latest VSS updates.

  • Assume that you are troubleshooting a -2403 error that occurs when you try to start a backup job. In this case, VSS uses a Manual startup type. If a backup job hangs, VSS may not stop. Instead, VSS may determine that the backup is still running. In this scenario, you receive a -2403 error when you try to start a new backup job. To resolve this issue, manually stop VSS, and then start the backup job.

  • If you use the BETest program to troubleshoot an issue, use the program to capture multiple BETest backups over a period of many days. Also, when you run the BETest program, you should stop and temporarily disable any third-party backup-related services.

  • If you experience time-out issues with the VSS Writer, you may be experiencing performance issues on the server. In this scenario, collect performance logs to determine whether a performance issue exists.

  • The VSS Writer is in a Retryable state. This issue indicates that the VSS Writer experienced a non-fatal error. The state automatically changes after some time. However, you can resolve the Retryable state issue by restarting the server.

VSS References