Share via


Restore クラス

Restore オブジェクトを使用すると、プログラムで復元操作にアクセスできます。

継承階層

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 Restore クラスの新しいインスタンスを初期化します。

先頭に戻る

プロパティ

  名前 説明
パブリック プロパティ Action 実行する復元の種類を取得します。値の設定も可能です。
パブリック プロパティ AsyncStatus バックアップまたは復元プロセスの非同期状態を取得します。 (BackupRestoreBase から継承されています。)
パブリック プロパティ BlockSize バックアップまたは復元の物理ブロック サイズ (バイト単位) を取得します。値の設定も可能です。 (BackupRestoreBase から継承されています。)
パブリック プロパティ BufferCount バックアップ操作または復元操作に使用される I/O バッファーの総数を取得します。値の設定も可能です。 (BackupRestoreBase から継承されています。)
パブリック プロパティ Checksum バックアップまたは復元操作中にチェックサム値を計算するかどうかを示す Boolean プロパティ値を取得または設定します。 (BackupRestoreBase から継承されています。)
パブリック プロパティ ClearSuspectPageTableAfterRestore 復元操作の後に未確認のページ テーブル内のエントリを削除するかどうかを示す Boolean 値を取得します。値の設定も可能です。
パブリック プロパティ ContinueAfterError バックアップまたは復元がチェックサム エラーが発生した後も続行されるかどうかを示す Boolean プロパティ値を取得または設定します。 (BackupRestoreBase から継承されています。)
パブリック プロパティ Database バックアップまたは復元操作を実行する対象のデータベースを取得または設定します。 (BackupRestoreBase から継承されています。)
パブリック プロパティ DatabaseFileGroups バックアップまたは復元操作の対象となる SQL Server ファイル グループを取得します。 (BackupRestoreBase から継承されています。)
パブリック プロパティ DatabaseFiles バックアップまたは復元操作の対象となるオペレーティング システム ファイルを取得します。 (BackupRestoreBase から継承されています。)
パブリック プロパティ Devices バックアップまたは復元操作に対して指定されているバックアップ デバイスを取得します。 (BackupRestoreBase から継承されています。)
パブリック プロパティ FileNumber バックアップ メディア上の対象のバックアップ セットを識別するために使用されるインデックス番号を取得します。値の設定も可能です。
パブリック プロパティ KeepReplication 復元操作時にレプリケーション構成を維持するかどうかを示す Boolean プロパティ値を取得します。値の設定も可能です。
パブリック プロパティ MaxTransferSize バックアップ メディアと SQL Server のインスタンス間で転送される最大バイト数を取得します。値の設定も可能です。 (BackupRestoreBase から継承されています。)
パブリック プロパティ MediaName 特定のメディア セットを識別するために使用する名前を取得します。値の設定も可能です。 (BackupRestoreBase から継承されています。)
パブリック プロパティ NoRecovery ログの末尾がバックアップされるかどうか、およびデータベースが Restoring 状態に復元されるかどうかを示す Boolean プロパティ値を取得または設定します。 (BackupRestoreBase から継承されています。)
パブリック プロパティ NoRewind バックアップまたは復元操作の後に Microsoft SQL Server でテープを開いたままにするかどうかを示す Boolean プロパティ値を取得します。値の設定も可能です。 (BackupRestoreBase から継承されています。)
パブリック プロパティ Offset 復元するページ アドレスの配列を取得します。値の設定も可能です。
パブリック プロパティ Partial 部分的な復元操作と完全な復元操作のどちらを実行するかを示す Boolean プロパティ値を取得します。値の設定も可能です。
パブリック プロパティ PercentCompleteNotification PercentCompleteEventHandler イベント ハンドラーの呼び出し間隔の割合を取得または設定します。 (BackupRestoreBase から継承されています。)
パブリック プロパティ RelocateFiles データベースを新しい物理的な場所に復元するときにデータベース ストレージのリダイレクトに使用される、データベース論理ファイル名とオペレーティング システム物理ファイル名の配列を取得します。
パブリック プロパティ ReplaceDatabase 復元したデータベースの新しいイメージを復元操作で作成するかどうかを示す Boolean 値を取得します。値の設定も可能です。
パブリック プロパティ Restart バックアップまたは復元操作が中断された場合に再開するかどうかを示す Boolean プロパティ値を取得または設定します。 (BackupRestoreBase から継承されています。)
パブリック プロパティ RestrictedUser 復元したデータベースへのアクセスを、固定データベース ロール db_owner のメンバーと固定サーバー ロール dbcreator および sysadmin のメンバーに制限するかどうかを示す Boolean プロパティ値を取得します。値の設定も可能です。
パブリック プロパティ StandbyFile SQL Server インスタンスのイメージング方法の一部として使用される UNDO ファイルの名前を取得します。値の設定も可能です。
パブリック プロパティ StopAtMarkAfterDate 復旧操作の停止位置を表すために StopAtMarkName が示すマーク名と共に使用される日付を取得します。値の設定も可能です。
パブリック プロパティ StopAtMarkName 復旧操作の停止位置を表すために StopAtMarkAfterDate が示す日付と共に使用されるマーク名を取得します。値の設定も可能です。
パブリック プロパティ StopBeforeMarkAfterDate 復旧操作の停止位置を表すために StopBeforeMarkName が示すマーク名と共に使用される日付を取得します。値の設定も可能です。
パブリック プロパティ StopBeforeMarkName 復旧操作の停止位置を表すために StopBeforeMarkAfterDate が示す日付と共に使用されるマーク名を取得します。値の設定も可能です。
パブリック プロパティ ToPointInTime データベース ログの復元のエンドポイントを取得します。値の設定も可能です。
パブリック プロパティ UnloadTapeAfter バックアップまたは復元操作の完了後にテープ メディアが巻き戻されてアンロードされるかどうかを示す Boolean プロパティ値を取得または設定します。 (BackupRestoreBase から継承されています。)

先頭に戻る

メソッド

  名前 説明
パブリック メソッド Abort 実行中のバックアップまたは復元操作を終了します。 (BackupRestoreBase から継承されています。)
パブリック メソッド ClearSuspectPageTable 未確認のページ テーブルのエントリを削除します。
パブリック メソッド Equals (Object から継承されています。)
プロテクト メソッド ExecuteSql SQL Server の指定したインスタンスについて結果セットが返される必要のない、Transact-SQL ステートメントのバッチを実行します。 (BackupRestoreBase から継承されています。)
プロテクト メソッド ExecuteSqlAsync SQL Server の指定したインスタンスについて結果セットが返される必要のない、Transact-SQL ステートメントのバッチを非同期に実行します。 (BackupRestoreBase から継承されています。)
プロテクト メソッド ExecuteSqlWithResults SQL Server の指定したインスタンスについて 1 つ以上の結果セットが返される必要のある、Transact-SQL ステートメントのバッチを実行します。 (BackupRestoreBase から継承されています。)
プロテクト メソッド Finalize (Object から継承されています。)
プロテクト メソッド GetDevicesScript デバイスの作成に使用されるスクリプトを取得します。 (BackupRestoreBase から継承されています。)
パブリック メソッド GetHashCode (Object から継承されています。)
パブリック メソッド GetType (Object から継承されています。)
プロテクト メソッド IsStringValid 指定した文字列が有効かどうかを確認します。 (BackupRestoreBase から継承されています。)
プロテクト メソッド MemberwiseClone (Object から継承されています。)
パブリック メソッド ReadBackupHeader バックアップ ヘッダーを読み取り、メディアの内容に関する情報を返します。
パブリック メソッド ReadFileList 対象メディアのデータベース ファイルの一覧を返します。
パブリック メソッド ReadMediaHeader メディア ヘッダーを読み取り、メディア ヘッダー値を返します。
パブリック メソッド ReadSuspectPageTable 対象となる SQL Server インスタンスの未確認のページ テーブルを返します。
パブリック メソッド Script 復元操作の再作成に使用できる Transact-SQL スクリプトを生成します。
パブリック メソッド SetMediaPassword(SecureString) メディア セットのパスワードを設定します。 (BackupRestoreBase から継承されています。)
パブリック メソッド SetMediaPassword(String) メディア セットのパスワードを設定します。 (BackupRestoreBase から継承されています。)
パブリック メソッド SetPassword(SecureString) バックアップ セットのパスワードを設定します。 (BackupRestoreBase から継承されています。)
パブリック メソッド SetPassword(String) バックアップ セットのパスワードを設定します。 (BackupRestoreBase から継承されています。)
パブリック メソッド SqlRestore 指定したサーバーで復元操作を実行します。
パブリック メソッド SqlRestoreAsync 復元操作を非同期で実行します。
パブリック メソッド SqlVerify(Server) 指定した Server オブジェクトによって表される SQL Server のインスタンス上のメディアを確認します。
パブリック メソッド SqlVerify(Server, Boolean) 指定した Server オブジェクトによって表される SQL Server のインスタンス上のメディアを確認し、履歴テーブルにバックアップ履歴情報を読み込みます。
パブリック メソッド SqlVerify(Server, String%) 指定した Server オブジェクトによって表される SQL Server のインスタンス上のメディアを確認し、エラー メッセージを返します。
パブリック メソッド SqlVerify(Server, Boolean, String%) 指定した Server オブジェクトによって表される SQL Server のインスタンス上のメディアを確認し、履歴テーブルにバックアップ履歴情報を読み込み、エラー メッセージを返します。
パブリック メソッド SqlVerifyAsync(Server) 指定した Server オブジェクトによって表される SQL Server のインスタンス上のメディアを非同期で確認します。
パブリック メソッド SqlVerifyAsync(Server, Boolean) 指定した Server オブジェクトによって表される SQL Server のインスタンス上のメディアを非同期で確認し、履歴テーブルにバックアップ履歴情報を読み込みます。
パブリック メソッド SqlVerifyLatest(Server) 最新のバックアップを確認しますが、復元は行いません。また、バックアップ セットが完全なバックアップ セットであり、バックアップ全体が読み取り可能であることを確認します。
パブリック メソッド SqlVerifyLatest(Server, SqlVerifyAction) 指定したアクションで最新のバックアップを確認します。また、バックアップ セットが完全なバックアップ セットであり、バックアップ全体が読み取り可能であることを確認します。
パブリック メソッド SqlVerifyLatest(Server, String%) 最新のバックアップを確認しますが、復元は行いません。また、バックアップ セットが完全なバックアップ セットであり、バックアップ全体が読み取り可能であることを確認して、エラー メッセージを返します。
パブリック メソッド SqlVerifyLatest(Server, SqlVerifyAction, String%) 指定したアクションで最新のバックアップを確認します。また、バックアップ セットが完全なバックアップ セットであり、バックアップ全体が読み取り可能であることを確認して、エラー メッセージを返します。
パブリック メソッド ToString (Object から継承されています。)
パブリック メソッド Wait 次のプロセスに進む前に、現在のバックアップまたは復元操作が完了するまで待機します。 (BackupRestoreBase から継承されています。)

先頭に戻る

イベント

  名前 説明
パブリック イベント Complete バックアップまたは復元操作が完了すると発生します。 (BackupRestoreBase から継承されています。)
パブリック イベント Information CompleteNextMedia、または PercentComplete イベントによって処理できない情報メッセージが Microsoft SQL Server により発行されると発生します。 (BackupRestoreBase から継承されています。)
パブリック イベント NextMedia バックアップまたは復元操作が対象デバイスのメディアを使い果たすと発生します。 (BackupRestoreBase から継承されています。)
パブリック イベント PercentComplete バックアップまたは復元操作が完了ユニットに達すると発生します。 (BackupRestoreBase から継承されています。)

先頭に戻る

フィールド

  名前 説明
プロテクト フィールド currentAsyncOperation バックアップ操作、復元操作、操作なしなどの現在の非同期操作を指定します。 (BackupRestoreBase から継承されています。)
プロテクト フィールド m_BackupAction データベース、ログなどのバックアップ操作の種類を指定します。 (BackupRestoreBase から継承されています。)
プロテクト フィールド m_LogTruncation ログを切り捨てるかどうかを指定します。 (BackupRestoreBase から継承されています。)
プロテクト フィールド m_RestoreAction データベース、ログなどの復元操作の種類を指定します。 (BackupRestoreBase から継承されています。)
パブリック フィールド VerifyComplete VerifyCompleteEventHandler を指定します。

先頭に戻る

説明

Restore オブジェクトを使用すると、次のような操作を実行できます。

  • データベースのすべてまたは一部の復元

  • トランザクション ログ レコードのバックアップ イメージの復元

  • バックアップ メディアの整合性の確認

  • バックアップ メディアの内容の報告

  • 復元操作の監視、およびユーザーへの状態の報告

SQL Server では、ディスク、テープ、名前付きパイプ、またはバックアップ デバイスの 4 種類のメディアのいずれかにバックアップを書き込めます。SQL Server は、バックアップのストライピングをサポートします。ストライピングしたバックアップとは、複数のデバイスに書き込まれたバックアップのことです。ストライピングは、単一のメディアの種類に対してのみサポートされています。つまり、バックアップを 2 つのテープ デバイスに書き込むことは可能です。バックアップの半分をテープ デバイスに書き込み、残りの半分をディスクに書き込むことはできません。

Restore オブジェクトを使用するときは、最低でも復元元の値を指定します。メディアの種類のプロパティを 1 つ使用し、復元操作元を指定します。

目的の復元操作によっては、Restore オブジェクトで他のプロパティを設定する必要があります。

スレッド セーフ

この型の public static (Microsoft Visual Basic では Shared) のすべてのメンバーは、マルチスレッド操作で安全に使用できます。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

Restore オブジェクトのプロパティを取得するには、固定サーバー ロール public のメンバーでも可能です。

Restore オブジェクトのプロパティを設定するには、サーバーの CREATE DATABASE 権限を持っているか、固定サーバー ロール sysadmin または dbcreator のメンバー、あるいは固定データベース ロール db_owner のメンバーである必要があります。

復元操作を実行するには、サーバーの CREATE DATABASE 権限を持っているか、固定サーバー ロール sysadmin または dbcreator のメンバーである必要があります。データベースが既に存在する場合は、固定データベース ロール db_owner のメンバーも復元操作を実行できます。

使用例

次のコード例では、AdventureWorks2008R2 データベースの通常のバックアップと非同期バックアップを作成し、それぞれのバックアップを使用してデータベースを復元する方法を示します。

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

スレッド セーフ

この型の public static (Visual Basic では Shared) のメンバーはすべて、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。