Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

Restore Class

The Restore object provides programmatic access to restore operations.

Namespace:  Microsoft.SqlServer.Management.Smo
Assembly:  Microsoft.SqlServer.SmoExtended (in Microsoft.SqlServer.SmoExtended.dll)
public sealed class Restore : BackupRestoreBase

The Restore type exposes the following members.

  NameDescription
Public methodRestoreInitializes a new instance of the Restore class.
Top
  NameDescription
Public propertyActionGets or sets the type of restore to be performed.
Public propertyAsyncStatusGets the asynchronous status of a backup or restore process. (Inherited from BackupRestoreBase.)
Public propertyBlockSizeGets or sets the physical block size of the backup or restore, in bytes. (Inherited from BackupRestoreBase.)
Public propertyBufferCountGets or sets the total number of I/O buffers to be used for the backup or restore operation. (Inherited from BackupRestoreBase.)
Public propertyChecksumGets or sets a Boolean property value that determines whether a checksum value is calculated during backup or restore operations. (Inherited from BackupRestoreBase.)
Public propertyClearSuspectPageTableAfterRestoreGets or sets a Boolean value that determines whether entries in the suspect page table will be deleted following the restore operation.
Public propertyContinueAfterErrorGets or sets a Boolean property value that determines whether the backup or restore continues after a checksum error occurs. (Inherited from BackupRestoreBase.)
Public propertyDatabaseGets or sets the database on which the backup or restore operation runs. (Inherited from BackupRestoreBase.)
Public propertyDatabaseFileGroupsGets the SQL Server file groups targeted by the backup or restore operation. (Inherited from BackupRestoreBase.)
Public propertyDatabaseFilesGets the operating system files targeted by the backup or restore operation. (Inherited from BackupRestoreBase.)
Public propertyDevicesGets the backup devices specified for the backup or restore operation. (Inherited from BackupRestoreBase.)
Public propertyFileNumberGets or sets the index number used to identify the targeted backup set on the backup medium.
Public propertyKeepReplicationGets or sets a Boolean property value that specifies whether to maintain a replication configuration during a restore operation.
Public propertyMaxTransferSizeGets or sets the maximum number of bytes to be transferred between the backup media and the instance of SQL Server. (Inherited from BackupRestoreBase.)
Public propertyMediaNameGets or sets the name used to identify a particular media set. (Inherited from BackupRestoreBase.)
Public propertyNoRecoveryGets or sets a Boolean property value that determines whether the tail of the log is backed up and whether the database is restored into the Restoring state. (Inherited from BackupRestoreBase.)
Public propertyNoRewindGets or sets a Boolean property value that determines whether Microsoft SQL Server will keep the tape open after the backup or restore operation. (Inherited from BackupRestoreBase.)
Public propertyOffsetGets or sets the array of page addresses to be restored.
Public propertyPartialGets or sets a Boolean property value that specifies whether a partial or full restore operation will be performed.
Public propertyPercentCompleteNotificationGets or sets the percentage interval for PercentCompleteEventHandler event handler calls. (Inherited from BackupRestoreBase.)
Public propertyRelocateFilesGets the array of database logical file names and operating system physical file names used to redirect database storage when a database is restored to a new physical location.
Public propertyReplaceDatabaseGets or sets a Boolean value that specifies whether a restore operation creates a new image of the restored database.
Public propertyRestartGets or sets a Boolean property value that determines whether the backup or restore operation will restart if it is interrupted. (Inherited from BackupRestoreBase.)
Public propertyRestrictedUserGets or sets a Boolean property value that specifies whether access to the restored database is restricted to members of the db_owner fixed database role and the dbcreator and sysadmin fixed server roles.
Public propertyStandbyFileGets or sets the name of an undo file that is used as part of the imaging strategy for an instance of SQL Server.
Public propertyStopAtMarkAfterDateGets or sets the date to be used in conjunction with the mark name specified by StopAtMarkName to determine the stopping point of the recovery operation.
Public propertyStopAtMarkNameGets or sets the mark name to be used in conjunction with the date specified by StopAtMarkAfterDate to determine the stopping point of the recovery operation.
Public propertyStopBeforeMarkAfterDateGets or sets the date to be used in conjunction with the mark name specified by StopBeforeMarkName to determine the stopping point of the recovery operation.
Public propertyStopBeforeMarkNameGets or sets the mark name to be used in conjunction with the date specified by StopBeforeMarkAfterDate to determine the stopping point of the recovery operation.
Public propertyToPointInTimeGets or sets the endpoint for database log restoration.
Public propertyUnloadTapeAfterGets or sets a Boolean property value that determines whether tape media are rewound and unloaded after the backup or restore operation completes. (Inherited from BackupRestoreBase.)
Top
  NameDescription
Public methodAbortTerminates a running backup or restore operation. (Inherited from BackupRestoreBase.)
Public methodClearSuspectPageTableDeletes entries in the suspect page table.
Public methodEquals (Inherited from Object.)
Protected methodExecuteSqlExecutes a batch of Transact-SQL statements that does not expect a returned results set on the specified instance of SQL Server. (Inherited from BackupRestoreBase.)
Protected methodExecuteSqlAsyncExecutes a batch of Transact-SQL statements asynchronously that does not expect a returned results set on the specified instance of SQL Server. (Inherited from BackupRestoreBase.)
Protected methodExecuteSqlWithResultsExecutes a batch of Transact-SQL statements that expects one or more returned results sets on the specified instance of SQL Server. (Inherited from BackupRestoreBase.)
Protected methodFinalize (Inherited from Object.)
Protected methodGetDevicesScriptGets the script that is used to create devices. (Inherited from BackupRestoreBase.)
Public methodGetHashCode (Inherited from Object.)
Public methodGetType (Inherited from Object.)
Protected methodIsStringValidVerifies whether the specified string is valid. (Inherited from BackupRestoreBase.)
Protected methodMemberwiseClone (Inherited from Object.)
Public methodReadBackupHeaderReads the backup header and returns information about the media contents.
Public methodReadFileListReturns the list of database files on the targeted media.
Public methodReadMediaHeaderReads the media header and returns the media header values.
Public methodReadSuspectPageTableReturns the suspect page table for the targeted instance of SQL Server.
Public methodScriptGenerates a Transact-SQL script that can be used to re-create the restore operation.
Public methodSetMediaPassword(SecureString)Sets the password for a media set. (Inherited from BackupRestoreBase.)
Public methodSetMediaPassword(String)Sets the password for a media set. (Inherited from BackupRestoreBase.)
Public methodSetPassword(SecureString)Sets the password for a backup set. (Inherited from BackupRestoreBase.)
Public methodSetPassword(String)Sets the password for a backup set. (Inherited from BackupRestoreBase.)
Public methodSqlRestorePerforms a restore operation on the specified server.
Public methodSqlRestoreAsyncPerforms a restore operation asynchronously.
Public methodSqlVerify(Server)Checks the media on the instance of SQL Server that is represented by the specified Server object.
Public methodSqlVerify(Server, Boolean)Checks the media on instance of SQL Server that is represented by the specified Server object and loads backup history information into the history tables.
Public methodSqlVerify(Server, String)Checks the media on the instance of SQL Server that is represented by the specified Server object and returns an error message.
Public methodSqlVerify(Server, Boolean, String)Checks the media on the instance of SQL Server that is represented by the specified Server object, loads backup history information into the history tables, and returns an error message.
Public methodSqlVerifyAsync(Server)Checks the media on the instance of SQL Server that is represented by the specified Server object asynchronously.
Public methodSqlVerifyAsync(Server, Boolean)Checks the media on the instance of SQL Server that is represented by the specified Server object asynchronously and loads backup history information into the history tables.
Public methodSqlVerifyLatest(Server)Verifies the most recent backup but does not restore it, and checks to see that the backup set is complete and the entire backup is readable.
Public methodSqlVerifyLatest(Server, SqlVerifyAction)Verifies the most recent backup with the specified action, and checks to see that the backup set is complete and the entire backup is readable.
Public methodSqlVerifyLatest(Server, String)Verifies the most recent backup but does not restore it, checks to see that the backup set is complete and the entire backup is readable, and returns an error message.
Public methodSqlVerifyLatest(Server, SqlVerifyAction, String)Verifies the most recent backup with the specified action, checks to see that the backup set is complete and the entire backup is readable, and returns an error message.
Public methodToString (Inherited from Object.)
Public methodWaitWaits for the current backup or restore operation to complete before moving on to the next process. (Inherited from BackupRestoreBase.)
Top
  NameDescription
Public eventCompleteOccurs when the backup or restore operation completes. (Inherited from BackupRestoreBase.)
Public eventInformationOccurs when any informational message is issued by Microsoft SQL Server that cannot be handled by the Complete NextMedia or PercentComplete events. (Inherited from BackupRestoreBase.)
Public eventNextMediaOccurs when the backup or restore operation exhausts the medium in a target device. (Inherited from BackupRestoreBase.)
Public eventPercentCompleteOccurs when a backup or restore operation reaches a completion unit. (Inherited from BackupRestoreBase.)
Top
  NameDescription
Protected fieldcurrentAsyncOperationSpecifies the current asynchronous operation, such as backup, restore, or none. (Inherited from BackupRestoreBase.)
Protected fieldm_BackupActionSpecifies the backup action type, such as database or log. (Inherited from BackupRestoreBase.)
Protected fieldm_LogTruncationSpecifies whether to truncate the log. (Inherited from BackupRestoreBase.)
Protected fieldm_RestoreActionSpecifies the restore action type, such as database or log. (Inherited from BackupRestoreBase.)
Public fieldVerifyCompleteSpecifies the VerifyCompleteEventHandler.
Top

By using a Restore object you can do the following:

  • Restore all or part of a database.

  • Restore backup images of transaction log records.

  • Verify the integrity of backup media.

  • Report the contents of backup media.

  • Monitor a restore operation, reporting status to the user.

SQL Server can write a backup to one of four media types: disk, tape, named pipe, or a backup device. SQL Server supports backup striping. A striped backup is one directed to more than a single device. Striping is supported to a single media type only. That is, a backup can be written to two tape devices. Half of a backup cannot be written to a tape device and the other half to a disk.

At a minimum, supply values for a restore source when using a Restore object. Use one media type property to specify the restore operation source.

Setting other properties in the Restore object may be required by the restore operation desired.

Thread Safety

Any public static (Shared in Microsoft Visual Basic) members of this type are safe for multithreaded operations. Any instance members are not guaranteed to be thread safe.

To get Restore object properties, users can be a member of the public fixed server role.

To set Restore object properties, users must have CREATE DATABASE permission on the server, or be a member of sysadmin or dbcreator fixed server roles, or be a member of db_owner fixed database role.

To perform a restore operation, users must have CREATE DATABASE permission on the server, or be a member of sysadmin or dbcreator fixed server roles. If the database already exists, then members of the db_owner fixed database role can also perform a restore operation.

The following code example demonstrates how to create a normal and an asynchronous backup of the AdventureWorks2008R2 database and use each of those backups to restore it.

VB

'Connect to the local, default instance of SQL Server.
Dim srv As Server
srv = New Server
'Reference the AdventureWorks2008R2 database.
Dim db As Database
db = srv.Databases("AdventureWorks2008R2")
'Store the current recovery model in a variable.
Dim recoverymod As Integer
recoverymod = db.DatabaseOptions.RecoveryModel
'Define a Backup object variable. 
Dim bk As New Backup
'Specify the type of backup, the description, the name, and the database to be backed up.
bk.Action = BackupActionType.Database
bk.BackupSetDescription = "Full backup of AdventureWorks2008R22008R2"
bk.BackupSetName = "AdventureWorks2008R22008R2 Backup"
bk.Database = "AdventureWorks2008R22008R2"
'Declare a BackupDeviceItem by supplying the backup device file name in the constructor, and the type of device is a file.
Dim bdi As BackupDeviceItem
bdi = New BackupDeviceItem("Test_Full_Backup1", DeviceType.File)
'Add the device to the Backup object.
bk.Devices.Add(bdi)
'Set the Incremental property to False to specify that this is a full database backup.
bk.Incremental = False
'Set the expiration date.
Dim backupdate As New Date
backupdate = New Date(2006, 10, 5)
bk.ExpirationDate = backupdate
'Specify that the log must be truncated after the backup is complete.
bk.LogTruncation = BackupTruncateLogType.Truncate
'Run SqlBackup to perform the full database backup on the instance of SQL Server.
bk.SqlBackup(srv)
'Inform the user that the backup has been completed.
Console.WriteLine("Full Backup complete.")
'Remove the backup device from the Backup object.
bk.Devices.Remove(bdi)
'Make a change to the database: in this case, add a table called test_table.
Dim t As Table
t = New Table(db, "test_table")
Dim c As Column
c = New Column(t, "col", DataType.Int)
t.Columns.Add(c)
t.Create()
'Create another file device for the differential backup and add the Backup object.
Dim bdid As BackupDeviceItem
bdid = New BackupDeviceItem("Test_Differential_Backup1", DeviceType.File)
'Add the device to the Backup object.
bk.Devices.Add(bdid)
'Set the Incremental property to True for a differential backup.
bk.Incremental = True
'Run SqlBackup to perform the incremental database backup on the instance of SQL Server.
bk.SqlBackup(srv)
'Inform the user that the differential backup is complete.
Console.WriteLine("Differential Backup complete.")
'Remove the device from the Backup object.
bk.Devices.Remove(bdid)
'Delete the AdventureWorks2008R22008R2 database before restoring it.
srv.Databases("AdventureWorks2008R22008R2").Drop()
'Define a Restore object variable.
Dim rs As Restore
rs = New Restore
'Set the NoRecovery property to true, so the transactions are not recovered.
rs.NoRecovery = True
'Add the device that contains the full database backup to the Restore object.
rs.Devices.Add(bdi)
'Specify the database name.
rs.Database = "AdventureWorks2008R22008R2"
'Restore the full database backup with no recovery.
rs.SqlRestore(srv)
'Inform the user that the Full Database Restore is complete.
Console.WriteLine("Full Database Restore complete.")
'Remove the device from the Restore object.
rs.Devices.Remove(bdi)
'Set te NoRecovery property to False.
rs.NoRecovery = False
'Add the device that contains the differential backup to the Restore object.
rs.Devices.Add(bdid)
'Restore the differential database backup with recovery.
rs.SqlRestore(srv)
'Inform the user that the differential database restore is complete.
Console.WriteLine("Differential Database Restore complete.")
'Remove the device.
rs.Devices.Remove(bdid)
'Set the database recovery mode back to its original value.
srv.Databases("AdventureWorks2008R22008R2").DatabaseOptions.RecoveryModel = recoverymod
'Drop the table that was added.
srv.Databases("AdventureWorks2008R22008R2").Tables("test_table").Drop()
srv.Databases("AdventureWorks2008R22008R2").Alter()
'Remove the backup files from the hard disk.
My.Computer.FileSystem.DeleteFile("C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\Test_Full_Backup1")
My.Computer.FileSystem.DeleteFile("C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\Test_Differential_Backup1")

Powershell

$srv = new-object Microsoft.SqlServer.Management.Smo.Server("(local)")
$db = New-Object Microsoft.SqlServer.Management.Smo.Database
$db = $srv.Databases.Item("AdventureWorks2008R22008R2")
$rs = new-object Microsoft.SqlServer.Management.Smo.Restore
$rs.NoRecovery = $TRUE
$rs.Devices.Add($bdi)
$recoverymod = $db.DatabaseOptions.RecoveryModel
$bk = new-object Microsoft.SqlServer.Management.Smo.Backup
$bk.Action = [Microsoft.SqlServer.Management.Smo.BackupActionType]::Database
$bk.BackupSetDescription = "Full backup of AdventureWorks2008R22008R2"
$bk.BackupSetName = "AdventureWorks2008R22008R2 Backup"
$bk.Database = "AdventureWorks2008R22008R2"
$bdi = new-object Microsoft.SqlServer.management.Smo.BackupDeviceItem("Test_Full_Backup1", [Microsoft.SqlServer.Management.Smo.DeviceType]::File)
$bk.Devices.Add($bdi)
$bk.Incremental = $FALSE
$backupdate = new-object System.DateTime(2009, 3, 2)
$bk.ExpirationDate = $backupdate
$bk.LogTruncation = [Microsoft.SqlServer.Management.Smo.BackupTruncateLogType]::Truncate
$bk.SqlBackup($srv)
Write-Host "Full Backup complete."
$bk.Devices.Remove($bdi)
$t = new-object Microsoft.SqlServer.Management.Smo.Table($db, "test_table")
$c = new-object Microsoft.SqlServer.Management.Smo.Column($t, "col", [Microsoft.SqlServer.Management.Smo.DataType]::Int)
$t.Columns.Add($c)
$t.Create()
$bdid = new-object Microsoft.SqlServer.Management.Smo.BackupDeviceItem("Test_Differential_Backup1", [Microsoft.SqlServer.Management.Smo.DeviceType]::File)
$bk.Devices.Add($bdid)
$bk.Incremental = $TRUE
$bk.SqlBackup($srv)
Write-Host "Differential Backup complete."
$bk.Devices.Remove($bdid)
$rs.Database = "AdventureWorks2008R22008R2"
$srv.Databases["AdventureWorks2008R22008R2"].Drop()
$rs.SqlRestore($srv)
Write-Host "Full Database Restore complete."
$rs.Devices.Remove($bdi)
$rs.NoRecovery = $FALSE
$rs.Devices.Add($bdid)
$rs.SqlRestore($srv)
Write-Host "Differential Database Restore complete."
$rs.Devices.Remove($bdid)
$srv.Databases["AdventureWorks2008R22008R2"].DatabaseOptions.RecoveryModel = $recoverymod
$srv.Databases["AdventureWorks2008R22008R2"].Tables["test_table"].Drop()
$srv.Databases["AdventureWorks2008R22008R2"].Alter()
remove-item C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\Test_Full_Backup1
remove-item C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Backup\Test_Differential_Backup1
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.