您可以在不执行 BACKUP DATABASE 的情况下将数据库置于待机模式吗?

您可以在不执行 BACKUP DATABASE 的情况下将数据库置于待机模式吗?

是否有人知道是否有一种 T-SQL 方法可以将 SQL Server 数据库置于待机只读模式,就像使用 BACKUP DATABASE 的 STANDBY 子句一样,只需不执行 BACKUP DATABASE 即可?

背景:我在 SQL Server 2005 Workgroup Edition 上有一个自制的日志传送设置。我找到了一个第三方备份实用程序,它可以执行压缩备份。它比 BACKUP DATABASE 更快,文件也小得多,但它缺乏将数据库置于待机/只读模式的能力。在进行灾难恢复测试时,我需要此功能来进行故障转移。如果我们进行故障转移并将日志从(现在活动的)备用服务器传送回主服务器,我们可以在测试结束时再次故障恢复,而不必从头开始。我可以使用 BACKUP DATABASE 而不是第三方工具进行日志尾部备份,但如果不必这样做,它会更干净。

答案1

不,没有办法将数据库置于待机模式,除非同时从备份中恢复数据库。一旦数据库可写,您就无法再次准备好恢复日志,因为 LSN 链已损坏。

答案2

您可以使用

更改数据库 your_database SET READ_ONLY

然后使用

更改数据库 your_database SET READ_WRITE

什么时候想恢复?

答案3

我必须承认,我回复了你的另一篇文章(关于你的备份软件),现在我正在阅读这个问题,我实际上有点担心你正在使用的备份软件。

这是那些“过于复杂”的解决方案实际上可能导致灾难的事情之一。我对你使用的备份软件一无所知,但快速谷歌搜索显示有几条差评(但不幸的是这些评论已经过时了)。

所以,我不知道。您想使用此备份软件而不是信任 MS SQL Server 为您完成备份有什么特别的原因吗?

速度和磁盘空间难道不比数据完整性和可靠性更重要吗?

我这里遗漏了什么吗?

也许保罗·兰德尔 (Paul Randal) 想加入讨论?

相关内容