sql-server - 恢复每日差异备份 - 没有文件准备好前滚问题
问题描述
我使用 SQL Server。我的差异备份有问题。我在周末对我的数据库进行完整备份,此外,我还每天对数据库进行差异备份。我创建了一个自动执行这些备份任务的工作。在拿了那些完整的和不同的 bakcups 之后,我每天和每周都用一个工作 schudelar 来恢复它们。我的完整还原作业任务每周都能成功运行,但是当我的其他任务(还原每日差异备份)尝试运行时,它失败并显示“无法还原日志或差异备份,因为没有文件准备好前滚。”错误消息。
我有两个数据库服务器。其中一个是生产服务器,另一个是报告服务器。报告服务器在生产数据库服务器中包含相同的数据库。在每周结束时,我会完全备份生产数据库服务器中的数据库以用于报告服务器。同样,每天午夜,我也会对生产服务器中的数据库进行差异备份以用于报告服务器。第二天,我将最后一个差异恢复到报告服务器中的数据库。我为该过程使用了视觉 cron 工具,但它因该错误而失败。我试图恢复手册,但得到同样的错误信息。
这是我的恢复命令。
EXEC [dbo].[DatabaseRestoreMany]
@Databases = 'DB_2004',
@BackupRoot = '\\BCKPSRVR\BKUP\',
@BackupTypes = 'DIFF',
@DataFileDirectory = 'D:\DBFILES\DB_2004\',
@LogFileDirectory = 'D:\DBFILES\DB_2004\',
@DirectoryPerDatabase = 'Y',
@RecoveryState = 'STANDBY',
@ReturnBackupList = 'N',
@ReturnTaskList = 'N',
@Execute = 'Y'
我该如何解决这个问题?你能帮助我吗?
先感谢您。
解决方案
您收到此错误是因为full backup
在您从differential backup
.
今天是星期三。我在周日恢复了数据库的完整备份。
您使用 恢复了完整备份recovery
。您的数据库开始运行,它是online
,并且现在不能恢复log
或differential backup
无法恢复。
为了恢复你的differential backup
,你应该首先恢复你full backup
的norecovery
,然后你才能恢复你的differential backup
。
请参阅此 BOL 文章以了解如何还原差异备份:还原差异数据库备份 (SQL Server)
还原差异数据库备份
执行 RESTORE DATABASE 语句,指定 NORECOVERY 子句,以恢复差异数据库备份之前的完整数据库备份。有关详细信息,请参阅如何:还原完整备份。
执行 RESTORE DATABASE 语句以恢复差异数据库备份,指定:
应用差异数据库备份的数据库的名称。
从中恢复差异数据库备份的备份设备。
NORECOVERY 子句,如果在还原差异数据库备份后要应用事务日志备份。否则,指定 RECOVERY 子句。
推荐阅读
- c# - 如果存在 Sharepoint,则创建文件夹
- c# - Unity AR 相机可以像 VR 一样渲染 - 混合现实
- javascript - 如何防止对特定 div 的 onClick
- apache-kafka - 使用 KSQL 将表从 Kafka 转储到 MariaDB
- android - 是否有任何用于 React 的动态日历调度程序 - 用于 react native 的 react-big-scheduler?
- ios - Swift:计算的图像文件的 md5 哈希与终端和其他哈希生成器不匹配
- flutter - Flutter 用变量过滤数据
- html - 在我的投资组合/简历网站上工作,但菜单没有像我想要的那样悬停
- amazon-ec2 - 无法使用 Terraform 创建 EC2。路由表关联卡在创建模式
- mysql - 如何合并 2 个相似的查询?