差异备份出错求解

yilong51 2014-05-04 08:27:22
建了一个作业.执行每周完整备份和每天差异备份.明明已经做过完整备份了.但是每次都没办法自动执行差异备份.会出现下面那个错误.
我自己有做过测试.如果完整备份完一定时间(好像只有几小时)内执行差异备份是没有问题的.但是过了这段时间在进行差异备份就会出错
问过好多人都不知道.也查了很多网站都找不到解答了

以下是系统环境
Microsoft SQL Server Management Studio 10.0.5500.0
Microsoft Analysis Services 客户端工具 10.0.5500.0
Microsoft 数据访问组件 (MDAC) 6.1.7601.17514
Microsoft MSXML 3.0 6.0
Microsoft Internet Explorer 8.0.7601.17514
Microsoft .NET Framework 2.0.50727.5420
操作系统是windows2008 r2 datacenter

以下是备份日记

Microsoft(R) 服务器维护实用工具(Unicode)版本 10.0.5500
报告是在“SQLDATASERVER”上生成的。
维护计划: MaintenancePlan1
持续时间: 00:00:02
状态: 警告: 一项或多项任务失败。
详细信息:
备份数据库(差异) (SQLDATASERVER)
在 本地服务器连接 上备份数据库
数据库: DSB
类型: 差异
追加现有
任务开始: 2014-05-03T23:00:15。
任务结束: 2014-05-03T23:00:15。
失败:(-1073548784) 执行查询“BACKUP DATABASE [DSB] TO DISK = N'D:\\sql_bak\\DSB_...”失败,错误如下:“无法执行数据库 "DSB" 的差异备份,因为不存在当前数据库备份。请去掉 WITH DIFFERENTIAL 选项后重新发出 BACKUP DATABASE 以执行数据库的完整备份。
BACKUP DATABASE 正在异常终止。”。失败的原因可能有: 查询本身有问题、未正确设置 "ResultSet" 属性、未正确设置参数或未正确建立连接。

命令:BACKUP DATABASE [DSB] TO DISK = N''D:\sql_bak\DSB_backup_2014_05_03_230015_4024340.bak'' WITH DIFFERENTIAL , RETAINDAYS = 14, NOFORMAT, NOINIT, NAME = N''DSB_backup_2014_05_03_230015_3974335'', SKIP, REWIND, NOUNLOAD, STATS = 10

GO
...全文
507 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
yilong51 2014-06-07
  • 打赏
  • 举报
回复
引用 27 楼 annatrov 的回复:
是你的差异备份把完整备份覆盖掉了吧??我看你完整和差异的文件名和地址都一样。
不是的..我后来有把差异备份的后缀名改成dif.一样不行.
七不语v 2014-06-05
  • 打赏
  • 举报
回复
是你的差异备份把完整备份覆盖掉了吧??我看你完整和差异的文件名和地址都一样。
Cloud_Hero 2014-05-14
  • 打赏
  • 举报
回复
我觉得是你那个“清除历史记录”的问题,把完整备份的历史清理了。 差异备份时,会去msdb数据库找上一次的完整备份记录。详情请见 http://bbs.51cto.com/thread-1080523-1.html
發糞塗牆 2014-05-05
  • 打赏
  • 举报
回复
这个是我用维护计划导出来的脚本,执行过没问题,而且我不建议你保留14天超时的设置。没必要,这个主要用来对介质备份比如磁带备份用的
EXECUTE master.dbo.xp_create_subdir N'D:\DB\AdventureWorks2008R2'
GO
BACKUP DATABASE [AdventureWorks2008R2] TO  DISK = N'D:\DB\AdventureWorks2008R2\AdventureWorks2008R2_backup_2014_05_05_095954_6261594.bak' WITH NOFORMAT, NOINIT,  NAME = N'AdventureWorks2008R2_backup_2014_05_05_095954_6251575', SKIP, REWIND, NOUNLOAD,  STATS = 10
yilong51 2014-05-05
  • 打赏
  • 举报
回复
引用 22 楼 DBA_Huangzj 的回复:
我一直都这样用
设置和上面的截图一样.就是按你说的分成两个计划.而且把差异备份的文件名改成dif了
yilong51 2014-05-05
  • 打赏
  • 举报
回复
引用 22 楼 DBA_Huangzj 的回复:
我一直都这样用
BACKUP DATABASE [DSB] TO DISK = N''D:\sql_bak\DSB_backup_2014_05_03_230015_4024340.bak'' WITH DIFFERENTIAL , RETAINDAYS = 14, NOFORMAT, NOINIT, NAME = N''DSB_backup_2014_05_03_230015_3974335'', SKIP, REWIND, NOUNLOAD, STATS = 10 我刚才留意了一下.这个语句的to disk 的这个文件是不存在的啊.
發糞塗牆 2014-05-05
  • 打赏
  • 举报
回复
我一直都这样用
發糞塗牆 2014-05-05
  • 打赏
  • 举报
回复
引用 20 楼 yilong51 的回复:
[quote=引用 18 楼 DBA_Huangzj 的回复:] 那你全部删了,从最简单的开始,建两个维护计划,一个只做完整备份,一个只做差异备份,然后单独配置,不做任何选项,只配置路径和后缀名。
好吧...还是不行..[/quote]你的配置是怎样的?截来看看,如果sql server没问题的话这应该是不会出现的。。
yilong51 2014-05-05
  • 打赏
  • 举报
回复
引用 18 楼 DBA_Huangzj 的回复:
那你全部删了,从最简单的开始,建两个维护计划,一个只做完整备份,一个只做差异备份,然后单独配置,不做任何选项,只配置路径和后缀名。
好吧...还是不行..
yilong51 2014-05-04
  • 打赏
  • 举报
回复
引用 18 楼 DBA_Huangzj 的回复:
那你全部删了,从最简单的开始,建两个维护计划,一个只做完整备份,一个只做差异备份,然后单独配置,不做任何选项,只配置路径和后缀名。
那我现在先做一下完整备份.下午再试试看差异备份
發糞塗牆 2014-05-04
  • 打赏
  • 举报
回复
那你全部删了,从最简单的开始,建两个维护计划,一个只做完整备份,一个只做差异备份,然后单独配置,不做任何选项,只配置路径和后缀名。
yilong51 2014-05-04
  • 打赏
  • 举报
回复
引用 16 楼 DBA_Huangzj 的回复:
从配置上来说问题不大,不过有个小建议,从实践来说,差异备份的后缀名我个人强烈建议用.dif,这样好区分。然后可能出问题的就是你最后一步了,清除历史任务这个,会把你的备份信息从msdb清理掉,可能导致sqlserver“只看到有差异备份”而没有发现有完整备份,因为sqlserver不会去检查你的磁盘有没有真正的完整备份,而是从msdb中找这些信息。我一般不使用这个任务,只之用清除维护这个任务来删除n天/周/月之前的备份文件,你可以先去除这两个试试是不是真的是这个问题
呃.这个我之前也试过了.没有这两个的话.也一样.会不会是我SQL哪里设置有问题?
發糞塗牆 2014-05-04
  • 打赏
  • 举报
回复
从配置上来说问题不大,不过有个小建议,从实践来说,差异备份的后缀名我个人强烈建议用.dif,这样好区分。然后可能出问题的就是你最后一步了,清除历史任务这个,会把你的备份信息从msdb清理掉,可能导致sqlserver“只看到有差异备份”而没有发现有完整备份,因为sqlserver不会去检查你的磁盘有没有真正的完整备份,而是从msdb中找这些信息。我一般不使用这个任务,只之用清除维护这个任务来删除n天/周/月之前的备份文件,你可以先去除这两个试试是不是真的是这个问题
yilong51 2014-05-04
  • 打赏
  • 举报
回复
引用 13 楼 DBA_Huangzj 的回复:
版本没什么问题,那应该就是设置的问题,你使用维护计划来做的吧?把配置的图截来看看
在上面了.麻烦帮忙看下 谢谢
yilong51 2014-05-04
  • 打赏
  • 举报
回复




發糞塗牆 2014-05-04
  • 打赏
  • 举报
回复
版本没什么问题,那应该就是设置的问题,你使用维护计划来做的吧?把配置的图截来看看
yilong51 2014-05-04
  • 打赏
  • 举报
回复
引用 11 楼 DBA_Huangzj 的回复:
SELECT  SERVERPROPERTY('productlevel') AS 'Service Pack' ,
        SERVERPROPERTY('edition') AS edition ,
        SERVERPROPERTY('productversion') AS 'build number'
贴一下结果
sp3 Enterprise Edition (64-bit) 10.0.5500.0
發糞塗牆 2014-05-04
  • 打赏
  • 举报
回复
SELECT  SERVERPROPERTY('productlevel') AS 'Service Pack' ,
        SERVERPROPERTY('edition') AS edition ,
        SERVERPROPERTY('productversion') AS 'build number'
贴一下结果
yilong51 2014-05-04
  • 打赏
  • 举报
回复
引用 9 楼 DBA_Huangzj 的回复:
你是有这方面的“需求”吗?没有的话完全没必要
恩..可以去掉.但是去掉以后差异备份还是一样的错误
發糞塗牆 2014-05-04
  • 打赏
  • 举报
回复
你是有这方面的“需求”吗?没有的话完全没必要
加载更多回复(8)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧