2009-08-25 53 views
0

我们不托管我们的数据库。现在,一个人正在从生产服务器手动创建.bak文件。 .bak然后复制到每个开发人员的电脑。有没有更好的方法可以让这个过程变得更简单?我正在为我们的团队开发构建项目,我正在考虑将.bak文件添加到SVN中,以便每个人都拥有正确的本地版本?我试图生成一个SQL脚本,但它没有数据只是架构?如何SQL备份或镜像数据库?

+0

你的团队在同一地点吗? – JeffO 2009-08-25 14:55:49

+0

是的,我们一起工作 – user154366 2009-08-27 15:18:00

回答

1

开发人员无法共享单个开发数据库?

将.bak文件添加到SVN听起来很糟糕。这将永远保留它的每一个版本 - 你会更好(大多数情况下)将它留在所有开发人员可见的网络共享上,并让它们复制它。

您可能想要使用SSIS packages来让开发人员制作临时副本。

您可能还对Data Publishing Wizard感兴趣,它是一个开源项目,可让您用数据编写数据库脚本。但是如果开发者需要他们自己的数据库副本,我会倾向于SSIS。

+0

现在每个开发人员都在运行sql server 2008开发人员。现在我们不托管任何SQL Server数据库。我担心的是我正在做单元测试,我想确保每个人在桌面上都有相同的版本?我希望它对所有人都一样。 – user154366 2009-08-25 14:08:40

+0

+1:听起来对我来说是个好主意。每个开发人员也不太可能需要完整的生产数据库副本。使用最新的模式,但使用测试数据。 – 2009-08-25 14:09:34

+0

我们是否应该有与生产相同的数据进行测试? – user154366 2009-08-25 14:13:51

1

如果生产服务器在线连接到您的网站,则可以尝试使用名为“日志传送”的方法。

这需要创建生产数据库的基准副本,然后将大量的事务日志写在生产服务器上,并将日志块中的操作(包含的操作)应用到副本中。这可以确保在一定的延迟后,备份数据库将与生产数据库处于相同的状态。

的详细信息可以在这里找到:http://msdn.microsoft.com/en-us/library/ms187103.aspx

至于你提到的SQL 2008的标签中:据我记得SQL2008有某种全自动的设置此。

+0

如果选择了“日志传送”方法,那么每个人都需要停止执行这些标准的.bak备份并使用COPYONLY备份。据我所知,标准备份可以“中断”日志传送。我可能是错的,但我会小心的。 – djangofan 2009-08-25 19:10:52

0
  1. 您可以创建一个计划备份和恢复
  2. 您不必开发PC进行备份,堂妹。 SQL服务器有它自己的备份文件夹,您可以使用它。
  3. 如果开发人员想将数据库保存在本地系统中,您还可以从一个位置为每台PC生成恢复脚本。

RESTORE DATABASE [xxxdb] FROM

DISK = N '\ XXXX \ XXX \ XXX \ xxxx.bak'

WITH FILE = 1,NOUNLOAD,REPLACE

,STATS = 10

GO

0

检出来自RedGate的SQL源代码管理,它可以用来保持模式和数据与源代码管理库(文档说支持SVN)同步。它支持集中部署的服务器上的数据库,或许多开发人员机器。

对于每个人来说,脚本化数据可能不是一个有趣的时间,这取决于数据的数量,但您也可以选择要执行的表(如查找)并填充任何更大的业务实体表使用SSIS(或数据生成器进行测试)。