共用方式為


Restore 類別

The Restore object provides programmatic access to restore operations.

繼承階層

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

命名空間:  Microsoft.SqlServer.Management.Smo
組件:  Microsoft.SqlServer.SmoExtended (在 Microsoft.SqlServer.SmoExtended.dll 中)

語法

'宣告
Public NotInheritable Class Restore _
    Inherits BackupRestoreBase
'用途
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

Restore 型別公開下列成員。

建構函式

  名稱 說明
公用方法 Restore() Initializes a new instance of the Restore class.
公用方法 Restore(String, BackupSet) Initializes a new instance of the Restore class with specified destination database name and backup set.

上層

屬性

  名稱 說明
公用屬性 Action Gets or sets the type of restore to be performed.
公用屬性 AsyncStatus 取得備份或還原程序的非同步狀態。 (繼承自 BackupRestoreBase。)
公用屬性 BlockSize 取得或設定備份或還原的實體區塊大小 (以位元組為單位)。 (繼承自 BackupRestoreBase。)
公用屬性 BufferCount 取得或設定要用於備份或還原作業的 I/O 緩衝區總數。 (繼承自 BackupRestoreBase。)
公用屬性 Checksum 取得或設定 Boolean 屬性值,決定備份或還原作業期間是否計算總和檢查碼值。 (繼承自 BackupRestoreBase。)
公用屬性 ClearSuspectPageTableAfterRestore Gets or sets a Boolean value that determines whether entries in the suspect page table will be deleted following the restore operation.
公用屬性 ContinueAfterError 取得或設定 Boolean 屬性值,可決定備份或還原是否在發生總和檢查碼錯誤之後繼續進行。 (繼承自 BackupRestoreBase。)
公用屬性 Database 取得或設定備份或還原作業執行所在的資料庫。 (繼承自 BackupRestoreBase。)
公用屬性 DatabaseFileGroups 取得 SQL Server 檔案群組,該檔案群組為備份或還原作業的目標。 (繼承自 BackupRestoreBase。)
公用屬性 DatabaseFiles 取得作業系統檔案,該檔案為備份或還原作業的目標。 (繼承自 BackupRestoreBase。)
公用屬性 DatabasePages Gets the list of the restore pages.
公用屬性 Devices 取得為備份或還原作業指定的備份裝置。 (繼承自 BackupRestoreBase。)
公用屬性 FileNumber Gets or sets the index number used to identify the targeted backup set on the backup medium.
公用屬性 KeepReplication Gets or sets a Boolean property value that specifies whether to maintain a replication configuration during a restore operation.
公用屬性 MaxTransferSize 取得或設定要在備份媒體與 SQL Server 執行個體之間傳送的最大位元組數目。 (繼承自 BackupRestoreBase。)
公用屬性 MediaName 取得或設定用來識別特定媒體集的名稱。 (繼承自 BackupRestoreBase。)
公用屬性 NoRecovery 取得或設定 Boolean 屬性值,決定是否備份記錄檔的尾端,以及是否將資料庫還原為「正在還原」的狀態。 (繼承自 BackupRestoreBase。)
公用屬性 NoRewind 取得或設定 Boolean 屬性值,可決定 Microsoft SQL Server 是否在備份或還原作業之後讓磁帶保持開啟。 (繼承自 BackupRestoreBase。)
公用屬性 Offset Gets or sets the array of page addresses to be restored.
公用屬性 Partial Gets or sets a Boolean property value that specifies whether a partial or full restore operation will be performed.
公用屬性 PercentCompleteNotification 取得或設定 PercentCompleteEventHandler 事件處理常式呼叫的百分比間隔。 (繼承自 BackupRestoreBase。)
公用屬性 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.
公用屬性 ReplaceDatabase Gets or sets a Boolean value that specifies whether a restore operation creates a new image of the restored database.
公用屬性 Restart 取得或設定 Boolean 屬性值,可決定備份或還原作業是否將在中斷之後重新啟動。 (繼承自 BackupRestoreBase。)
公用屬性 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.
公用屬性 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.
公用屬性 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.
公用屬性 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.
公用屬性 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.
公用屬性 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.
公用屬性 ToPointInTime Gets or sets the endpoint for database log restoration.
公用屬性 UnloadTapeAfter 取得或設定 Boolean 屬性值,決定是否在備份或還原作業完成之後倒轉或卸載磁帶媒體。 (繼承自 BackupRestoreBase。)

上層

方法

  名稱 說明
公用方法 Abort 終止執行中的備份或還原作業。 (繼承自 BackupRestoreBase。)
公用方法 ClearSuspectPageTable Deletes entries in the suspect page table.
公用方法 Equals (繼承自 Object。)
公用方法 GetHashCode (繼承自 Object。)
公用方法 GetType (繼承自 Object。)
公用方法 ReadBackupHeader Reads the backup header and returns information about the media contents.
公用方法 ReadFileList Returns the list of database files on the targeted media.
公用方法 ReadMediaHeader Reads the media header and returns the media header values.
公用方法 ReadSuspectPageTable Returns the suspect page table for the targeted instance of SQL Server.
公用方法 Script Generates a Transact-SQL script that can be used to re-create the restore operation.
公用方法 SetMediaPassword(SecureString) 已經過時。設定媒體集的密碼。 (繼承自 BackupRestoreBase。)
公用方法 SetMediaPassword(String) 已經過時。設定媒體集的密碼。 (繼承自 BackupRestoreBase。)
公用方法 SetPassword(SecureString) 設定備份組的密碼。 (繼承自 BackupRestoreBase。)
公用方法 SetPassword(String) 設定備份組的密碼。 (繼承自 BackupRestoreBase。)
公用方法 SqlRestore Performs a restore operation on the specified server.
公用方法 SqlRestoreAsync Performs a restore operation asynchronously.
公用方法 SqlVerify(Server) Checks the media on the instance of SQL Server that is represented by the specified Server object.
公用方法 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.
公用方法 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.
公用方法 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.
公用方法 SqlVerifyAsync(Server) Checks the media on the instance of SQL Server that is represented by the specified Server object asynchronously.
公用方法 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.
公用方法 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.
公用方法 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.
公用方法 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.
公用方法 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.
公用方法 ToString (繼承自 Object。)
公用方法 Wait 等待目前的備份或還原作業完成,再繼續進行下一個程序。 (繼承自 BackupRestoreBase。)

上層

事件

  名稱 說明
公用事件 Complete 備份或還原作業完成時發生。 (繼承自 BackupRestoreBase。)
公用事件 Information CompleteNextMediaPercentComplete 事件無法處理 Microsoft SQL Server 發出的任何參考訊息時發生。 (繼承自 BackupRestoreBase。)
公用事件 NextMedia 備份或還原作業耗盡目標裝置中的媒體時發生。 (繼承自 BackupRestoreBase。)
公用事件 PercentComplete 備份或還原作業到達完成單位時發生。 (繼承自 BackupRestoreBase。)

上層

欄位

  名稱 說明
公用欄位 VerifyComplete Specifies the VerifyCompleteEventHandler.

上層

備註

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

此型別的任何公用靜態 (在 Microsoft Visual Basic 為共用) 成員具備多執行緒作業安全。並非所有的執行個體成員都是安全執行緒。

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 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

執行緒安全性

這個型別的任何公用 static (在 Visual Basic 中為 Shared) 成員都是執行緒安全的。並不是所有的執行個體成員都保證可以用於所有的執行緒。

請參閱

參考

Microsoft.SqlServer.Management.Smo 命名空間

其他資源

RESTORE (Transact-SQL)

SQL Server 資料庫的備份與還原

備份及還原資料庫和交易記錄