同步生产和测试数据库的方法

时间:2010-11-05 13:47:55

标签: c# .net sql vb.net sql-server-2005

我需要同步ms-sql 2005&的数据。 2008服务器到我的开发服务器(mssql 2005& 2008)。

问题是我无法创建.bak文件,没有权限(访问保存备份的网络共享)。 问题不在于我可能无法查看数据(我对生产服务器具有完全的读访问权限)。我还可以将数据备份到csv文件并在我的系统上读取它们,但这相当痛苦(编码,外键引用约束,必须为每个表执行等等)。问题是管理员没有时间为我设置必要的权限(他有更大的问题......)。

如何将数据同步到我的开发服务器? 我需要某种同步文件,然后传输(必要时通过FTP手动),然后更新我的开发数据库。我已经尝试备份到网络共享上的后备文件,但这也不起作用。

我不介意我是否需要在空闲时间编写一些代码,但我真的不想自己做所有低级别的东西,比如解决约束依赖性。

当我参与其中时,如果我可以在我的开发机器上合并来自多个生产服务器的数据,那就太棒了。

任何想法或指示?

6 个答案:

答案 0 :(得分:2)

查看sql数据比较:

http://www.red-gate.com/products/SQL_Data_Compare/

这是我们必须同步数据库时使用的内容。

答案 1 :(得分:1)

Redgate sql compare完成了这项工作,但需花费大量资金http://www.red-gate.com/products/SQL_Compare/

答案 2 :(得分:1)

您可能需要查看RedGate SQL Data Compare工具。

答案 3 :(得分:1)

你在测试什么?除非您正在进行性能测试或集成测试,否则生产数据将不会非常有用,因为它包含大量通用案例(重复数百万次)和极少数案例。

因此,我很少同步这两个。我所做的是:我有一个开发数据库(一组SQL文件),第一个测试设置。这包含人工测试数据以及导致生产中的错误的数据。为了使它有用,测试数据库尽可能小。

然后我们有一个集成测试系统,它只是生产数据库的一个镜像。这用于性能测试和一些大的自动测试,但不用于单元测试。

答案 4 :(得分:1)

您可以尝试项目http://sqlinserter.codeplex.com/

它以表格形式插入table1(col1,col2)值(1,2)

创建脚本

答案 5 :(得分:0)

您的管理员没有为生产数据库安排定期备份吗?

READ权限不足以备份数据库。如果没有BACKUP DATABASE权限,您将无法获得索引,关系或存储过程。

如果管理员只是授予您访问备份文件的权限,则不需要这些权限。如果没有生产数据库的备份文件,他将来可能会遇到很多问题。