我在SQL2000中用backup 备份数据库,每次都追加写入同一个文件,这个bak 文件不断变大,

来源:百度知道 编辑:UC知道 时间:2024/06/30 05:50:26
但在用restore命令恢复时,用只备份一次的bak文件恢复可以,但如果是保存的几次备份数据的bak文件则出错,为什么会出错?怎么解决?
我的备份语句,backup database test to disk='f:\1.bak'
在查询分析器中执行一次成功,1.bak为1M,再执行一次,1.bak变为2M,
我用 restore database test from disk='f:\1.bak'还原时
系统提示:
服务器: 消息 3201,级别 16,状态 2,行 1
无法打开备份设备 'f:\1.bak'。设备出现错误或设备脱机。详细信息请参阅 SQL Server 错误日志。
服务器: 消息 3013,级别 16,状态 1,行 1
RESTORE DATABASE 操作异常终止。

请问这是什么原因?

首先确保你在备份的时候没有使用with Format或with init对现有备份文件进行覆盖操作。
对于一个备份文件有多个备份集的情况,在还原的时候没有指定还原哪个备份集,默认是还原最早的备份集。
在还原之前,使用如下命令查看备份集情况
restore headeronly from disk='备份的完整路径'
结果集中Postion就表示的备份集的备份先后顺序,一般后备份的postion的值比较的。
这时候在restore命令里加上with file=文件号(就是postion的值),就还原相应的备份集了。
比如还原postion为2的备份集
restore database 数据库名 from disk='备份的完整路径' with file=2