In this article I will demonstrate how we can restore a table from a SQL Server database backup file which has been taken by Quest Litespeed tool. This feature called Object level recovery in the tool is extremely helpful as you need not restore the entire database and yet retrieve data from the backup. Follow the below mentioned steps and understand how this can be accomplished. I will be using a trial copy of Quest Litespeed along with SQL server 2012 and the database we would use is Adventureworks2012. However you can use SQL server 2008 also.
Step 1: Create a database and take a full backup of the database
Let us create a database for this purpose
CREATE DATABASE MyDB GO USE mydb GO CREATE TABLE Mytable1 ( id INT,FNAME NVARCHAR(50) ) GO INSERT INTO Mytable1 VALUES (1,'Sanchayan') GO INSERT INTO Mytable1 VALUES (2,'Abhishek') go CREATE TABLE Mytable2 ( id INT,LNAME NVARCHAR(50) ) GO INSERT INTO Mytable2 VALUES (1,'Pandit') GO INSERT INTO Mytable2 VALUES (2,'Agrawal') go
Now take a Full Backup of the database.
exec master.dbo.xp_backup_database @database = N'Mydb', @compressionlevel = 3, @filename = N'D:\MSSQL\SQLBackup\Mydb.bak', @init = 0, @OLRMAP = 1--This is important as this marks the backup for object level recovery GO
Step 2: Now run the following code to find the Tables available in the backup
Use Master go exec xp_objectrecovery_viewcontents @FileName = N'D:\MSSQL\SQLBackup\mydb.bak', @FileNumber = 1, @Type = 'All', @DisableLogProcessing = 1
Step 3: Now select the table that you wish to restore. In this demo we would restore MyTable2.
We would need the below predefined:
a) The database where we would restore the table.
b) A temp directory location which should be large enough for the table to be restored initially.
Use master go exec xp_objectrecovery @FileName = N'D:\MSSQL\SQLBackup\Mydb.bak', @FileNumber = 1, @ObjectName = N'dbo.Mytable2', @DestinationTable = N'[dbo].[Mytable2]', @DestinationDatabase = N'MyTempDB', @DestinationServer = N'GN-A-MOOKBO-7L\sql2012', @TempDirectory = N'D:\MSSQL\SQLBackup', @DisableLogProcessing = 1
The output of the above code would be as below
To verify if the data you can query the table that we restored on mytempdb database
I hope this article was helpful in understanding how we can use ‘Object level recovery’ to fetch data from a full backup file that has been taken using Quest Litespeed for SQL Server tool.
Technical reference: http://www.quest.com/litespeed-for-sql-server/