SQL Server 还原备份导致错误

Mar*_*rio 15 restore sql-server sql-server-2005

我在 dev(Windows Server 2008 上的 SQL Server 2005)中有一个数据库,我需要将其转移到 prod(Windows Server 2003 上的 SQL Server 2000)。我的流程如下:

  1. 登录 dev,打开 SQL Server Management Studio
  2. 右键单击数据库 | 任务 | 备份。保留所有默认选项(完整备份等)
  3. 将 .bak 文件本地移动到 prod(无网络驱动器),登录到 prod,打开 SQL Server 企业管理器。
  4. 右键单击数据库节点 | 所有任务 | 恢复数据库。
  5. 更改还原为数据库以反映相同的数据库名称。
  6. 单击单选按钮“从设备”。点击“选择设备”
  7. 单击恢复自:添加...,浏览到 .bak 文件(小 - 只有 6mb)

现在我已准备好恢复数据库,所以我单击“确定”并收到以下错误:

“设备 'E:...bak' 上的媒体系列格式不正确。SQL Server 无法处理此媒体系列。RESTORE DATABASE 异常终止。”

这个错误是即时的。

我尝试了一些不同的变体 - 将数据库恢复到具有不同数据库名称和日志文件名(它起源的地方)的开发机器,创建一个具有相同物理路径的空数据库,然后尝试恢复到那个,制作一些不同的 .bak 文件并确保在将它们上传到 prod 之前验证它们。我知道 prod 上存在 .mdf 和 .ldf 文件的目录,尽管文件本身不存在。如果在单击“确定”还原之前转到“选项”选项卡,则会出现以下错误:

错误 3241:设备“E:...bak”上的媒体系列格式不正确。SQL Server 无法处理此媒体系列。RESTORE FILELIST 异常终止。

有人有什么好主意吗?

Thu*_*er3 7

MSSQL2008 中的备份标头与 MSSQL2005 中的不同,这可能是您问题的根源。尝试导出数据库而不是备份-恢复范例,或者在您的 DEV 服务器上设置 MSSQL2008。


Dun*_*art 5

正如 Mike Dimmick 所说 - SQL 2000 不会识别 SQL 2005 备份(就像 Word 2000 不会识别 2007 的 DOCX 文件)。因此,您必须以较低的公分母格式(例如 SQL 脚本)迁移数据。试试数据库发布向导,它是SQL Server Hosting Toolkit 的一部分,它为架构和数据生成单个 SQL 文件。


小智 1

当您尝试恢复时,可能是权限问题导致文件无法创建。尝试在目标上创建一个与您想要的名称相同的新数据库,然后在其之上进行恢复。

此外,如果您尝试从外部硬盘驱动器或网络共享恢复备份,请尝试在尝试恢复之前将备份文件复制到本地计算机。