无法识别来自restore-sqldatabase的AutoRelocateFile参数

时间:2019-04-19 12:34:11

标签: sql-server powershell

我一直在尝试使用powershell中的restore-sqldatabase模块还原数据库,除非存在多个数据文件,否则该模块似乎工作得很好。

为解决此问题,我尝试使用参数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:找出缺少的cmdlet,这是由于模块过时造成的。更新了模块,该cmdlet出现在智能感知中。但是,还原仍然会引发错误。下面是当前代码段。

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选项手动重定位文件时,代码可以正常工作。

1 个答案:

答案 0 :(得分:0)

此选项-AutoRelocateFile已在版本21.1.18102中引入 所以请检查您是否使用了正确版本的模块

P.S。我看到了您的更新。您是否删除了该模块的旧版本? 或尝试使用-RequiredVersion选项导入模块

Import-Module SqlServer -RequiredVersion 21.1.18102