次の方法で共有


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 パラメーターと共に使用できません。 テープ 装置にバックアップする場合は、このパラメーターを使用します。

型:BackupDeviceItem[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-BackupFile

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

型:String[]
配置:3
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-BlockSize

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

型:Int32
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-BufferCount

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

型:Int32
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Checksum

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

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ClearSuspectPageTable

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

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Confirm

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

型:SwitchParameter
Aliases:cf
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ConnectionTimeout

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

型:Int32
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ContinueAfterError

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

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Credential

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

型:PSCredential
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Database

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

型:String
配置:2
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-DatabaseFile

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

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-DatabaseFileGroup

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

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-DatabaseObject

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

型:Database
配置:2
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-FileNumber

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

型:Int32
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-InputObject

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

型:Server[]
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-KeepReplication

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

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-MaxTransferSize

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

型:Int32
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-MediaName

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

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-NoRecovery

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

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-NoRewind

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

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Offset

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

型:Int64[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Partial

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

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-PassThru

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

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Path

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

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-RelocateFile

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

型:RelocateFile[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ReplaceDatabase

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

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Restart

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

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-RestoreAction

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

  • データベース。 データベースが復元されます。
  • ファイル 1 つ以上のデータ ファイルが復元されます。 DatabaseFile または DatabaseFileGroup パラメーターを指定する必要があります。
  • ログ。 トランスアクション ログが復元されます。
  • OnlinePage。 ユーザーがデータベースを使用できるように、データ ページがオンラインで復元されます。
  • OnlineFiles。 ユーザーがデータベースを使用できるように、データ ファイルはオンラインで復元されます。 DatabaseFile または DatabaseFileGroup パラメーターを指定する必要があります。
型:RestoreActionType
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-RestrictedUser

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

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Script

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

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ServerInstance

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

型:String[]
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-SqlCredential

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

型:PSObject
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-StandbyFile

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

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-StopAtMarkAfterDate

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

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-StopAtMarkName

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

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-StopBeforeMarkAfterDate

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

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-StopBeforeMarkName

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

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ToPointInTime

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

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-UnloadTapeAfter

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

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-WhatIf

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

型:SwitchParameter
Aliases:wi
配置:Named
規定値:False
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

Smo.Server

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