代码之家  ›  专栏  ›  技术社区  ›  Stefan Steiger Marco van de Voort

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

  •  2
  • Stefan Steiger Marco van de Voort  · 技术社区  · 15 年前

    我需要将MS SQL 2005&2008服务器的数据同步到我的开发服务器(MSSQL2005&2008)。

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

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

    我不介意在空闲时间编写代码,但我真的不想自己做所有低级的事情,比如解决约束依赖性。

    当我在做这件事的时候,如果我能合并开发机器上几个生产服务器的数据,那就太好了。

    有什么想法或建议吗?

    6 回复  |  直到 15 年前
        1
  •  1
  •   Mathias F    15 年前

    你可以试试这个项目 http://sqlinserter.codeplex.com/ .

    它以插入表1(col1,col2)值(1,2)的形式创建scipts。

        2
  •  2
  •   kemiller2002    15 年前

    签出SQL数据比较:

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

    这是我们在同步数据库时使用的。

        3
  •  1
  •   Kalle    15 年前

    Redgate SQL Compare完成了这项工作,但要花很多钱 http://www.red-gate.com/products/SQL_Compare/

        4
  •  1
  •   Joe Stefanelli    15 年前

    你可能想看看 RedGate SQL Data Compare 工具。

        5
  •  1
  •   Aaron Digulla    15 年前

    你在测试什么?除非您正在进行性能或集成测试,否则生产数据不会非常有用,因为它包含大量的一般情况(重复数百万次)和很少的角情况。

    因此,我很少同步这两者。我要做的是:我有一个开发数据库(一组SQL文件),第一个测试就是建立它的。这包含了人工测试数据和导致生产错误的数据。为了使其有用,测试数据库尽可能小。

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

        6
  •  0
  •   Donald    15 年前

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

    读取权限不足以备份数据库。没有备份数据库权限,您将无法获取索引、关系或存储过程。

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