事务日志传送 - 备用/只读数据库在“还原”时不断卡住

Transaction log shipping - Standby/Readonly database keeps getting stuck 'Restoring'

提问人:user197505 提问时间:2/2/2023 更新时间:2/2/2023 访问量:292

问:

我正在将事务日志传送到另一个数据库,我们将使用该数据库来处理某些不需要实时数据的报告。在我们开始将流量定向到它之前,这工作正常,然后持续一天左右,然后卡在恢复状态。

我每 15 分钟从生产服务器和备用服务器发送一次事务日志,我将其设置为待机模式,并将“还原备份时断开数据库中的用户连接”设置为 true(如果我不这样做,还原有时会推迟一天左右,我可以终止活动会话)。同样在备用服务器上,我将其设置为每 10 分钟运行 LSRestore。

问题是我不知道是什么原因导致数据库挂起,也不知道我什至可以在哪里寻找一些可能告诉我一些事情的诊断。

有谁知道我在哪里可以找到?

sql-server 日志传送

评论

0赞 Stu 2/2/2023
尝试使用 DAC 进行连接并检查被阻止的会话/等待
0赞 siggemannen 2/5/2023
最简单的方法是检查 SQL Server 代理步骤日志的输出。它会告诉你错误是什么。如果您继续运行作业,它不应该卡住,除非您在中间终止它,或者您的备份删除得太快,因此作业没有时间恢复它们。或者,您可能错误地配置了日志传送作业,因此它实际上不会将它们置于待机模式。但日志可能会告诉你
0赞 siggemannen 2/5/2023
您还可以在活动监视器中查看还原是否实际运行。也许你有很多恢复,所以你永远不会“看到”它完成。我会说 15 分钟有点陡峭

答:

0赞 rvsc48 2/2/2023 #1

听起来辅助数据库无法跟上辅助数据库上 t-log 备份恢复的处理。我会尝试减少备份、复制和还原的时间,看看是否能找到辅助数据库不处于还原模式的最佳时间间隔。我看到你已经把它减少到每 15 分钟一次。此外,请查看本文并使用其中的 t-sql 深入研究,并尝试更详细地查看延迟发生的位置 - https://www.sqlshack.com/monitor-transaction-log-shipping-using-t-sql-and-ssms/。我希望这会有所帮助。