【发布时间】:2020-02-12 05:14:17
【问题描述】:
我遇到的问题只有在我的 SQL Server 差异备份作业失败并显示类似于
的错误消息时才会发生Msg 3035, Sev 16, State 1, Line 1 : Cannot perform a differential backup for database "MyDatabaseName", because a current database backup does not exist. Perform a full database backup by reissuing BACKUP DATABASE, omitting the WITH DIFFERENTIAL option. [SQLSTATE 42000]
Msg 3013, Sev 16, State 1, Line 1 : BACKUP DATABASE is terminating abnormally. [SQLSTATE 42000]
我目前正在使用 Ola Hallengren 的 SQL Server Mantenance Solution script 进行备份、完整性检查和索引维护。我已经这样安排了备份作业:
- 每天凌晨 1:30 对系统数据库进行完整备份
- 每周一、周三和周五凌晨 2:30 对所有用户数据库进行完整备份
- 每周日、周二、周四和周六凌晨 2:30 对所有用户数据库进行差异备份
- 每 30 分钟备份一次事务日志或所有用户数据库
我还将清理时间设置为 168 小时……也就是 7 天。
我知道,当出现此错误消息时,通常是由于不存在完整备份,或者数据库的恢复模式可能正在更改。我已经检查了这两个,但似乎都不是。我可以确认我的周五完整备份是成功的,但是我的周六和周日差异备份失败了。恢复模式也没有变化,也没有通过 SQL Server 进行手动备份。
值得注意的是,这种情况有时会发生。有时差异备份可以正常工作,而有时它们会失败。
此服务器是一个虚拟机,我们使用的是 VMWare vSphere/vCenter 6.5。我已经与我的服务器管理员交谈并询问他的备份运行情况如何,他告诉我我们正在使用利用 VMWare 快照技术的 Quest AppAssure,并且他每 x 分钟备份一次驱动器,因此有可能他备份的时间发生了变化,最终与我的重叠。
我们回顾了他的备份在周末运行的时间,它们发生在我的备份开始前几分钟。我想知道这是否会导致我的备份问题?如果是这样,有没有办法防止这种情况发生,还是我们只需要在不重叠的不同时间计划备份?
谢谢
【问题讨论】:
-
为什么这 4 天只有一个差异?我从未见过这种类型的时间表。通常每个 FULL 之间有超过 1 个差异,并且在某些日子不会。如果您从两种不同的方法进行备份,那么您也将拥有两个不同的备份集。这是有问题的,因为除非您正在执行
COPY ONLY,否则您会破坏备份链。那么,如果我们退后一步,我们可以问一下您的 RPO / RTO 是什么?也许您的备份策略可以调整。似乎几乎可以肯定。 -
您在进行备份时是否在 SQL Server 日志中看到 I/O 冻结消息?当然,这种古怪的配置(每隔一天和每天都有多个备份源)在某处破坏了备份链。
-
用户数据库的大小是多少?我以前从未见过这种类型的计划,也看不到这么多差异备份的好处?
-
我会尽力回答问题并提供一些背景信息。至于 RPO/RTO,我已经问过多次并且知道可以给出一个明确的答案,所以我尝试放置一些可以为我们提供合理备份恢复的东西,这就是为什么我每 30 分钟设置一次日志备份.就差异备份而言,我认为这将有助于一些空间,但如果最好不要在完整备份和差异备份之间交替,那么我完全愿意就更好的计划提出建议。
-
至于第二个备份源,我最初的印象是 AppAssure 备份正在执行整个驱动器备份并且不应该影响我的备份。我从我们的服务器管理员那里看到了备份的不可靠性,这就是为什么我更喜欢自己做备份。我刚刚查询了 msdb.backupset 表,发现 appassure 肯定也在做备份,我想这会影响我的备份集。这是正确的吗?
标签: sql-server backup vmware database-backups