web-dev-qa-db-ja.com

PowerShellがSQLバックアップを復元するのにどのくらい時間がかかりますか?

このPowershellスクリプトを実行してデータベースをバックアップし、そのデータベースを削除してから、別の名前で復元しました。

    $srv = new-object Microsoft.SqlServer.Management.Smo.Server("(local)")
    $res = new-object Microsoft.SqlServer.Management.Smo.Restore
    $backup = new-object Microsoft.SqlServer.Management.Smo.Backup

    $backup.Devices.AddDevice("D:\AWS_CM.bak", [Microsoft.SqlServer.Management.Smo.DeviceType]::File)
    $backup.Database = "Arizona_CM"
    $backup.Action = [Microsoft.SqlServer.Management.Smo.BackupActionType]::Database
    $backup.Initialize = $TRUE
    $backup.SqlBackup($srv)
    $srv.Databases["Arizona_CM"].Drop()

    $res.Devices.AddDevice("D:\AWS_CM.bak", [Microsoft.SqlServer.Management.Smo.DeviceType]::File)
    $res.Database = "AWS_CM"
    $res.NoRecovery = $TRUE
    $res.SqlRestore($srv)

スクリプトは機能しました。ただし、10分が経過し、SQL Serverでデータベースを表示すると、サイズが80 mbしかないにもかかわらず、データベースはまだ「復元」モードのままです。

PowerShellを使用してSQLServerでデータベースを復元するのに通常どのくらいの時間がかかるか知っている人はいますか?

4
Danish.O

データベースを回復しないように復元を設定しています。

$res.NoRecovery = $TRUE

この行を削除するか、この値を$FALSEに設定すると、データベースは期待どおりに復元されます。

この設定は、ログバックアップを復元するときに役立ちます。これには、ログの末尾を復元する場合も含まれます。 Books Onlineには詳細があります ここ

RESTOREの期間は、ストレージとデータベースのサイズによって異なります。そうは言っても、80MBはそれほど長くはかからないはずです。

3
James Anderson