使用大型数据库设置开发环境

使用大型数据库设置开发环境

这是我第一次来这里。我最近加入了一家公司,担任系统管理员,我最近的任务是为我们的开发人员打造更友好的开发环境。到目前为止,我们的开发人员连接到我们的远程机器,复制生产代码,恢复生产数据库,纠正 apache vhost 设置,然后开始开发。大多数开发都是通过 putty 进行的,非常繁琐。

最近我了解了 Vagrant,并对它感到惊讶。所以我很快设置了一个我们的开发人员可以使用的简单 LAMP 堆栈。然而,目前我最大的难题是如何设置类似 mysql 环境的生产数据库。我们的数据库大小约为 7GB,下载然后在您的 vagrant VM 中运行它是没有意义的。

我确信这是许多系统管理员过去处理过的常见问题。如何从 Vagrant 开始设置类似产品的开发数据库,​​而无需传输大量数据转储。

答案1

我们的开发人员使用的数据集比生产中的数据集要小。所有表格都是相同的,但数据不是实时数据集的副本。这会根据您的需求而有所不同,但对我们来说,这是一种很好的工作方式。

答案2

基本上有一个开发环境。上次我使用大型数据库(说真的,7GB 很小)时,开发工具包大约有 10000GB。我们使用了我们拥有的三台服务器中的一台(为应对真正的灾难而预留的一台)作为开发箱,如果操作人员需要,可以随时将其清除。

现在我处理较小的东西(每个数据库只有 300GB 左右),认真地说,我们有一个供开发人员使用的中央开发 SQL 服务器池。

您需要一个合适的开发和测试环境 - 即使使用像您这样的小型数据库,这也有点问题。等到您至少拥有小型数据库。7GB 仍然很小。

答案3

我们已经解决了这个问题。我们开始使用喷射裤,tumblr 的一个开源 MySQL 分片工具。从那时起,我们意识到我们不需要 jetpants 提供的即时时间点同步,因此我们进一步简化了夜间备份,将生产存储为文件。我们使用 lzop 压缩该文件,然后通过 netcat 将其发送到开发机器。20 GB 数据库从开始到结束的时间?4 分钟。SSD 的帮助。

答案4

虽然您的生产数据库是 7GB - 如果没有活动数据它有多大?(活动数据是用户或程序添加的数据 - 而参考数据是您需要为其他事情键入的数据。一个例子是地址记录 - 街道名称和地址是活动数据,因为它是由某人添加的。但地址类型是参考数据 - 因为他们必须从“家庭”、“工作”或“其他”中进行选择。)

仅使用架构和参考数据,为每个环境创建新实例应该不会太麻烦。如果出于某种原因,那么让开发人员使用“开发”数据库有什么问题?

相关内容