Я пытался восстановить БД с помощью модуля restore-sqldatabase в powershell, который, кажется, работает отлично, если не было случая с несколькими файлами данных.
Чтобы преодолеть эту проблему, я пытался использоватьпараметр AutoRelocateFile.Ниже приведен сценарий, который используется для резервного копирования базы данных с несколькими файлами данных.
Restore-SqlDatabase -SqlCredential $credentialName -ServerInstance $DestinationSQLInstanceName -Database $DestinationDBName -BackupFile $BackupPath -Verbose -ReplaceDatabase -AutoRelocateFile
Этот сценарий должен был заменить существующую базу данных на сервере.Однако выдает следующую ошибку:
Restore-SqlDatabase : A parameter cannot be found that matches parameter name 'AutoRelocateFile'.
Примечание. Резервное копирование и восстановление выполняется на двух разных серверах, а резервные копии присутствуют в BLOB.
Update-1:Разобрался с отсутствующим командлетом, это было из-за устаревшего модуля.Обновили модуль и командлет появляется в intellisense.Однако восстановление все еще выдает ошибку.Ниже приведен текущий фрагмент.
Restore-SqlDatabase -AutoRelocateFile -ServerInstance $DestinationSQLInstanceName -Database $DestinationDBName -BackupFile $BackupPath -SqlCredential $credentialName
Выдает приведенную ниже ошибку.
Restore-SqlDatabase : An exception occurred while executing a Transact-SQL statement or batch.
At F:\ps_test\Backup-Restore\Restore-BLOB.ps1:543 char:10
+ Restore-SqlDatabase -AutoRelocateFile -ServerInstance $Dest
Код работает нормально, если опция -autorelocate
не упомянутаи вручную переместите файлы, используя параметр -RelocateFile
.