1

我有一个具有文件流的 SQL Server 2008 数据库。

我需要备份此数据库(不包括文件流)并在 SQL Server 2012 上恢复数据库。

我对此进行了研究并发现:

http://social.msdn.microsoft.com/Forums/en-US/sqldisasterrecovery/thread/bcd5dddf-5a66-42a9-acf4-a63136f3658a

当我按照 URL 的说明在没有文件流的情况下备份数据库并恢复到 SQL Server 2008 时,这很有效。

但是,当我运行脚本以恢复到 2012 年时,出现以下错误:

Msg 3634, Level 16, State 1, Line 3
The operating system returned the error '3(The system cannot find the path specified.)' while attempting 'FindFirstFile' on X

Msg 5520, Level 16, State 1, Line 3
Upgrade of FILESTREAM container ID 65537 in the database ID 10 failed because of container size recalculation error. Examine the previous errorlog entries for errors, and take the appropriate corrective actions.

Msg 5056, Level 16, State 6, Line 3
Cannot add, remove, or modify a file in filegroup 'FileStreamFileGroup' because the filegroup is not online.
Msg 3013, Level 16, State 1, Line 3
RESTORE DATABASE is terminating abnormally.

我认为这与 SQL 将数据库从 2008 年升级到 2012 年有关。

有任何想法吗?任何帮助将非常感激。

4

1 回答 1

1

我有同样的问题,我已经通过使用 Smo 库重写备份和还原方法来解决。

示例:
备份示例
还原示例

顺便说一句,如果部分备份或恢复,我会执行以下操作。

  if (partial)
  {
    sqlRestore.Partial = true;
    sqlRestore.ContinueAfterError = true;
  }

我希望这能帮到您。

~巴萨姆

于 2013-04-22T16:52:17.077 回答