2010-08-06 113 views
1

我需要我们的生产数据库的本地副本,并且我需要每隔几天刷新一次,因此测试和开发不能处理非常陈旧的数据。几天就好了。这是伪计划:用于工作站开发/测试的MySQL数据库同步

  1. 在生产服务器上写一个脚本,该脚本在mysqldump的+ gzip数据库中。
  2. 添加一个cron流程,在非高峰时段每隔一天运行脚本。
  3. 在工作站上写一个脚本,rsync的gzip转储并加载它。

有没有更好,更清洁或更安全的方法来做到这一点?

编辑:只是为了增加清晰度。我们还拥有已知的测试数据,以及我们的测试库(测试驱动开发)。一旦THOSE测试通过,它就会(更)真实的东西。

回答

1

您不妨考虑MySQL复制。这不是一件琐碎的事情,但可能是你正在寻找的东西。更多的信息在这里... http://dev.mysql.com/doc/refman/5.0/en/replication-features.html(我不知道任何关于它的事情,除了它可以完成)。

+0

当您复制时,可能会意外地将更新从测试环境复制到生产环境 – Manfred 2010-08-06 15:03:18

+1

编号复制从'主'到'奴隶';通过将生产数据库定义为主数据库,更新将仅从它流走 – 2010-08-06 15:28:32

0

测试应该使用“已知”数据;不是生产数据。您应该有脚本将“测试”数据加载到系统中以实现此目的。测试/开发不应该处理数据的移动目标。此外,如果您有任何生产中的敏感数据(不是每个人);您的开发/测试团队不应该有权访问它

有关创建测试数据的一些建议: 1)带有VBA的Excel电子表格他们创建sql以针对数据库运行2)原始sql脚本 3)以已知模式生成数据的数据创建程序

+0

我不能说我已完成与此达成协议。测试的目的是确保系统以客户需求的方式工作,而一种非常方便的方法是测试他们正在使用的数据。一个适度的极端情况数据库可能很方便,但通常最好将测试集中在系统实际使用的方式上。 – 2010-08-06 15:32:05

相关问题