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 クラスの新しいインスタンスを初期化します。 | |
Restore(String, BackupSet) | 指定した対象データベース名とバックアップ セットを使用して 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 から継承されています。) | |
DatabasePages | 復元ページの一覧を取得します。 | |
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 から継承されています。) | |
GetHashCode | (Object から継承されています。) | |
GetType | (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 | Complete 、NextMedia、または PercentComplete イベントによって処理できない情報メッセージが Microsoft SQL Server により発行されると発生します。 (BackupRestoreBase から継承されています。) | |
NextMedia | バックアップまたは復元操作が対象デバイスのメディアを使い果たすと発生します。 (BackupRestoreBase から継承されています。) | |
PercentComplete | バックアップまたは復元操作が完了ユニットに達すると発生します。 (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 のメンバーも復元操作を実行できます。
使用例
次のコード例では、 AdventureWorks2012 データベースの通常のバックアップと非同期バックアップを作成し、それぞれのバックアップを使用してデータベースを復元する方法を示します。
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
スレッド セーフ
この型の public static (Visual Basic では Shared) のメンバーはすべて、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。
関連項目
参照
Microsoft.SqlServer.Management.Smo 名前空間