SQL Server 如何决定恢复哪个 trn 文件?

Posted

技术标签:

【中文标题】SQL Server 如何决定恢复哪个 trn 文件?【英文标题】:How does SQL Server decide which trn file to restore? 【发布时间】:2021-12-24 07:26:44 【问题描述】:

我想使用备份文件夹中的备份文件恢复我的数据库。

SQL Server 在 Windows 上运行。

当我要恢复时,我会右键单击数据库并选择“恢复”,然后选择“设备”,SQL Server Management Studio 会打开一个弹出窗口来选择要恢复的文件。

备份的文件夹包含一个bak文件和很多trn文件。

我需要全部选择它们才能恢复完成(我不能只选择一个bak 或一个trn 文件来恢复)。

之后我看到了 SQL 生成的脚本,我可以看到并非所有的 .trn 文件都包含在脚本中。

我的问题是 SQL Server 如何决定使用哪个 trn 文件,哪个不使用?

Microsoft SQL Server 2016 (SP2-GDR) (KB4583460) - 13.0.5103.6 (X64)   
Enterprise Edition (64-bit) on Windows 10 Pro 10.0 <X64> (Build 19043: ) (Hypervisor) 

【问题讨论】:

【参考方案1】:

我的问题是 SQL Server 如何决定使用哪个 trn 文件,哪个不使用?

这不是你的问题,你的问题是“SSMS 如何决定使用哪些文件?”。我不确定您使用的是什么版本的 SSMS,但已经有多个更新和修复 - 所以请使用最新版本的 SSMS ......但也要注意它安装,IMO 相当阴险,Azure Data Studio 以及它没有任何 GUI 方式来选择加入或退出(这很可耻)。 Erik C. Darling 先生对此有一篇很好的帖子:

Make ADS An Optional Install Alongside SSMS

您可能感兴趣的一种修复示例:

修复了一个长期悬而未决的问题,即恢复计划无法找到 恢复计划,否则会产生一个低效的恢复计划 某些条件。

另外,为了回答您的实际问题,SSMS 对每个文件执行恢复文件列表和仅标头,并尝试根据备份信息中的各种值制定恢复计划。

可能还有其他选项,例如 cmets 中给出的那些(复制在下面的答案中)可能会做得更好。

    Auto generate SQL Server restore script from backup files in a directory sp_DatabaseRestore

【讨论】:

以上是关于SQL Server 如何决定恢复哪个 trn 文件?的主要内容,如果未能解决你的问题,请参考以下文章

您如何决定在 SQL Server 活动监视器中终止哪个进程?

如何检查 SQL Server 数据库的恢复状态进度

如何将 .trn 文件迁移到 Azure 数据库?

在sql server中发生死锁时,哪个事务将被中止

如何在 SQL Server 2008 中恢复 SQL Server 2014 备份

如何在 SQL Server 2014 中从 SQL Server 2008 R2 恢复备份?