Partager via


Classe Restore

The Restore object provides programmatic access to restore operations.

Hiérarchie d'héritage

System.Object
  Microsoft.SqlServer.Management.Smo.BackupRestoreBase
    Microsoft.SqlServer.Management.Smo.Restore

Espace de noms :  Microsoft.SqlServer.Management.Smo
Assembly :  Microsoft.SqlServer.SmoExtended (en Microsoft.SqlServer.SmoExtended.dll)

Syntaxe

'Déclaration
Public NotInheritable Class Restore _
    Inherits BackupRestoreBase
'Utilisation
Dim instance As Restore
public sealed class Restore : BackupRestoreBase
public ref class Restore sealed : public BackupRestoreBase
[<SealedAttribute>]
type Restore =  
    class 
        inherit BackupRestoreBase 
    end
public final class Restore extends BackupRestoreBase

Le type Restore expose les membres suivants.

Constructeurs

  Nom Description
Méthode publique Restore() Initializes a new instance of the Restore class.
Méthode publique Restore(String, BackupSet) Initializes a new instance of the Restore class with specified destination database name and backup set.

Haut de la page

Propriétés

  Nom Description
Propriété publique Action Gets or sets the type of restore to be performed.
Propriété publique AsyncStatus Obtient l'état asynchrone d'un processus de sauvegarde ou de restauration. (hérité de BackupRestoreBase.)
Propriété publique BlockSize Obtient ou définit la taille des blocs physiques de la sauvegarde ou de la restauration, en octets. (hérité de BackupRestoreBase.)
Propriété publique BufferCount Obtient ou définit le nombre total de tampons d'E/S à utiliser pour l'opération de sauvegarde ou de restauration. (hérité de BackupRestoreBase.)
Propriété publique Checksum Obtient ou définit une valeur de propriété Boolean qui détermine si une valeur de somme de contrôle est calculée pendant les opérations de sauvegarde ou de restauration. (hérité de BackupRestoreBase.)
Propriété publique ClearSuspectPageTableAfterRestore Gets or sets a Boolean value that determines whether entries in the suspect page table will be deleted following the restore operation.
Propriété publique ContinueAfterError Obtient ou définit une valeur de propriété Boolean qui détermine si la sauvegarde ou la restauration continue après une erreur de somme de contrôle. (hérité de BackupRestoreBase.)
Propriété publique Database Obtient ou définit la base de données sur laquelle l'opération de sauvegarde ou de restauration s'exécute. (hérité de BackupRestoreBase.)
Propriété publique DatabaseFileGroups Obtient les groupes de fichiers SQL Server ciblés par l'opération de sauvegarde ou de restauration. (hérité de BackupRestoreBase.)
Propriété publique DatabaseFiles Obtient les fichiers de système d'exploitation ciblés par l'opération de sauvegarde ou de restauration. (hérité de BackupRestoreBase.)
Propriété publique DatabasePages Gets the list of the restore pages.
Propriété publique Devices Obtient les unités de sauvegarde spécifiées pour l'opération de sauvegarde ou de restauration. (hérité de BackupRestoreBase.)
Propriété publique FileNumber Gets or sets the index number used to identify the targeted backup set on the backup medium.
Propriété publique KeepReplication Gets or sets a Boolean property value that specifies whether to maintain a replication configuration during a restore operation.
Propriété publique MaxTransferSize Obtient ou définit le nombre maximal d'octets à transférer entre le support de sauvegarde et l'instance de SQL Server. (hérité de BackupRestoreBase.)
Propriété publique MediaName Obtient ou définit le nom utilisé pour identifier un support de sauvegarde donné. (hérité de BackupRestoreBase.)
Propriété publique NoRecovery Obtient ou définit une valeur de propriété Boolean qui détermine si la fin du journal est sauvegardée et si la base de données est restaurée dans l'état de restauration. (hérité de BackupRestoreBase.)
Propriété publique NoRewind Obtient ou définit une valeur de propriété Boolean qui détermine si Microsoft SQL Server gardera la bande ouverte après l'opération de sauvegarde ou de restauration. (hérité de BackupRestoreBase.)
Propriété publique Offset Gets or sets the array of page addresses to be restored.
Propriété publique Partial Gets or sets a Boolean property value that specifies whether a partial or full restore operation will be performed.
Propriété publique PercentCompleteNotification Obtient ou définit l'intervalle en pourcentage pour les appels du gestionnaire d'événements PercentCompleteEventHandler. (hérité de BackupRestoreBase.)
Propriété publique RelocateFiles Gets 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.
Propriété publique ReplaceDatabase Gets or sets a Boolean value that specifies whether a restore operation creates a new image of the restored database.
Propriété publique Restart Obtient ou définit une valeur de propriété Boolean qui détermine si l'opération de sauvegarde ou de restauration redémarre en cas d'interruption. (hérité de BackupRestoreBase.)
Propriété publique RestrictedUser Gets 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.
Propriété publique StandbyFile Gets or sets the name of an undo file that is used as part of the imaging strategy for an instance of SQL Server.
Propriété publique StopAtMarkAfterDate Gets 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.
Propriété publique StopAtMarkName Gets 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.
Propriété publique StopBeforeMarkAfterDate Gets 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.
Propriété publique StopBeforeMarkName Gets 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.
Propriété publique ToPointInTime Gets or sets the endpoint for database log restoration.
Propriété publique UnloadTapeAfter Obtient ou définit une valeur de propriété Boolean qui détermine si le support de bande est rembobiné et déchargé à la fin de l'opération de sauvegarde ou de restauration. (hérité de BackupRestoreBase.)

Haut de la page

Méthodes

  Nom Description
Méthode publique Abort Arrête une opération de sauvegarde ou de restauration en cours d'exécution. (hérité de BackupRestoreBase.)
Méthode publique ClearSuspectPageTable Deletes entries in the suspect page table.
Méthode publique Equals (hérité de Object.)
Méthode publique GetHashCode (hérité de Object.)
Méthode publique GetType (hérité de Object.)
Méthode publique ReadBackupHeader Reads the backup header and returns information about the media contents.
Méthode publique ReadFileList Returns the list of database files on the targeted media.
Méthode publique ReadMediaHeader Reads the media header and returns the media header values.
Méthode publique ReadSuspectPageTable Returns the suspect page table for the targeted instance of SQL Server.
Méthode publique Script Generates a Transact-SQL script that can be used to re-create the restore operation.
Méthode publique SetMediaPassword(SecureString) Obsolète. Définit le mot de passe utilisé pour un support de sauvegarde. (hérité de BackupRestoreBase.)
Méthode publique SetMediaPassword(String) Obsolète. Définit le mot de passe utilisé pour un support de sauvegarde. (hérité de BackupRestoreBase.)
Méthode publique SetPassword(SecureString) Définit le mot de passe utilisé pour un jeu de sauvegarde. (hérité de BackupRestoreBase.)
Méthode publique SetPassword(String) Définit le mot de passe utilisé pour un jeu de sauvegarde. (hérité de BackupRestoreBase.)
Méthode publique SqlRestore Performs a restore operation on the specified server.
Méthode publique SqlRestoreAsync Performs a restore operation asynchronously.
Méthode publique SqlVerify(Server) Checks the media on the instance of SQL Server that is represented by the specified Server object.
Méthode publique SqlVerify(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.
Méthode publique SqlVerify(Server, String%) Checks the media on the instance of SQL Server that is represented by the specified Server object and returns an error message.
Méthode publique SqlVerify(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.
Méthode publique SqlVerifyAsync(Server) Checks the media on the instance of SQL Server that is represented by the specified Server object asynchronously.
Méthode publique SqlVerifyAsync(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.
Méthode publique SqlVerifyLatest(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.
Méthode publique SqlVerifyLatest(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.
Méthode publique SqlVerifyLatest(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.
Méthode publique SqlVerifyLatest(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.
Méthode publique ToString (hérité de Object.)
Méthode publique Wait Attend la fin de l'opération de sauvegarde ou de restauration en cours avant de passer au processus suivant. (hérité de BackupRestoreBase.)

Haut de la page

Événements

  Nom Description
Événement public Complete Se produit lorsque l'opération de sauvegarde ou de restauration est terminée. (hérité de BackupRestoreBase.)
Événement public Information Se produit lorsqu'un message d'information émis par Microsoft SQL Server ne peut pas être géré par les événements Complete NextMedia ou PercentComplete. (hérité de BackupRestoreBase.)
Événement public NextMedia Se produit lorsque l'opération de sauvegarde ou de restauration épuise le média dans un périphérique cible. (hérité de BackupRestoreBase.)
Événement public PercentComplete Se produit lorsqu'une opération de sauvegarde ou de restauration atteint une unité d'achèvement. (hérité de BackupRestoreBase.)

Haut de la page

Champs

  Nom Description
Champ public VerifyComplete Specifies the VerifyCompleteEventHandler.

Haut de la page

Notes

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

Tout membre statique public (Partagé dans Microsoft Visual Basic) de ce type est sûr dans le cadre des opérations à plusieurs threads. Tous les membres de l'instance ne sont pas garantis comme étant 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.

Exemples

The following code example demonstrates how to create a normal and an asynchronous backup of the AdventureWorks2012  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 AdventureWorks2012 database.
Dim db As Database
db = srv.Databases("AdventureWorks2012")
'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 AdventureWorks2012"
bk.BackupSetName = "AdventureWorks2012 Backup"
bk.Database = "AdventureWorks2012"
'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 AdventureWorks2012 database before restoring it.
srv.Databases("AdventureWorks2012").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 = "AdventureWorks2012"
'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("AdventureWorks2012").DatabaseOptions.RecoveryModel = recoverymod
'Drop the table that was added.
srv.Databases("AdventureWorks2012").Tables("test_table").Drop()
srv.Databases("AdventureWorks2012").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("AdventureWorks2012")
$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 AdventureWorks2012"
$bk.BackupSetName = "AdventureWorks2012 Backup"
$bk.Database = "AdventureWorks2012"
$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 = "AdventureWorks2012"
$srv.Databases["AdventureWorks2012"].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["AdventureWorks2012"].DatabaseOptions.RecoveryModel = $recoverymod
$srv.Databases["AdventureWorks2012"].Tables["test_table"].Drop()
$srv.Databases["AdventureWorks2012"].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

Sécurité des threads

Tous les membres publics static (Shared dans Visual Basic) de ce type sont thread-safe. Tous les membres de l'instance ne sont pas garantis comme étant thread-safe.

Voir aussi

Référence

Espace de noms Microsoft.SqlServer.Management.Smo

Autres ressources

RESTORE (Transact-SQL)

Sauvegarde et restauration des bases de données SQL Server

Sauvegarde et restauration des bases de données et journaux de transactions