恢复 Sql Server 数据库的最快方法

Mr *_*kas 8 sql-server backup restore

在清理阶段,我们的 10000 个集成测试中的每一个都需要在每个集成测试完成之前将数据库恢复到其原始的“干净”状态。运行所有测试需要时间,80% 的时间花在数据库还原操作期间。

恢复操作只是从光盘中获取备份并恢复它。我现在想知道是否有办法优化这一点。我正在考虑的一种选择是将备份文件的位置从磁盘更改为内存。那可能吗?

另一种选择是仅拍摄表数据的快照,并仅将其保存为备份数据。我假设备份文件变得更小,因此恢复速度更快。那可能吗?

理想情况下,我希望避免恢复,而只是重置受影响的数据(每个测试产生的数据)。类似于:“恢复自测试开始以来修改过的任何表行”

我有哪些选择?我不是这方面的专家,但感觉我的问题应该有一个简单的解决方案。

Bra*_*adC 7

根据 Nic 的评论,数据库快照可能是您特定情况的正确答案

但是对于发现这个问题的未来用户来说,肯定有方法可以改善本机 SQL 数据库备份和恢复时间:

  • 使用压缩备份数据库:I/O 通常是瓶颈,这会将一些工作转移到 CPU。
  • 更改您的存储配置:在本地或更高性能的 SAN 上存储备份
  • 将数据库备份到多个文件(条带):这可能取决于您的特定存储和网络配置,但我发现在我们的环境中,4 条带和 8 条带备份和恢复比单条带备份快 2 到 10 倍。当然值得一些测试。
  • 确保启用即时文件初始化:帮助您快速腾出空间来恢复文件
  • 减少数据库的大小:删除旧表等。当然,如果可能的话。
  • 缩小空白空间:当然,所有关于缩小的适当警告和警告都适用。
  • 启用页面或行压缩:使数据库文件更小,还原时写入的内容更少。