RestoreChecker is a utility that restores SQL Server backup files in order to verify that the backup files can be sucessfully restored and in addition perform data integrity checkes on the backups restored while offloading the intensive IO activity from your production servers.

General

The RestoreChecker utility is a .NET console application that is designed to run automatically using any scheduler such as SQL Server Agent or the Windows Task Scheduler.
The utility provides 2 major functionalities:

  1. Test that a full backup file or a partial backup file can be successfully restored
  2. Perform data integrity checks.

The utility is designed to be installed on a single server, call it the RestoreServer and provide its services to an unlimited number of servers. All the operations are carried out on the RestoreServer machine thus not posing any risk or performance issues to the production servers.

Supported SQL Server versions: 2005, 2008, 2008R2, 2012

Features

  • Dynamically find and restore the most recent full database backup
  • Dynamically find and restore the first transaction log file
  • Handle unlimited number of servers and databases
  • Perform data integrity checks while offloading the intensive IO activity from your production servers
  • Agentless, nothing installed on the production servers
  • Restore using checksums
  • Drop the restored database when completed all operations in order to free up the disk space for the next database
  • Detect that a backup file was processed in the past in order not to work on the same file more than one time
  • Restore from the backup file’s original location or from an alternate location (over the network or local)
  • Log all operations to a table for latter tracking and easy quering
  • A configurable log file to easily track any error if occurred
  • Manage the configuration using a database table in a very convenience way for the DBA
  • A very simple yet flexible configuration

Editions

Freeware edition – A limited (but still great) edition that requires no license and can be used at no cost for private or commercial usage and is limited to a single server and a single database
Standard edition – A fully featured edition that is limited to 4 servers and requires a license.
Enterprise edition – A fully featured edition that is capable of handling an unlimited number of servers and requires a license.

Obtain a license

If you would like to work with the fully featured Standard Edition or Enterprise Edition then all that is required is to purchase a license and locate the license file at the working folder.

To obtain a license file follow these steps:

  1. Purchase a license by clicking the PayPal button
  2. Email the ComputerName.tek file (located at your working folder) to support@sqlserverutilities.com
  3. Receive a reply mail containing the license file
  4. Locate the received license file at your working folder
  5. The working folder is the folder where RestoreChecker is installed. If the default installation path was not modified during the installation then the path would be:

C:\Program Files\RestoreChecker\ (x86 machines)
C:\Program Files (x86)\RestoreChecker\ (x64 machines)

Installation

Run the RestoreChecker.msi file to install the program

Prerequisites

RestoreChecker requires Microsoft .NET Framework 3.5 installed on the RestoreServer machine.
In case you require a version that can be run on an earlier version of the .NET framework please contact us at support@sqlserverutilities.com

Terminology

SourceServer – a server that we test its backup files

RestoreServer – the machine where we restore the backup files we test. The RestoreServer machine has to have an instance of SQL Server up and running.

Note that in order for the RESTORE command to support all servers in your environment it has to be installed with the highest version available within your environment (i.e. you cannot restore a database that was backup using SQL Server 2008 to an instance running SQL Server 2005 but you can the other way round and this is because the command is backward compatible and not forward compatible)

In addition if you have various editions of SQL Server then it should be installed with the highest edition (i.e. if you restore a database that was backed up in SQL Server 2008 Enterprise Edition to an instance of SQL Server Standard Edition the command will fail because there are various features not supported such as data compression etc.)

Configuration

  1. Following the installation edit the RestoreChecker.exe.config file
    See the RestoreChecker.htm file provided with the installation for a sample configuration file.
  2. Run the RestoreChecker.exe file. This will create the two tables that the utility works with in the master database within a new schema called RestoreChecker

The table RestoreCheckerServers – Holds the configuration where every row represents a database to restore.

See the RestoreChecker.htm file provided with the installation for a sample INSERT command to populate the table
The table RestoreCheckerLog – A log table where all the activity is logged
See the RestoreChecker.htm file provided with the installation for a sample query to retreive all operations that succeeded or failed

Usage

Run RestoreChecker.exe by any of the following methods:

  • Manually
  • SQL Server Agent job by selecting a Job Step of type “Operating system(CmdExec)”
  • Use any other scheduler

Log File

There are various settings that if required can be modified by editing the log4net.config file
The key “file” represents the log file name and location and defaults to the working folder. You may modify the path if needed.
The key “maxSizeRollBackups” defaults to 5 which represent the maximum number of log files that are available at a given time. The files are managed in a FIFO (First In First Out) algorithm.
The key “maximumFileSize” defaults to 10 which represent a size of 10MB per log file. file.

Comments

RestoreChecker terminates with a return value of 0 on success and 1 on failure.
In case you come across a need that RestoreChecker does not cover in the current version please mail your requirement to support@sqlserverutilities.com with RestoreChecker at the subject of the mail and we will consider implementing it in an upcoming release.

Support

When applying for support please send a description of the problem encountered to support@sqlserverutilities.com with RestoreChecker in the subject of the mail and attach the following files:
RestoreChecker.exe.config
RestoreChecker.log