该错误表明您的.bak
文件只是备份的一部分。写入备份时,它将跨三个文件写入。如果您可以将备份写入多个驱动器上的多个文件,则备份通常会更快地完成。
根据此StackOverflow问题与解答,RESTORE LABELONLY
应该可以帮助您确认备份跨多个文件,但实际上并不能让您还原备份-为此,您将需要所有三个文件。
如果可以找到所有三个文件(并确保它们来自相同的备份运行),则应该能够还原备份-您需要在RESTORE
命令中指定所有三个文件(或通过SSMS还原)对话)。
如果不能,但是仍然可以访问原始服务器,则可以进行新备份。
注意:如果该原始服务器具有DBA,请与他合作。您要确保进行备份不会引起任何复制,日志传送或还原到某个时间点的问题。
如果您实际上是DBA,那么:
- 进入SQL Server Management Studio(SSMS),连接到服务器,然后展开数据库。
- 右键单击原始数据库,然后选择“任务->备份...”,将打开一个对话框。
在对话框的第一页上:
- 确保将要备份的数据库选择为源数据库。
- 确保备份类型为“完整”。
- 检查上 “只复制备份”。
- 确保备份组件设置为“数据库”
- 在窗口的底部:如果“目标”列表中有任何现有条目,请将其删除。
- 单击“添加”以添加新的备份文件。确保知道文件的位置(通常,只有使用此接口才能选择写入数据库服务器的本地磁盘;如果需要写入共享服务器上的文件夹,则可以尝试粘贴共享服务器的完整UNC路径,然后在文件选择对话框中输入新文件名。如果这不起作用,请指定本地驱动器和唯一的文件名。另外,请确保文件名是唯一的-您不想覆盖服务器上的任何现有文件。
- 当您回到原始的“备份”对话框窗口时,请转到“选项”页面(窗口左侧)。
- 在“覆盖媒体”下,选择“备份到新的媒体集,并清除所有现有的备份集”。
- 是的,这听起来很可怕-但是,这主要是用于重新初始化备份磁带,以便删除所有旧数据;只要您要写一个新的文件名,一切都应该没问题。
- 输入新的媒体集-类似于“-一次备份”。
- 您可以在“可靠性”下设置一些选项。我只是把它们都关掉。
- 您也可以接受“设置备份压缩”的默认设置。我可能将tit设置为“压缩备份”,但这并不重要。(如果您没有运行SQL Server 2008或更高版本,那么它根本就不存在或不相关)。
- 不要单击“确定”,而是单击对话框窗口顶部的“脚本”旁边的小箭头,然后选择“对新查询窗口执行脚本操作”。一旦看到脚本,请单击“取消”。
- 仔细检查脚本-其中应仅包含一个文件。
- 如果要将文件写入其他位置,则可以在脚本中更改文件路径。同样,服务器需要能够访问您指定的位置,因此用于运行SQL Server服务(和/或SQL Server代理服务)的帐户必须有权访问您要写入文件的路径。
- 现在,运行脚本。
假设一切顺利,您现在就可以使用新的备份文件执行到其他位置的还原。同样,要还原到的SQL Server将需要有权访问备份文件,因此您可能需要将其复制到该服务器。