首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于快速测试的Server数据库还原

用于快速测试的Server数据库还原
EN

Stack Overflow用户
提问于 2019-10-11 15:49:08
回答 1查看 675关注 0票数 2

我有一个很大的数据库,需要几分钟才能从bak文件中恢复。我必须使用web应用程序运行几个测试,然后放弃所有这些更改以重复测试。这就是我目前正在做的工作流程,我的问题是有一个更好/更省时的方法。

  1. 从bak文件恢复db (bak文件为~5gb,大约需要1分钟)
  2. 使用web应用程序执行测试。
  3. 删除数据库,并重新从bak文件中重新还原它(步骤1)

db还原选项需要很长时间,我在想,如果我可以使用类似CHECKPOINTS之类的功能,或者其他特性,我就不必再恢复完整的备份了。

编辑:我想知道是否存在使用内置sql-server特性减少恢复时间的解决方案。想象一下,如果恢复需要5分钟,那么无论5分钟是长时间还是短时间相对于每个用户和每个用例。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-11 16:40:08

首先,“我有一个巨大的数据库,包含了我在每次测试之后运行几次测试并恢复的所有数据”,从长远来看,在我的经验中,这不是一个非常好的模式--仍然需要先把这个庞大的数据库放在某个地方(您不想使用生产,是吗?),人们不允许查看数据的可能问题,如果实例被共享的话并发问题,以及依赖于当前特定数据的最糟糕、最脆弱的测试。两周后,你会发现你的测试不再有效,人们也说不出原因。

最好的长期解决方案是使用SSDT创建一个最小的数据库项目,它可以作为您可以签入源代码管理来启动的东西。作为LocalDB部署,只插入测试所需的数据,测试,然后丢弃它。没有依赖,没有隐藏的假设。

话虽如此,Server确实提供了数据库快照,它是用CREATE DATABASE ... AS SNAPSHOT OF创建并用RESTORE DATABASE ... FROM SNAPSHOT = ...恢复的。因为这只需要丢弃修改过的数据,所以它比完全恢复要快得多。如果多个人想要运行测试,它仍然不可避免地会遇到并发问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58344684

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档