Backup Recovery Verification Tests
To verify VMs with a SureBackup job, you can instruct Veeam Backup & Replication to run predefined tests for VMs or use custom verification scripts.
Veeam Backup & Replication can verify VMs with the following predefined tests:
- Heartbeat test. When the VM starts, Veeam Backup & Replication performs a heartbeat test. It waits for a heartbeat signal from Hyper-V Integration Services installed inside the VM to determine that the VM guest OS is running. If the signal comes regularly at specific time intervals, the test is passed.
- Ping test. Veeam Backup & Replication sends ping requests to the VM from the backup server and checks if the VM can respond to them. If the VM responds to ping requests, the test is passed.
Veeam Backup & Replication uses two algorithms for detecting the IP addresses of a Hyper-V VM:
- Veeam Backup & Replication communicates with Hyper-V Integration Services installed inside the VM guest OS to detect the VM IP address.
- Veeam Backup & Replication uses a special module in the proxy appliance to check the IP addresses of the VM started in the isolated network. This algorithm is used, for example, if the VM does not have Hyper-V Integration Services installed.
- Application test. Veeam Backup & Replication waits for applications inside the VM to start and runs a script against these applications. Veeam Backup & Replication uses two types of predefined scripts:
- For DNS servers, domain controllers, Global Catalog servers, mail servers and web servers, Veeam Backup & Replication uses a script that probes an application-specific port. For example, to verify a domain controller, Veeam Backup & Replication probes port 389 for a response. If the response is received, the test is passed.
- For Microsoft SQL Server, Veeam Backup & Replication uses a script that attempts to connect to instances and databases on the Microsoft SQL Server. For more information, see Microsoft SQL Server Checker Script.
Note: |
To run the heartbeat test, you must have Hyper-V Integration Services installed inside the VM. If Hyper-V Integration Services are not installed, this test will be skipped. |
You can run verification tests for VMs added to the application group or processed with a linked SureBackup job. Settings for verification tests can be specified and customized in the application group or SureBackup job settings.
Microsoft SQL Server Checker Script
If you need to verify a virtualized Microsoft SQL Server, you can instruct Veeam Backup & Replication to run the Microsoft SQL Server Checker script against it during the SureBackup job. The script sequentially performs the following operations:
- Connects to Microsoft SQL Server instances.
- Enumerates databases on these instances.
- Employs the USE SQL statement to connect to databases and check their availability.
Credentials for Script Execution
To execute the script, Veeam Backup & Replication connects to Microsoft SQL Server. By default, Veeam Backup & Replication uses the account under which the Veeam Backup Service is running. If you need to run the script under another account, you can specify credentials for this account. The script supports the following authentication methods:
- Microsoft Windows authentication mode. To use it, you must specify credentials for the account on the Credentials tab in the application group or SureBackup job settings.
- SQL Server authentication mode. To use it, you must pass credentials of the account to the script. You can pass credentials the following ways:
- By running the Microsoft SQL Server Checker Script from the PowerShell. To do it, use the following command in the PowerShell console:
cscript C:\Program Files\Veeam\Backup and Replication\Backup\Veeam.Backup.SqlChecker.vbs <sql server[\instance]> <username> <password> |
You can find the results of a script execution in the log file by the following path: %programdata%\Veeam\Backup\<name of the job>\<VM name>_SQLChecker.log. If necessary, you can change the log file location. To do this, specify a new path in the PowerShell command:
cscript C:\Program Files\Veeam\Backup and Replication\Backup\Veeam.Backup.SqlChecker.vbs [C:\Logs] <sql server[\instance]> <username> <password> |
- By modifying credentials in the Veeam.Backup.SqlChecker.vbs file. The script is located on the backup server in the Veeam Backup & Replication product folder. The default path: C:\Program Files\Veeam\Backup and Replication\Backup\Veeam.Backup.SqlChecker.vbs.
Important! |
Do not pass sensitive information using script arguments in a user interface. |
Important! |
If you use the Microsoft SQL Server authentication mode, you may need to specify credentials of the account to connect to the machine on which Microsoft SQL Server is installed. To do this, use the Credentials tab in the application group or SureBackup job settings. |
Database Exclusion
By default, Veeam Backup & Replication verifies all databases on all instances of Microsoft SQL Server. However, you can exclude specific databases from verification — for example, VMware vCenter Server database. To exclude an instance or a database, you must open the script in the text editor and edit the Settings section in the following way:
- To exclude specific databases, uncomment the 'gDBsToExclude.Push "dbname" line in the script and specify name(s) of database(s) that you want to exclude. To exclude several databases, use a comma.
- To exclude specific instances, uncomment the 'gInstancesToExclude.Push "instancename" line in the script and specify name(s) of instances that you want to exclude. To exclude several instances, use a comma.
- To exclude the default instance, uncomment the 'gInstancesToExclude.Push "MSSQLSERVER" line.
Important! |
Instance and database names are case sensitive. |
Logging
To define whether the script has completed successfully or not, Veeam Backup & Replication publishes the following return codes in the SureBackup job session statistics:
- 0 — test is passed successfully.
- 1 — you use a wrong syntax for the script command.
- 2 — Veeam Backup & Replication is unable to connect to Microsoft SQL Server.
- 3 — all instances are excluded from the check.
- 4 — error occurred while Veeam Backup & Replication was getting the list of databases.
- 5 — unknown error
- 6 — one or more databases are not accessible.
In addition to recovery verification tests, Veeam Backup & Replication allows you to perform backup file validation. For backup file validation, Veeam Backup & Replication performs a CRC check for backup files of VMs verified by the SureBackup job. You can also validate backup files for VMs from the application group with this test.
To validate the backup file, Veeam Backup & Replication uses the checksum algorithm. When Veeam Backup & Replication creates a backup file for a VM, it calculates a checksum for every data block in the backup file and stores this data in the backup file, together with VM data. During the backup file validation test, Veeam Backup & Replication de-compresses the backup file, re-calculates checksums for data blocks in the uncompressed backup file and compares them with initial checksum values. If the results match, the test is passed.
The backup file validation test is started after recovery verification tests. As soon as Veeam Backup & Replication completes all "live" verification for all VMs in the SureBackup job, it unpublishes VMs and starts the backup file validation test.
The result of the backup file validation test impacts the state of the SureBackup job session. If the validation tests are completed successfully but the backup validation is not passed, Veeam Backup & Replication marks the SureBackup job session with the Warning or Error status.