我有一个任务来构build开发虚拟机模板。
我需要从每一个公司的产品中向服务器添加MySQL数据库,这样新的开发者将有能力为每一个产品开发。
大多数数据库都小于1GB。
但是我有几个数据库(160G左右) – 但是我想要创build的模板大小有限,添加一个160GB的数据库是不合理的。
因此,我试图从这个庞大的数据库中找出正确的方法来提取上个月的值,并将它们添加到服务器中,以便开发人员能够“感觉”在这个数据库上工作的感觉。
有没有可能做这样的事情,怎么做? 谢谢!
编辑:
不幸的是,没有一个单独的主数据库服务器可以存放所有的开发数据库,也不需要定期更新数据,我只需要提供与生产服务器相同的数据(随机的时间段)沙盒环境为新开发者。
如果我理解正确,你打算为每个开发环境制作一个单独的数据库副本。
虽然对于小型数据库来说这可能是可行的,但对于大型数据库来说,这并不会奏效。 所以,除非你有充分的理由为每个环境设置一个单独的数据库,否则考虑拥有一个单一的开发数据库并设置所有的开发环境来使用它可能会更好。
这种方法可以让你定期刷新开发数据库的最新数据,如果有人把它搞砸了,你可以再刷新一次。
另外想象一下,您的开发人员开始处理一些需要创build新表的新项目。 如果您有开发数据库的一个副本,您(或开发人员)将需要创build这些表并仅用testing数据填充一次。 现在想象一下,devs意识到初始表结构不是最优的,需要改变。 再次,这将需要在一个单一的DB上完成,而不是可能的几十个环境。
这是我看到一次又一次用于大型项目的方法,大部分时间工作得很好。
这非常依赖于数据库中的数据types。 在某些情况下,这可能是一样容易的
select * from table where date > ....
而在其他情况下,由于数据的结构,不可能将其分开。 最后,它可能是一个混合,很难得到正确的。
最近客户想要提取数据库最近30天的情况。 如果所有的表都有相同的属性,你可以定义date时间,你可以做一个
mysqldump –where ='datetimefield>“2014-06-28”'
但他想把不同的表格与新旧数据混合在一起。 所以这对他来说不是解决办法,但可能是你的一个办法?