2015-09-15 95 views
-1

我试图将数据库还原到VM作为新VM配置过程的一部分。然而,当我尝试使用以下命令来恢复数据库:通过PowerShell将SQL Server 2008 .bak还原到SQL Server 2014服务器实例

Restore-SqlDatabase -ServerInstance . -Database SomeDatabase -BackupFile $latestBackup -ReplaceDatabase 

它失败,出现错误:

Restore-SqlDatabase : System.Data.SqlClient.SqlError: Directory lookup for the file "C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\SomeDatabase.mdf" failed with the operating system error 3(The system cannot find the path specified.). 
At line:27 char:1 
+ Restore-SqlDatabase -ServerInstance . -Database SomeDatabase -BackupFile $latestB ... 
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
+ CategoryInfo   : InvalidOperation: (:) [Restore-SqlDatabase], SmoException 
+ FullyQualifiedErrorId : ExecutionFailed,Microsoft.SqlServer.Management.PowerShell.RestoreSqlDatabaseCommand 

这是令人困惑,因为使用SQL Server 2014具有完全相同的路径,但在MSSQL12.MSSQLSERVER而不是MSSQL10.MSSQLSERVER,即Restore-SqlDatabase cmdlet正在寻找。具有正确名称的数据库也已存在于MSSQL12.MSSQLSERVER位置。

如何告诉该cmdlet将其恢复到正确的文件夹?

回答

0

原来,这是不可能的(我可以找到)来恢复这样的数据库。我恢复虚拟机使用匹配的SQL服务器,并且使用以下命令来恢复数据库:

Invoke-Sqlcmd -Query "RESTORE DATABASE [SomeDatabase] FROM DISK = N'C:\$latestBackup' WITH FILE = 1, MOVE N'SomeDatabase' TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\SomeDatabase.mdf', MOVE N'SomeDatabase_log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\SomeDatabase.ldf', NOUNLOAD, STATS = 10" 

这是通过SQL Server Management Studio中的“脚本”功能,在这里我设置的是恢复和出口所获得的等效的SQL。

1

您可以通过指定文件的位置为对象,并通过它们来恢复,SQLDatabase与-RelocateFile参数

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

https://technet.microsoft.com/en-us/library/mt683379%28v=sql.120%29.aspx

相关问题