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 Microsoft SQL Server에서 백업 또는 복원 작업 후 테이프를 열어 둘지 여부를 결정하는 Boolean 속성 값을 가져오거나 설정합니다. (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 Microsoft SQL Server에서 Complete NextMedia 또는 PercentComplete 이벤트로 처리할 수 없는 정보 메시지를 발행할 때 발생합니다. (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

이 유형의 모든 public static(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 데이터베이스 백업 및 복원

데이터베이스 및 트랜잭션 로그 백업 및 복원