如果缺少“备用文件”,有什么方法可以从备用/只读模式恢复SQL数据库?
(在日志传送方案中,我看到一些引用将其称为TUF文件,但就我而言,这只是手动还原,备用文件具有BAK扩展名。)
进行“ RESTORE DATABASE foo WITH RECOVERY”会导致致命错误:
During startup of warm standby database 'foo', its standby file
('path\filename.bak') was inaccessible to the RESTORE statement.
The operating system error was '5(Access is denied.)'. Diagnose the
operating system error, correct the problem, and retry startup.
恢复是在前一段时间完成的,不幸的是,备用文件位于备份文件夹中,并被我们的文件夹清理例程删除。该文件的副本在任何其他媒体上均不存在。还原到这一点的原始备份也早已消失。
幸运的是,这对我们来说不是什么大问题(这是临时还原),但是除了“不删除该文件”之外,我找不到关于此问题的其他有用参考。
如果涉及到它,我想我可以编写整个数据库的脚本,或者使用SSIS将所有对象复制到一个新的数据库容器中,因为我前面有数据库的只读副本。
有什么办法解决这个问题?我当然不希望自己能够将其翻转回“还原”状态并继续执行后续的还原操作或其他任何操作,我只是想将其强制为当前状态的正常在线模式,这样我才能例如更改权限,更改恢复模式或进行新的完整备份等。