Restore-SqlDatabase

バックアップまたはトランザクション ログ レコードからデータベースを復元します。

構文

Restore-SqlDatabase
       [-ClearSuspectPageTable]
       [-KeepReplication]
       [-Partial]
       [-ReplaceDatabase]
       [-RestrictedUser]
       [-Offset <Int64[]>]
       [-RelocateFile <RelocateFile[]>]
       [-FileNumber <Int32>]
       [-RestoreAction <RestoreActionType>]
       [-StandbyFile <String>]
       [-StopAtMarkAfterDate <String>]
       [-StopAtMarkName <String>]
       [-StopBeforeMarkAfterDate <String>]
       [-StopBeforeMarkName <String>]
       [-ToPointInTime <String>]
       [-Database] <String>
       [-Path <String[]>]
       [[-BackupFile] <String[]>]
       [-SqlCredential <PSObject>]
       [-BackupDevice <BackupDeviceItem[]>]
       [-PassThru]
       [-Checksum]
       [-ContinueAfterError]
       [-NoRewind]
       [-Restart]
       [-UnloadTapeAfter]
       [-NoRecovery]
       [-DatabaseFile <String[]>]
       [-DatabaseFileGroup <String[]>]
       [-BlockSize <Int32>]
       [-BufferCount <Int32>]
       [-MaxTransferSize <Int32>]
       [-MediaName <String>]
       [-Script]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Restore-SqlDatabase
       [-ClearSuspectPageTable]
       [-KeepReplication]
       [-Partial]
       [-ReplaceDatabase]
       [-RestrictedUser]
       [-Offset <Int64[]>]
       [-RelocateFile <RelocateFile[]>]
       [-FileNumber <Int32>]
       [-RestoreAction <RestoreActionType>]
       [-StandbyFile <String>]
       [-StopAtMarkAfterDate <String>]
       [-StopAtMarkName <String>]
       [-StopBeforeMarkAfterDate <String>]
       [-StopBeforeMarkName <String>]
       [-ToPointInTime <String>]
       [-Database] <String>
       -InputObject <Server[]>
       [[-BackupFile] <String[]>]
       [-SqlCredential <PSObject>]
       [-BackupDevice <BackupDeviceItem[]>]
       [-PassThru]
       [-Checksum]
       [-ContinueAfterError]
       [-NoRewind]
       [-Restart]
       [-UnloadTapeAfter]
       [-NoRecovery]
       [-DatabaseFile <String[]>]
       [-DatabaseFileGroup <String[]>]
       [-BlockSize <Int32>]
       [-BufferCount <Int32>]
       [-MaxTransferSize <Int32>]
       [-MediaName <String>]
       [-Script]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Restore-SqlDatabase
       [-ClearSuspectPageTable]
       [-KeepReplication]
       [-Partial]
       [-ReplaceDatabase]
       [-RestrictedUser]
       [-Offset <Int64[]>]
       [-RelocateFile <RelocateFile[]>]
       [-FileNumber <Int32>]
       [-RestoreAction <RestoreActionType>]
       [-StandbyFile <String>]
       [-StopAtMarkAfterDate <String>]
       [-StopAtMarkName <String>]
       [-StopBeforeMarkAfterDate <String>]
       [-StopBeforeMarkName <String>]
       [-ToPointInTime <String>]
       [-Database] <String>
       -ServerInstance <String[]>
       [-Credential <PSCredential>]
       [-ConnectionTimeout <Int32>]
       [[-BackupFile] <String[]>]
       [-SqlCredential <PSObject>]
       [-BackupDevice <BackupDeviceItem[]>]
       [-PassThru]
       [-Checksum]
       [-ContinueAfterError]
       [-NoRewind]
       [-Restart]
       [-UnloadTapeAfter]
       [-NoRecovery]
       [-DatabaseFile <String[]>]
       [-DatabaseFileGroup <String[]>]
       [-BlockSize <Int32>]
       [-BufferCount <Int32>]
       [-MaxTransferSize <Int32>]
       [-MediaName <String>]
       [-Script]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Restore-SqlDatabase
       [-ClearSuspectPageTable]
       [-KeepReplication]
       [-Partial]
       [-ReplaceDatabase]
       [-RestrictedUser]
       [-Offset <Int64[]>]
       [-RelocateFile <RelocateFile[]>]
       [-FileNumber <Int32>]
       [-RestoreAction <RestoreActionType>]
       [-StandbyFile <String>]
       [-StopAtMarkAfterDate <String>]
       [-StopAtMarkName <String>]
       [-StopBeforeMarkAfterDate <String>]
       [-StopBeforeMarkName <String>]
       [-ToPointInTime <String>]
       [-DatabaseObject] <Database>
       [[-BackupFile] <String[]>]
       [-SqlCredential <PSObject>]
       [-BackupDevice <BackupDeviceItem[]>]
       [-PassThru]
       [-Checksum]
       [-ContinueAfterError]
       [-NoRewind]
       [-Restart]
       [-UnloadTapeAfter]
       [-NoRecovery]
       [-DatabaseFile <String[]>]
       [-DatabaseFileGroup <String[]>]
       [-BlockSize <Int32>]
       [-BufferCount <Int32>]
       [-MaxTransferSize <Int32>]
       [-MediaName <String>]
       [-Script]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

説明

Restore-SqlDatabase コマンドレットは、SQL Server データベースに対して復元操作を実行します。 これには、データベースの完全復元、トランザクション ログの復元、およびデータベース ファイルの復元が含まれます。

このコマンドレットは、 Microsoft.SqlServer.Management.Smo.Restore クラスをモデル化したものです。 このコマンドレットのパラメーターは、通常 、Smo.Restore オブジェクトのプロパティに対応しています。

例 1: ネットワーク共有上のバックアップ ファイルからデータベースを復元する

PS C:\> Restore-SqlDatabase -ServerInstance "Computer\Instance" -Database "MainDB" -BackupFile "\\mainserver\databasebackup\MainDB.bak"

このコマンドは、ファイル \\mainserver\databasebackup\MainDB.bak からサーバー インスタンス Computer\Instance に完全なデータベース MainDB を復元します。

例 2: データベース トランザクション ログを復元する

PS C:\> Restore-SqlDatabase -ServerInstance "Computer\Instance" -Database "MainDB" -BackupFile "\\mainserver\databasebackup\MainDB.trn" -RestoreAction Log

このコマンドは、データベース MainDB のトランザクション ログをファイル \\mainserver\databasebackup\MainDB.trn からサーバー インスタンス Computer\Instance に復元します。

例 3: データベースを復元し、パスワードの入力を求めるメッセージを表示する

PS C:\> Restore-SqlDatabase -ServerInstance "Computer\Instance" -Database "MainDB" -BackupFile "\\mainserver\databasebackup\MainDB.bak" -Credential (Get-Credential "sa")

このコマンドは、sa SQL ログインを使用して、ファイル \\mainserver\databasebackup\MainDB.trn からサーバー インスタンス Computer\Instance に完全なデータベース MainDB を復元します。 このコマンドを実行すると、認証を完了するためのパスワードの入力を求められます。

例 4: NORECOVERY オプションを使用してトランザクション・ログを復元する

PS C:\> Restore-SqlDatabase -ServerInstance "Computer\Instance" -Database "MainDB" -BackupFile "\\mainserver\databasebackup\MainDB.trn" -RestoreAction Log -NoRecovery

このコマンドは、ファイル \\mainserver\databasebackup\MainDB.trn からサーバー インスタンス 'Computer\Instance' に NORECOVERY オプションを指定して、データベース MainDB のトランザクション ログを復元します。

例 5: トランザクション ログ レコードを特定の時点まで復元する

PS C:\> Restore-SqlDatabase -ServerInstance "Computer\Instance" -Database "MainDB" -BackupFile "\\mainserver\databasebackup\MainDB.trn" -RestoreAction Log -ToPointInTime "Nov 11, 2011 11:11 AM"

このコマンドは、データベース MainDB のトランザクション ログを、2011 年 11 月 11 日午前 11 時 11 分 11 秒の ToPointInTime パラメーターに渡された日付まで復元します。

例 6: データベースを復元し、データ ファイルとログ ファイルを再配置する

PS C:\> $RelocateData = New-Object Microsoft.SqlServer.Management.Smo.RelocateFile("MainDB_Data", "c:\MySQLServer\MainDB.mdf")
PS C:\> $RelocateLog = New-Object Microsoft.SqlServer.Management.Smo.RelocateFile("MainDB_Log", "c:\MySQLServer\MainDB.ldf")
PS C:\> Restore-SqlDatabase -ServerInstance "Computer\Instance" -Database "MainDB" -BackupFile "\\mainserver\databasebackup\MainDB.trn" -RelocateFile @($RelocateData,$RelocateLog)

次の使用例は、データベース MainDB 全体をサーバー インスタンス Computer\Instance に復元し、データ ファイルとログ ファイルを再配置します。 この例では、移動される各ファイルについて、 Microsoft.SqlServer.Management.Smo.RelocateFile クラスのインスタンスを構築します。 各コンストラクターは、2 つの引数 (ファイルの論理名と、ファイルがターゲット サーバーに配置される物理的な場所) を受け取ります。 RelocateFile オブジェクトは、Restore-SqlDatabase コマンドレットの RelocateFile パラメーターに渡されます。

例 7: テープからデータベースを復元する

PS C:\> $TapeDevice = New-Object Microsoft.Sqlserver.Management.Smo.BackupDeviceItem("\\.\tape0", "Tape")
PS C:\> Restore-SqlDatabase -ServerInstance "Computer\Instance" -Database "MainDB" -BackupDevice $TapeDevice

次の使用例は、データベース MainDB を \\.\tape0 という名前のテープ デバイスからサーバー インスタンス Computer\Instance に復元します。 このデバイスを表すために、この例では Microsoft.Sqlserver.Management.Smo.BackupDeviceItem クラスのインスタンスを構築します。 コンストラクターは、バックアップ デバイスの名前とバックアップ デバイスの種類という 2 つの引数を受け取ります。 この BackupDeviceItem オブジェクトは、Restore-SqlDatabase コマンドレットの -BackupDevice パラメーターに渡されます。

例 8: Azure Blob Storage サービスからデータベースを復元する

PS C:\> Restore-SqlDatabase -ServerInstance "Computer\Instance" -Database "MainDB" -BackupFile "https://mystorageaccountname.blob.core.windows.net/container/MyDB.bak" -SqlCredential "mySqlCredential"

このコマンドは、Windows Azure Blob Storage サービス上のファイルからサーバー インスタンス Computer\Instance にデータベース MainDB 全体を復元します。

パラメーター

-BackupDevice

バックアップを格納するデバイスを指定します。 このパラメーターは BackupFile パラメーターと共に使用できません。 テープ 装置にバックアップする場合は、このパラメーターを使用します。

Type:BackupDeviceItem[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-BackupFile

バックアップ ファイルが格納される場所を指定します。 このパラメーターは省略可能です。 指定しない場合、サーバーの既定のバックアップ場所で、ログの復元にデータベース名>.trn という名前<、または<他のすべての種類の復元のデータベース名>.bakが検索されます。 このパラメーターは BackupDevice パラメーターと共に使用できません。 Windows Azure Blob Storage サービス (URL) にバッキングする場合は、このパラメーターまたは BackupDevice パラメーターを指定する必要があります。

Type:String[]
Position:3
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-BlockSize

バックアップの物理ブロック サイズをバイト単位で指定します。 サポートされるサイズは、512、1024、2048、4096、8192、16384、32768、および 65536 (64 KB) バイトです。 既定値は、テープ デバイスの場合は 65536、他のすべてのデバイスの場合は 512 です。

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-BufferCount

バックアップ操作に使用される I/O バッファーの総数を指定します。 任意の正の整数値を指定できます。 バッファーの Sqlservr.exe プロセスに仮想アドレス空間が不足している場合は、メモリ不足エラーが発生します。

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Checksum

復元操作中にチェックサム値が計算されることを示します。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ClearSuspectPageTable

復元操作後に、疑わしいページ テーブルが削除されることを示します。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

コマンドレットの実行前に確認を求めるメッセージが表示されます。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ConnectionTimeout

タイムアウトエラーが発生するまでのサーバー接続を待機する秒数を指定します。 タイムアウト値には、0 ~ 65,534 の範囲の整数値を指定する必要があります。 0 を指定した場合、接続試行はタイムアウトしません。

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ContinueAfterError

チェックサム エラーが発生したときに操作が続行されることを示します。 設定されていない場合、チェックサム エラーの後に操作は失敗します。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

この操作を実行する権限を持つSQL Server ログインの資格情報を含む PSCredential オブジェクトを指定します。

Type:PSCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Database

復元するデータベースの名前を指定します。 これは DatabaseObject パラメーターでは使用できません。 このパラメーターを使用する場合は、 PathInputObject、または ServerInstance パラメーターも指定する必要があります。

Type:String
Position:2
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-DatabaseFile

復元操作の対象となるデータベース ファイルを指定します。 これは、 RestoreAction パラメーターが Files に設定されている場合にのみ使用されます。 RestoreAction パラメーターが Files に設定されている場合は、DatabaseFileGroups または DatabaseFiles パラメーターも指定する必要があります。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DatabaseFileGroup

復元操作の対象となるデータベース ファイル グループを指定します。 これは、 RestoreAction パラメーターが File に設定されている場合にのみ使用されます。 RestoreAction パラメーターが Files に設定されている場合は、DatabaseFileGroups または DatabaseFiles パラメーターも指定する必要があります。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DatabaseObject

復元操作のデータベース オブジェクトを指定します。

Type:Database
Position:2
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-FileNumber

バックアップ メディア上のターゲット バックアップ セットを識別するために使用されるインデックス番号を指定します。

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputObject

復元が行われるSQL Server インスタンスのサーバー オブジェクトを指定します。

Type:Server[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-KeepReplication

レプリケーション構成が保持されることを示します。 設定されていない場合、レプリケーション構成は復元操作によって無視されます。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaxTransferSize

バックアップ メディアとSQL Server インスタンスの間で転送される最大バイト数を指定します。 指定できる値は、最大4194304 バイト (4 MB) の 65536 バイト (64 KB) の倍数です。

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MediaName

メディア セットを識別する名前を指定します。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NoRecovery

データベースが復元状態に復元されることを示します。 ロールバック操作は行われず、追加のバックアップを復元できます。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NoRewind

復元が完了したときに、テープ ドライブが終了位置で開いたままであることを示します。 このパラメーターを設定しないと、操作の完了後、テープが巻き戻されます。 これは、ディスクの復元には適用されません。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Offset

復元するページ アドレスを指定します。 これは、 RestoreAction パラメーターが OnlinePage に設定されている場合にのみ使用されます。

Type:Int64[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Partial

復元操作が部分復元であることを示します。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-PassThru

このコマンドレットが、復元操作の実行に使用される Smo.Backup オブジェクトを出力することを示します。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

復元操作を実行するSQL Server インスタンスのパスを指定します。 このパラメーターは省略可能です。 指定しない場合は、現在の作業場所が使用されます。

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RelocateFile

Smo.Relocate ファイル オブジェクトの一覧を指定します。 それぞれのオブジェクトは、論理バックアップ ファイル名と物理ファイル システムの場所で構成されます。 復元操作を実行すると、復元されたデータベースがターゲット サーバー上の指定された物理的な場所に移動されます。

Type:RelocateFile[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ReplaceDatabase

データベースの新しいイメージが作成されることを示します。 これにより、同じ名前の既存のデータベースが上書きされます。 設定されていない場合、その名前のデータベースがサーバー上に既に存在する場合、復元操作は失敗します。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Restart

このコマンドレットが部分的に完了した復元操作を再開することを示します。 設定されていない場合、コマンドレットはバックアップ セットの先頭で中断された復元操作を再開します。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RestoreAction

実行される復元操作の種類を指定します。 有効な値は次のとおりです。

  • データベース。 データベースが復元されます。
  • ファイル 1 つ以上のデータ ファイルが復元されます。 DatabaseFile または DatabaseFileGroup パラメーターを指定する必要があります。
  • ログ。 トランスアクション ログが復元されます。
  • OnlinePage。 ユーザーがデータベースを使用できるように、データ ページがオンラインで復元されます。
  • OnlineFiles。 ユーザーがデータベースを使用できるように、データ ファイルはオンラインで復元されます。 DatabaseFile または DatabaseFileGroup パラメーターを指定する必要があります。
Type:RestoreActionType
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RestrictedUser

復元されたデータベースへのアクセスが、db_owner固定データベース ロール、および dbcreator および sysadmin 固定サーバー ロールに制限されていることを示します。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Script

このコマンドレットが、復元操作を実行する Transact-SQL スクリプトを出力することを示します。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ServerInstance

SQL Server インスタンスの名前を指定します。 このサーバー インスタンスが、復元操作の対象となります。

Type:String[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-SqlCredential

認証情報を格納するSQL Server資格情報オブジェクトを指定します。 Blob Storage サービスにバックアップする場合は、このパラメーターを指定する必要があります。 格納される認証情報には、ストレージ アカウント名と、関連付けられているアクセス キー値が含まれます。 ディスクまたはテープには、このパラメーターを指定しないでください。

Type:PSObject
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StandbyFile

SQL Server インスタンスのイメージング戦略の一部として使用される元に戻すファイルの名前を指定します。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StopAtMarkAfterDate

StopAtMarkName パラメーターで指定されたマーク名と共に使用する日付を指定して、回復操作の停止ポイントを決定します。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StopAtMarkName

復旧操作を停止するマーク付きトランザクションを指定します。 これは、 StopAtMarkAfterDate パラメーターと共に使用して、回復操作の停止ポイントを決定します。 回復されたデータには、マークを含むトランザクションが含まれます。 StopAtMarkAfterDate 値が設定されていない場合、指定した名前の最初のマークで回復が停止します。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StopBeforeMarkAfterDate

StopBeforeMarkName パラメーターと共に使用して、回復操作の停止ポイントを決定する日付を指定します。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StopBeforeMarkName

復旧操作を停止する前にマークされたトランザクションを指定します。 これは、 StopBeforeMarkAfterDate パラメーターと共に使用して、回復操作の停止ポイントを決定します。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ToPointInTime

データベース ログ復元のエンドポイントを指定します。 これは、 RestoreAction パラメーターが Log に設定されている場合にのみ適用されます。

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UnloadTapeAfter

操作の完了時にテープ 装置が巻き戻されてアンロードされることを示します。 設定されていない場合、テープ メディアの巻き戻しとアンロードは試行されません。 これは、ディスク バックアップには適用されません。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

入力

Smo.Server

SMO を指定します復元操作が実行されるSQL Server インスタンスを表すサーバー オブジェクト。