在SQL 2008上复制实例的最有效方法是什么?


14

我们有一个简单的数据库实例,数据库中只有足够的数据来保持其有用性,我们可以将其用于演示目的,我想将其副本放在笔记本电脑上,以便在以下情况下可以将其用于开发工作我不在办公室 (常规dev数据库实例大约为150GB,这一实例为3GB)

在笔记本电脑上重新创建实例的最可重复/可编写脚本的方法是什么?我确定我将不得不再次通过SqlServer2008的安装程序运行,并设置一个实例,但是在那之后...我想我希望能够每个月左右删除旧数据库,并且将所有新内容复制到我的笔记本电脑上,因为我的实例在一个演示系统或笔记本电脑上都不会更改。但是数据库本身将更新,并更新存储库等。

我考虑过脚本化所有“删除数据库文件;添加数据库文件{path}”并将它们保存在某种可运行的批处理文件中,然后我可以“删除,删除,复制,添加”,但想知道是否存在有没有比xcopy和批处理更好的方法?

我试图以便宜的价格做到这一点(我们不总是尝试以便宜的价格做事情),所以我对RedGate产品或类似产品并不特别感兴趣。我想要自己可以在文本编辑器中轻松维护的内容。


是具有多个数据库的单个数据库还是sql服务器实例?我假设您在便携式计算机和开发计算机中安装了sql server,并且您有一个数据库,在这种情况下,您可以使用备份和还原。备份开发机数据库,将其复制到笔记本电脑上并还原,反之亦然...这有意义吗?
CoderHawk'3

是SQL Server Express Edition吗?还是标准?对于这种情况,SSIS是一个很好的选择,但是不幸的是,在Express和Web版本中,SSIS不可用。
CoderHawk'3

抱歉@Sandy〜这是SQL Dev2008。由于MSDN,我已经可以访问几乎所有您能猜到的东西。
jcolebrand

问题标题有点让人困惑“在SQL 2008上复制| instance |的最有效方法是什么?” -实例还是数据库?
CoderHawk 2011年

@Sandy〜“ Instance” ...的确,我想要整个东西。
jcolebrand

Answers:


4

您已触及到头:复制文件。我用这个效果很好。

我要说的是,您必须定义“便宜”以包括投入时间来准备不涉及xcopy的解决方案


3

嗯,不确定这是否有帮助,但是我们正在使用一组脚本来“清理”生产数据库并为开发滥用做准备。我们将使用所有具有datetime列的大表,并仅使用最后一年的数据来重建表。从约200 GB的完整数据库,我们可以获取约40 GB的开发数据库。主要是我们正在生成动态脚本,用于为每个表创建bcp文件,重新创建表(包括任何相关约束),然后仅批量插入去年的数据。

也许有一些工具可以做到这一点,但我们的商店价格便宜:-)。


是的,我们沿BCP路线走了很多东西,所以我明白了您的意思,将其中一些内容截短会很好,但是我已经拥有了大约3GB的数据,所以我并不是真的希望在那里增加更多。我只想复制整个实例并确定有一种方法可以重复进行。但除此之外,我认为我的能力与您所谈论的相同,只是较小的刀柄。
jcolebrand

因此,分批重复所有步骤:)。SQL具有批处理参数,您可以将批处理文件与sql文件组合在一起并获得一个不错的软件包。我创建了一个自定义的日志传送(哑包)程序包,该程序包在不同的域上工作,所有数据库准备工作均在cmd / sql文件中完成。您可以创建一个仅供您使用的命名实例,然后在那里启动/停止服务,还原数据库,清理,准备,备份它并运送到某些特定文件夹。也许可以在Powershell中更快地完成一些工作。.但是我对此并不熟悉。
玛丽安

是的,就是这个主意;)
jcolebrand

@jcolebrand-也许像Norton Ghost或Clonezilla这样的工具会有所帮助?您需要用它在生产场地的某个位置复制产品备份文件夹,然后回到那里进行所有娱乐(还原..trim ...等)。您无需编写复制操作的脚本,只需处理sql部分:)。
玛丽安

哦,这可能很有用。新的考虑途径。
jcolebrand

0

升级架构以匹配这些系统的最简单方法是使用Red Gate SQL Compare或Embarcadero DB Change Manager之类的工具。

还有许多其他工具可能可以进行相同的架构比较,甚至为您提供DDL来升级数据库架构。

选件

  1. 使用第三方工具
  2. 数据库备份和还原-您可能需要还原到暂存实例以删除数据(由于笔记本电脑的空间限制)
  3. 使用SMO编写您自己的数据库脚本编写器,然后简单地创建一个脚本来编写对象的作业,然后每月/每次需要时重新创建架构,然后使用SSIS将数据加载到新对象中。

实例的“数据库备份和还原”如何工作?我将数据保留在这些表中,因为它是一个完整的数据集,仅小于生产数据。
jcolebrand

SSIS可能会让我做我需要的事情,但是对此我还不够了解。我应该进一步调查。
jcolebrand

@jcolebrand-我建议进行备份还原,因为在进行诸如添加列之类的工作时,只需考虑如何将数据从实时系统移至演示系统。但是,这样做的缺点是需要先还原然后清除数据,然后再进行另一个备份以及还原/分离和附加。
johndacostaa 2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.