您多久从生产数据库刷新一次开发数据库?由于有很多类型的项目(针对不同的域),我想知道它是如何完成的以及它在什么时间间隔(天/月/年)正在完成?
感谢
答案 0 :(得分:2)
在Callaway Golf工作期间,我们有一个自动构建,可以从基线完全刷新数据库。该基线几乎每天都会更新(来自生产)。我们有一个设置脚本(DTS),可以为我们这样做。因此,如果有一些新的和有趣的信息,我们可以轻松地每天,每周一次,等等。这里的关键是自动执行任务。如果它很容易,那么当它完成时实际上只取决于执行任务如何影响生产数据库,网络和完成它所花费的时间。当然,这可以设置为在非高峰时段和开发团队在早上进入之前运行的计划任务。
答案 1 :(得分:2)
刷新开发数据库的关键是:
(1)通过脚本自动刷新
(2)对开发数据库中的数据进行模糊处理,因为您不希望开发人员查看实际数据,或者您可以对生产数据库进行一些抽样。
(3)决定刷新的频率 - 我通常每周做一次。
答案 2 :(得分:1)
取决于你正在做什么样的工作。如果您正在调试与数据密切相关的问题,那么频繁更新是好的。
如果您正在进行数据质量保证(通常需要编写代码来检测和修复它,您必须开发并测试远离生产服务器),那么您需要非常新的数据。最有价值的错误数据是今天刚刚插入或更新的数据。
如果您正在编写客户端代码,则不经常更新很好。通常当我编写C#UI代码时,我可能不在乎数据是什么,我只关心它是否显示在屏幕上的右侧框中。
如果您有任何安全问题的数据,您应该停止使用生产数据 - 即。永远不会从生产更新 - 并获得一个良好的样本数据生成器。编写一个好的样本数据生成器很难,所以第三方产品是可行的方法。我想到了MS Data Dude,我推荐使用Sql RedGate的数据生成器。
最后,获得生产数据的副本有多难?如果它便宜且可自动化,只需每晚获取一份新副本。如果它很昂贵(需要非常繁忙的DBA注意),那么资源限制可能会为您解决问题,无论其他问题如何。
答案 3 :(得分:0)
我们倾向于每隔几天更新一次,或者如果事情是“正常的”,可能每周更新一次,但如果我们正在调查某些问题,我们可能会更频繁地这样做。
我们的生产数据库大约是1GB,因此复制并不是一件小事。此外,对于我们来说,通常不需要将当前数据从生产中获取到开发系统中。
“how”只是一个MySQL“备份”和“恢复”
答案 4 :(得分:0)
在很多情况下,刷新开发数据库确实并不重要。生产系统通常具有开发所需的更多数据,并且由于多种原因,使用如此大的数据集可能是一件麻烦事。示例包括在界面上进行开发,其中更重要的是拥有某些数据而不是任何特定的数据。在这种情况下,将生产数据库稀疏到较小的实际数据子集更为习惯。执行此操作后,只要所有架构更改都通过dev数据库推送,更新就不那么重要了。
另一方面,性能错误通常需要生产规模的数据库才能重现和识别瓶颈,因此在这种情况下,拥有一个几乎实时的数据库非常有用。许多问题可能只会出现在生产中使用的确切数据。
答案 5 :(得分:0)
我们倾向于始终回到按需计划。我们在一套应用程序中使用了许多不同的数据库。我们远离自动DEV数据库b / c我们的许多代码更改涉及数据库更改,我不想覆盖任何内容。
答案 6 :(得分:0)
完全没有,开发人员数据库(每个开发人员一个)通过脚本或类似设置每天进行几次设置,在本地运行数据库测试时可能需要几百次。这包括几个可以玩的记录
当然,我们仍然需要一个至少包含部分生产的数据库,用于集成和可伸缩性测试。我们的目标是每日自动刷新。但我们还没有。